Mercurial > hg > truffle
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; |