I'll check this patch again before the end of the week since we don't seem to be in a hurry. All I can say for sure is that in several places the compiler (not gcc, but msvc) inserted sign extent instructions. I tracked them down to mismatches between ints and intptr_t or ptrdiff_t. I fixed them by removing all compiler warnings of this kind. I also had to convert all DWORD uses for adresses to DWORD_PTR (MS recommended way of dealing with 32/64 bits). For the record and to make sure everyone is aware of it, compiling with msvc for x64, you get : C:\Temp>long short 2 int 4 long 4 long long 8 void* 8 The only difference with x86 is the size of the pointer which is 4 bytes (obviously). Regards, Fabrice 2012/2/20 Eli Zaretskii > > Date: Mon, 20 Feb 2012 12:43:34 -0800 > > From: Paul Eggert > > CC: Eli Zaretskii , AJMR >, > > emacs-devel@gnu.org > > > > Ideally any changes for Windows 64 would be only to the > > Windows-specific part of the code, so that we don't need to worry > > about its effect on GNU hosts. > > gmalloc.c and ralloc.c must be exceptions from this rule, for obvious > reasons. (Though the 64-bit Windows build probably is, or will be, > the only 64-bit platform to use these two.) > > I'd also take a very good look at all the EMACS_UINT uses, and a few > `long's and `unsigned long's in regex.c. > -- Fabrice Popineau ----------------------------- SUPELEC Département Informatique 3, rue Joliot Curie 91192 Gif/Yvette Cedex Tel direct : +33 (0) 169851950 Standard : +33 (0) 169851212 ------------------------------