Not sure were I got my original info from... , but at current lazarus-ide (debugger) assumes that (on 64 bit) arguments (to fpc_raiseexceptions) are passed in RDI, RSI, RDX.
I thought some one had told me that this was some kind of standard and would always work? (I may be wrong...)
Now I just been running some code in the debugger 64 bit, win XP.
And the first arg was either in rax or rcx; see assembler below
Any ideas how to know what register to expect?
00000001000B1F6B ff90f8000000 callq *0xf8(%rax) 00000001000B1F71 39d8 cmp %ebx,%eax 00000001000B1F73 7d2f jge 0x1000b1fa4 <CLASSES_TSTREAM_$__READBUFFER$formal$LONGINT+84>
00000001000B1F75 4c8b059c5f9d00 mov
0x9d5f9c(%rip),%r8 # 0x100a87f18 <RESSTR_RTLCONSTS_SREADERROR+8> 00000001000B1F7C 488d153d499c00 lea
0x9c493d(%rip),%rdx # 0x100a768c0 <VMT_CLASSES_EREADERROR> 00000001000B1F83 48b90000000000000000 movabs $0x0,%rcx 00000001000B1F8D e8ee9df7ff callq 0x10002bd80 <SYSUTILS_EXCEPTION_$__CREATE$ANSISTRING$$EXCEPTION> 00000001000B1F92 4889c1 mov %rax,%rcx ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 00000001000B1F95 4989e8 mov %rbp,%r8 00000001000B1F98 488d15f6ffffff lea -0xa(%rip),%rdx # 0x1000b1f95 <CLASSES_TSTREAM_$__READBUFFER$formal$LONGINT+69> 00000001000B1F9F e88ccaf5ff callq 0x10000ea30 <fpc_raiseexception>
