blob: f0a3013833d25d247babcab84c94a64720e42371 [file] [log] [blame]
njn6b9b9dd2004-12-01 11:11:56 +00001-----------------------------------------------------------------------------
264-bit cleanness
3-----------------------------------------------------------------------------
njnf7c00b12005-07-19 21:46:19 +00004
5[19-Jul-2005: I assume most of these are gone, now that AMD64 is working
6pretty well. The Addrcheck and Helgrind ones are probably still true,
7though. --njn]
8
9
njn6b9b9dd2004-12-01 11:11:56 +000010The following are places I know or suspect contain code that is not 64-bit
11clean. Please mark them off this list as they are fixed, and add any new ones
12you know of.
13
14Memcheck is full of 32-bit assumptions:
15- shadow memory in general -- two-level lookup table, etc -- is totally 32-bit
16 specific.
17- new_mem_stack_4 etc are all very 32-bit specific... should make it
18 new_mem_stack_1wd, etc. Also then need to change
19 make_aligned_word_noaccess() et al (heaps of places)
20- also rotateRight16 and all its dependents...
njnbe91aae2005-03-27 01:42:41 +000021- all the calls to VG_IS_ALIGNED4_ADDR are 32-bit specific code. Likewise
njn6b9b9dd2004-12-01 11:11:56 +000022 with Addrcheck? Not sure. Plus there's one in vg_transtab.c which doesn't
23 look right.
24
25Addrcheck has similar problems. Helgrind too, especially the 32-bit specific
26"OTHER_BITS".
27
28Symbol table stuff:
njn6b9b9dd2004-12-01 11:11:56 +000029- symtab -- 32-bit specific stuff in here? eg. search for
30 "(UInt)sym->st_value"
31- stabtype_parser -- all those literal 4's as args to VG_(st_mkint) -- are they
32 64-bit clean? Who knows...
33
34Others:
35- search for the following casts: (UInt*), (Int*), (UInt *), (Int *)
njn6b9b9dd2004-12-01 11:11:56 +000036- vki_sigset_t.sig use: the debug printing in do_setmask() is wrong -- it
37 touches sig[1], thus assuming 32-bits. Likewise in handle_SCSS_change()
38- client_auxv in vg_main.c is UInt** -- should it be UWord** ?
39