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: bul...@hotmail.com
      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.

Reply via email to