njn | 6b9b9dd | 2004-12-01 11:11:56 +0000 | [diff] [blame] | 1 | ----------------------------------------------------------------------------- |
| 2 | 64-bit cleanness |
| 3 | ----------------------------------------------------------------------------- |
njn | f7c00b1 | 2005-07-19 21:46:19 +0000 | [diff] [blame] | 4 | |
| 5 | [19-Jul-2005: I assume most of these are gone, now that AMD64 is working |
| 6 | pretty well. The Addrcheck and Helgrind ones are probably still true, |
| 7 | though. --njn] |
| 8 | |
| 9 | |
njn | 6b9b9dd | 2004-12-01 11:11:56 +0000 | [diff] [blame] | 10 | The following are places I know or suspect contain code that is not 64-bit |
| 11 | clean. Please mark them off this list as they are fixed, and add any new ones |
| 12 | you know of. |
| 13 | |
| 14 | Memcheck 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... |
njn | be91aae | 2005-03-27 01:42:41 +0000 | [diff] [blame] | 21 | - all the calls to VG_IS_ALIGNED4_ADDR are 32-bit specific code. Likewise |
njn | 6b9b9dd | 2004-12-01 11:11:56 +0000 | [diff] [blame] | 22 | with Addrcheck? Not sure. Plus there's one in vg_transtab.c which doesn't |
| 23 | look right. |
| 24 | |
| 25 | Addrcheck has similar problems. Helgrind too, especially the 32-bit specific |
| 26 | "OTHER_BITS". |
| 27 | |
| 28 | Symbol table stuff: |
njn | 6b9b9dd | 2004-12-01 11:11:56 +0000 | [diff] [blame] | 29 | - 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 | |
| 34 | Others: |
| 35 | - search for the following casts: (UInt*), (Int*), (UInt *), (Int *) |
njn | 6b9b9dd | 2004-12-01 11:11:56 +0000 | [diff] [blame] | 36 | - 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 | |