Mercurial > hg > graal-compiler
diff src/cpu/x86/vm/graalRuntime_x86.cpp @ 9592:efb8c1918ea5
replaced create_out_of_bounds_exception assembler stub with compiled stub (GRAAL-81)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 06 May 2013 23:43:01 +0200 |
parents | 0381c7937e7a |
children | a3b4bcc22313 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/graalRuntime_x86.cpp Mon May 06 23:42:17 2013 +0200 +++ b/src/cpu/x86/vm/graalRuntime_x86.cpp Mon May 06 23:43:01 2013 +0200 @@ -575,43 +575,6 @@ __ popa(); } - -static void restore_live_registers_except_rax(GraalStubAssembler* sasm, bool restore_fpu_registers = true) { - __ block_comment("restore_live_registers_except_rax"); - - restore_fpu(sasm, restore_fpu_registers); - -#ifdef _LP64 - __ movptr(r15, Address(rsp, 0)); - __ movptr(r14, Address(rsp, wordSize)); - __ movptr(r13, Address(rsp, 2 * wordSize)); - __ movptr(r12, Address(rsp, 3 * wordSize)); - __ movptr(r11, Address(rsp, 4 * wordSize)); - __ movptr(r10, Address(rsp, 5 * wordSize)); - __ movptr(r9, Address(rsp, 6 * wordSize)); - __ movptr(r8, Address(rsp, 7 * wordSize)); - __ movptr(rdi, Address(rsp, 8 * wordSize)); - __ movptr(rsi, Address(rsp, 9 * wordSize)); - __ movptr(rbp, Address(rsp, 10 * wordSize)); - // skip rsp - __ movptr(rbx, Address(rsp, 12 * wordSize)); - __ movptr(rdx, Address(rsp, 13 * wordSize)); - __ movptr(rcx, Address(rsp, 14 * wordSize)); - - __ addptr(rsp, 16 * wordSize); -#else - - __ pop(rdi); - __ pop(rsi); - __ pop(rbp); - __ pop(rbx); // skip this value - __ pop(rbx); - __ pop(rdx); - __ pop(rcx); - __ addptr(rsp, BytesPerWord); -#endif // _LP64 -} - OopMapSet* GraalRuntime::generate_code_for(StubID id, GraalStubAssembler* sasm) { // for better readability @@ -625,18 +588,6 @@ OopMapSet* oop_maps = NULL; switch (id) { - case create_out_of_bounds_exception_id: { - __ enter(); - oop_maps = new OopMapSet(); - OopMap* oop_map = save_live_registers(sasm, 1); - int call_offset = __ call_RT(rax, noreg, (address)create_out_of_bounds_exception, j_rarg0); - oop_maps->add_gc_map(call_offset, oop_map); - restore_live_registers_except_rax(sasm); - __ leave(); - __ ret(0); - break; - } - case vm_error_id: { __ enter(); oop_maps = new OopMapSet();