src/cpu/x86/vm/interpreter_x86_32.cpp

changeset 739
dc7f315e41f7
parent 435
a61af66fc99e
child 772
9ee9cf798b59
     1.1 --- a/src/cpu/x86/vm/interpreter_x86_32.cpp	Tue Aug 26 15:49:40 2008 -0700
     1.2 +++ b/src/cpu/x86/vm/interpreter_x86_32.cpp	Wed Aug 27 00:21:55 2008 -0700
     1.3 @@ -38,7 +38,7 @@
     1.4    // rcx: temporary
     1.5    // rdi: pointer to locals
     1.6    // rsp: end of copied parameters area
     1.7 -  __ movl(rcx, rsp);
     1.8 +  __ mov(rcx, rsp);
     1.9    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::slow_signature_handler), rbx, rdi, rcx);
    1.10    __ ret(0);
    1.11    return entry;
    1.12 @@ -75,8 +75,8 @@
    1.13    // Code: _return
    1.14    // _return
    1.15    // return w/o popping parameters
    1.16 -  __ popl(rax);
    1.17 -  __ movl(rsp, rsi);
    1.18 +  __ pop(rax);
    1.19 +  __ mov(rsp, rsi);
    1.20    __ jmp(rax);
    1.21  
    1.22    __ bind(slow_path);
    1.23 @@ -135,7 +135,7 @@
    1.24      __ pushl(Address(rsp, 3*wordSize));  // push hi (and note rsp -= wordSize)
    1.25      __ pushl(Address(rsp, 2*wordSize));  // push lo
    1.26      __ fld_d(Address(rsp, 0));           // get double in ST0
    1.27 -    __ addl(rsp, 2*wordSize);
    1.28 +    __ addptr(rsp, 2*wordSize);
    1.29    } else {
    1.30      __ fld_d(Address(rsp, 1*wordSize));
    1.31    }
    1.32 @@ -173,15 +173,15 @@
    1.33  
    1.34    // return double result in xmm0 for interpreter and compilers.
    1.35    if (UseSSE >= 2) {
    1.36 -    __ subl(rsp, 2*wordSize);
    1.37 +    __ subptr(rsp, 2*wordSize);
    1.38      __ fstp_d(Address(rsp, 0));
    1.39      __ movdbl(xmm0, Address(rsp, 0));
    1.40 -    __ addl(rsp, 2*wordSize);
    1.41 +    __ addptr(rsp, 2*wordSize);
    1.42    }
    1.43  
    1.44    // done, result in FPU ST(0) or XMM0
    1.45 -  __ popl(rdi);                              // get return address
    1.46 -  __ movl(rsp, rsi);                         // set sp to sender sp
    1.47 +  __ pop(rdi);                               // get return address
    1.48 +  __ mov(rsp, rsi);                          // set sp to sender sp
    1.49    __ jmp(rdi);
    1.50  
    1.51    return entry_point;
    1.52 @@ -202,10 +202,10 @@
    1.53  
    1.54    // abstract method entry
    1.55    // remove return address. Not really needed, since exception handling throws away expression stack
    1.56 -  __ popl(rbx);
    1.57 +  __ pop(rbx);
    1.58  
    1.59    // adjust stack to what a normal return would do
    1.60 -  __ movl(rsp, rsi);
    1.61 +  __ mov(rsp, rsi);
    1.62    // throw exception
    1.63    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
    1.64    // the call_VM checks for exception, so we should never return here.

mercurial