From: Frank K. <fbk...@ve...> - 2007-06-18 20:20:28
|
Guillaume Bedot wrote: > Hello, > > I'm trying to compile a game console emulator named gens, running Linux > on an athlon-xp. > > The compilation fails with lots of these messages : > > nasm -O1 -D__GCC2 -felf -I./gens_core/ -I./gens_core/io/ > -I./gens_core/misc/ -I./gens_core/vdp/ -I./gens_core/sound/ > -I./gens_core/gfx/ -I./gens_core/cpu/sh2/ -I./gens_core/cpu/z80/ > -I./gens_core/mem/ gens_core/gfx/blit.asm -o gens_core/gfx/blit.o > gens_core/gfx/blit.asm:181: error: invalid operands in non-64-bit mode Let's start with one... movq mm0, [esi] Error is generated in assemble.c, function calcsize, approximately here: if (ins->rex & REX_REAL) { if (ins->rex & REX_H) { errfunc(ERR_NONFATAL, "cannot use high register in rex instruction"); return -1; } else if (bits == 64 || ((ins->rex & REX_L) && !(ins->rex & (REX_P|REX_W|REX_X|REX_B)) && cpu >= IF_X86_64)) { length++; } else { errfunc(ERR_NONFATAL, "invalid operands in non-64-bit mode"); return -1; } Why? Is REX_REAL supposed to be set on this instruction? [snip m.o.s.] > If I understood correctly, the code uses MMX instructions. > I've seen some recent additions on the CVS concerning this, so i've > tried again with the very latest nasm, but with no help. > > It compiles fine with 0.98.39 (of course). > > How can I help fixing this ? Reporting the error is a good start! If you feel like you know what you're doing (*I* don't!), feel free to submit a proposed fix... > Best regards, > > Guillaume Bedot. > > > PS: As the blit.asm file seems too big for the list, I "approved" that, so it showed up finally. I'm cc'ing this to the nasm-devel list, so will only pass along the link... > please go to > http://sourceforge.net/project/showfiles.php?group_id=73619 to download > gens source. Sorry for the delayed response... I wanted to take a look at it first (even though I don't know what I'm doing, sometimes I can spot something - "code is code" - not this time...) We're aware that 0.99.xx has some "issues", still. I was a bit "premature" in releasing it... but I wanted to get some feedback - Thanks for yours, Guillaume!!! Best, Frank |