|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH] Porting TCG to alpha platform |
Date: | Sun, 31 Jan 2010 15:09:05 -0800 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc12 Thunderbird/3.0.1 |
tcg_out_ld(s, TCG_TYPE_I64, r1, r1, offsetof(CPUTLBEntry, addend) - offsetof(CPUTLBEntry, addr_read)); should be modified to tcg_out_ld(s, TCG_TYPE_I64, r1, r1, offsetof(CPUTLBEntry, addend));
Actually, it should be the entire offset from CPUState. The ADDR_WRITE offset before was entirely stuffed into the LD offset.
At the end of tcg_out_tlb_cmp(), R0's value is (page# | low bit of VA), if the branch is taken, i.e., TLB miss, R0 will be passed as an argument to helper functions, is it currently holding the correct value? I think at this time R0 should equal to addr_reg.
You're absolutely right here. Here's the kind of patch I think will fix it. r~
commit-04e0dc2
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |