Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.cpp @ 1422:3483ec571caf
* using reflected objects instead of oops
* removed scratch from allocatable registers
* instanceof xir snippet
* arraylength xir snippet
* exceptionobject xir snippet
* VMEntries and VMExits as interfaces
* calls to VMEntries and VMExits are routet through logging proxies
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 02 Aug 2010 15:44:38 -0700 |
parents | 0a43776437b6 |
children | 2d26b0046e0d |
comparison
equal
deleted
inserted
replaced
1421:6223633ce7dd | 1422:3483ec571caf |
---|---|
5506 pusha(); // get regs on stack | 5506 pusha(); // get regs on stack |
5507 lea(c_rarg0, ExternalAddress((address) msg)); | 5507 lea(c_rarg0, ExternalAddress((address) msg)); |
5508 lea(c_rarg1, InternalAddress(rip)); | 5508 lea(c_rarg1, InternalAddress(rip)); |
5509 movq(c_rarg2, rsp); // pass pointer to regs array | 5509 movq(c_rarg2, rsp); // pass pointer to regs array |
5510 andq(rsp, -16); // align stack as required by ABI | 5510 andq(rsp, -16); // align stack as required by ABI |
5511 mov64(rax, 0); | |
5511 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug64))); | 5512 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug64))); |
5512 hlt(); | 5513 hlt(); |
5513 } | 5514 } |
5514 | 5515 |
5515 void MacroAssembler::warn(const char* msg) { | 5516 void MacroAssembler::warn(const char* msg) { |
5517 movq(r12, rsp); | 5518 movq(r12, rsp); |
5518 andq(rsp, -16); // align stack as required by push_CPU_state and call | 5519 andq(rsp, -16); // align stack as required by push_CPU_state and call |
5519 | 5520 |
5520 push_CPU_state(); // keeps alignment at 16 bytes | 5521 push_CPU_state(); // keeps alignment at 16 bytes |
5521 lea(c_rarg0, ExternalAddress((address) msg)); | 5522 lea(c_rarg0, ExternalAddress((address) msg)); |
5523 mov64(rax, 0); | |
5522 call_VM_leaf(CAST_FROM_FN_PTR(address, warning), c_rarg0); | 5524 call_VM_leaf(CAST_FROM_FN_PTR(address, warning), c_rarg0); |
5523 pop_CPU_state(); | 5525 pop_CPU_state(); |
5524 | 5526 |
5525 movq(rsp, r12); | 5527 movq(rsp, r12); |
5526 pop(r12); | 5528 pop(r12); |