equal
deleted
inserted
replaced
1828 // prepare expression stack |
1828 // prepare expression stack |
1829 __ pop(rcx); // pop return address so expression stack is 'pure' |
1829 __ pop(rcx); // pop return address so expression stack is 'pure' |
1830 __ push(state); // save tosca |
1830 __ push(state); // save tosca |
1831 |
1831 |
1832 // pass tosca registers as arguments & call tracer |
1832 // pass tosca registers as arguments & call tracer |
1833 __ call_VM(noreg, CAST_FROM_FN_PTR(address, SharedRuntime::trace_bytecode), rcx, rax, rdx); |
1833 __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::trace_bytecode), rcx, rax, rdx); |
1834 __ mov(rcx, rax); // make sure return address is not destroyed by pop(state) |
1834 __ mov(rcx, rax); // make sure return address is not destroyed by pop(state) |
1835 __ pop(state); // restore tosca |
1835 __ pop(state); // restore tosca |
1836 |
1836 |
1837 // return |
1837 // return |
1838 __ jmp(rcx); |
1838 __ jmp(rcx); |
1845 __ mov(c_rarg2, rax); // Pass itos |
1845 __ mov(c_rarg2, rax); // Pass itos |
1846 #ifdef _WIN64 |
1846 #ifdef _WIN64 |
1847 __ movflt(xmm3, xmm0); // Pass ftos |
1847 __ movflt(xmm3, xmm0); // Pass ftos |
1848 #endif |
1848 #endif |
1849 __ call_VM(noreg, |
1849 __ call_VM(noreg, |
1850 CAST_FROM_FN_PTR(address, SharedRuntime::trace_bytecode), |
1850 CAST_FROM_FN_PTR(address, InterpreterRuntime::trace_bytecode), |
1851 c_rarg1, c_rarg2, c_rarg3); |
1851 c_rarg1, c_rarg2, c_rarg3); |
1852 __ pop(c_rarg3); |
1852 __ pop(c_rarg3); |
1853 __ pop(c_rarg2); |
1853 __ pop(c_rarg2); |
1854 __ pop(c_rarg1); |
1854 __ pop(c_rarg1); |
1855 __ pop(c_rarg0); |
1855 __ pop(c_rarg0); |