| ----------------------------------------------------------------------------- |
| 64-bit cleanness |
| ----------------------------------------------------------------------------- |
| The following are places I know or suspect contain code that is not 64-bit |
| clean. Please mark them off this list as they are fixed, and add any new ones |
| you know of. |
| |
| Memcheck is full of 32-bit assumptions: |
| - shadow memory in general -- two-level lookup table, etc -- is totally 32-bit |
| specific. |
| - new_mem_stack_4 etc are all very 32-bit specific... should make it |
| new_mem_stack_1wd, etc. Also then need to change |
| make_aligned_word_noaccess() et al (heaps of places) |
| - also rotateRight16 and all its dependents... |
| - all the calls to VG_IS_ALIGNED4_ADDR are 32-bit specific code. Likewise |
| with Addrcheck? Not sure. Plus there's one in vg_transtab.c which doesn't |
| look right. |
| |
| Addrcheck has similar problems. Helgrind too, especially the 32-bit specific |
| "OTHER_BITS". |
| |
| Symbol table stuff: |
| - symtab -- 32-bit specific stuff in here? eg. search for |
| "(UInt)sym->st_value" |
| - stabtype_parser -- all those literal 4's as args to VG_(st_mkint) -- are they |
| 64-bit clean? Who knows... |
| |
| Others: |
| - search for the following casts: (UInt*), (Int*), (UInt *), (Int *) |
| - vki_sigset_t.sig use: the debug printing in do_setmask() is wrong -- it |
| touches sig[1], thus assuming 32-bits. Likewise in handle_SCSS_change() |
| - client_auxv in vg_main.c is UInt** -- should it be UWord** ? |
| |