On 21.12.2009, at 10:24, Aurelien Jarno wrote: > On Mon, Dec 21, 2009 at 01:22:12AM +0100, Alexander Graf wrote: >> On PPC we have a 64-bit time base. Usually (PPC32) this is accessed using >> two separate 32 bit SPR accesses to SPR_TBU and SPR_TBL. >> >> On PPC64 the SPR_TBL register acts as 64 bit though, so we get the full >> 64 bits as return value. If we only take the lower ones, fine. But Linux >> wants to see all 64 bits or it breaks. > > Good catch! However, I think this patch it's not fully complete and can > be improved a bit > - it's probably better to return a target_ulong value from > cpu_ppc_load_tbl() with an explicit cast here, so that we don't have > an implicit cast from 64-bit to 32-bit on qemu-system-powerpc (GCC may > warn on that with some flags or in future versions). > - the store function also has to be fixed. > - the same changes should be done for the alternate timebase.
Uuuh: __attribute__ (( unused )) static void spr_read_atbl (void *opaque, int gprn, int sprn) { gen_helper_load_atbl(cpu_gpr[gprn]); } And that attribute is correct. There is no caller. Alex