[rt.cpan.org #77677] x64 asm is broken for ::API, >4 param crash

[email protected] ("bulk88 via RT")
Newsgroups perl.libwin32
Message-ID <[email protected]>
Wed Jun 06 21:16:33 2012: Request 77677 was acted upon.
Transaction: Correspondence added by bulk88.
       Queue: Win32-API
     Subject: x64 asm is broken for ::API, >4 param crash
   Broken in: 0.68
    Severity: Normal
       Owner: Nobody
  Requestors: [email protected]
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=77677 >


____________________________________
void Call_asm(FARPROC ApiFunction, APIPARAM *params, int nparams,
APIPARAM *retval, BOOL c_call)
{
	
	struct _CONTEXT cxt;
	struct _CONTEXT cxt2;
	size_t nRegisters = 0, nStack = 0;
	size_t required_registers = 0, required_stack = 0;
_____________________________________
	RtlCaptureContext(&cxt);
	Call_x64_real(ApiFunction, int_registers, float_registers, stack,
required_stack, &iret, &dret);
	RtlCaptureContext(&cxt2);
	if(cxt.Rsi != cxt2.Rsi) {printf("bad RSI\n");  printf("%d \n", *(int*)0);}
_____________________________________
I got a "bad RSI" on Strawberry and VC Perl. Both are broken over 4 params.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.