Mercurial > hg > truffle
comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 9590:5f9c41cd3b1e
replaced monitorenter/monitorexit assembler stubs with compiled stubs (GRAAL-81)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 06 May 2013 22:37:00 +0200 |
parents | d84ea522800e |
children | 0381c7937e7a |
comparison
equal
deleted
inserted
replaced
9582:7df076e74e8e | 9590:5f9c41cd3b1e |
---|---|
695 __ leave(); | 695 __ leave(); |
696 __ ret(0); | 696 __ ret(0); |
697 break; | 697 break; |
698 } | 698 } |
699 | 699 |
700 case monitorenter_id: { | |
701 Register obj = j_rarg0; | |
702 Register lock = j_rarg1; | |
703 { | |
704 GraalStubFrame f(sasm, "monitorenter", dont_gc_arguments); | |
705 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); | |
706 | |
707 // Called with store_parameter and not C abi | |
708 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, monitorenter), obj, lock); | |
709 | |
710 oop_maps = new OopMapSet(); | |
711 oop_maps->add_gc_map(call_offset, map); | |
712 restore_live_registers(sasm, save_fpu_registers); | |
713 } | |
714 __ ret(0); | |
715 break; | |
716 } | |
717 case monitorexit_id: { | |
718 Register obj = j_rarg0; | |
719 Register lock = j_rarg1; | |
720 { | |
721 GraalStubFrame f(sasm, "monitorexit", dont_gc_arguments); | |
722 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); | |
723 | |
724 // note: really a leaf routine but must setup last java sp | |
725 // => use call_RT for now (speed can be improved by | |
726 // doing last java sp setup manually) | |
727 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, monitorexit), obj, lock); | |
728 | |
729 oop_maps = new OopMapSet(); | |
730 oop_maps->add_gc_map(call_offset, map); | |
731 restore_live_registers(sasm, save_fpu_registers); | |
732 } | |
733 __ ret(0); | |
734 break; | |
735 } | |
736 case wb_pre_call_id: { | 700 case wb_pre_call_id: { |
737 Register obj = j_rarg0; | 701 Register obj = j_rarg0; |
738 { | 702 { |
739 GraalStubFrame f(sasm, "graal_wb_pre_call", dont_gc_arguments); | 703 GraalStubFrame f(sasm, "graal_wb_pre_call", dont_gc_arguments); |
740 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); | 704 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); |