Or are there lots of other things that I don't know that is different in 64bit, like function calls are different, MMX/SSE stuff are different maybe...?
maybe it's pointless to even try to do this.
compile the asm files with "-f elf64", and target "-march=x86-64", seems to compile ok with a few warnings here and there.
First error I get is when AllowMMX is read/written to, it tries to access to a 64bit pointer in memory thats filled with lots of junk I think.
Code: Select all
test edx,1 << 23
jz .nommx
mov byte[ShowMMXSupport],1
--> mov al,[AllowMMX]
mov [MMXSupport],al
jz .nommx
Code: Select all
0x000000000040d670 <+51>: je 0x40d6ab <MMXCheck.nommx>
0x000000000040d672 <+53>: movb $0x1,0x9102ee(%rip) # 0xd1d967 <ntsc_snes+3046855>
=> 0x000000000040d679 <+60>: movabs 0x963902a2008dca28,%al
0x000000000040d682 <+69>: add %dh,-0x9(%rsi,%riz,1)
0x000000000040d686 <+73>: retq $0x0
0x000000000040d689 <+76>: add %al,(%rdx)
Pointer should be at 0x8dca28, why does it say 0x963902a2008dca28 ?