> In principle, yes, but you need to check the code carefully to make > sure your type change doesn't change any of the results. (Or if it > does, you then need to confirm against the specs that this was a bug > that is being fixed, not a new one being introduced). The thing you have > to remember is that for the 32 bit x86 cores guest physical addresses > are only 32 bits but target_phys_addr_t is still a 64 bit type.
Yes, I saw in configure x86 and x86_64 both have target_phys_bits set to 64. --- case "$target_arch2" in i386) target_phys_bits=64 ;; if test "$target_softmmu" = "yes" ; then echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak --- So that in targphys.h, it typedef target_phys_addr_t to uint_64, #elif TARGET_PHYS_ADDR_BITS == 64 typedef uint64_t target_phys_addr_t; > It may be we're deliberately (mis)using target_ulong to get the > right behaviour on both 32 and 64 bit cores. Need to be further investigated. :) Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~chenwj