comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 9419:640d86a6bf4a

replaced register_finalizer assembler stub with a compiled stub (GRAAL-81)
author Doug Simon <doug.simon@oracle.com>
date Mon, 29 Apr 2013 22:49:49 +0200
parents 4e260c2ced0e
children 393d62a868da
comparison
equal deleted inserted replaced
9418:8d3a7fb9eb5f 9419:640d86a6bf4a
809 809
810 // stub code & info for the different stubs 810 // stub code & info for the different stubs
811 OopMapSet* oop_maps = NULL; 811 OopMapSet* oop_maps = NULL;
812 switch (id) { 812 switch (id) {
813 813
814 case register_finalizer_id:
815 {
816 __ set_info("register_finalizer", dont_gc_arguments);
817
818 // This is called via call_runtime so the arguments
819 // will be place in C abi locations
820 __ verify_oop(j_rarg0);
821 __ enter();
822 OopMap* oop_map = save_live_registers(sasm, 2 /*num_rt_args */);
823 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, SharedRuntime::register_finalizer), j_rarg0);
824 oop_maps = new OopMapSet();
825 oop_maps->add_gc_map(call_offset, oop_map);
826
827 // Now restore all the live registers
828 restore_live_registers(sasm);
829
830 __ leave();
831 __ ret(0);
832 }
833 break;
834
835 case handle_exception_nofpu_id: 814 case handle_exception_nofpu_id:
836 { GraalStubFrame f(sasm, "handle_exception", dont_gc_arguments); 815 { GraalStubFrame f(sasm, "handle_exception", dont_gc_arguments);
837 oop_maps = generate_handle_exception(id, sasm); 816 oop_maps = generate_handle_exception(id, sasm);
838 } 817 }
839 break; 818 break;