25 #include "asm/macroAssembler.hpp"
26 #include "c1/c1_Defs.hpp"
27 #include "c1/c1_LIRAssembler.hpp"
28 #include "c1/c1_MacroAssembler.hpp"
29 #include "c1/c1_Runtime1.hpp"
30 #include "ci/ciUtilities.hpp"
31 #include "gc/shared/cardTable.hpp"
32 #include "gc/shared/cardTableModRefBS.hpp"
33 #include "interpreter/interpreter.hpp"
34 #include "nativeInst_arm.hpp"
35 #include "oops/compiledICHolder.hpp"
36 #include "oops/oop.inline.hpp"
37 #include "prims/jvmtiExport.hpp"
38 #include "register_arm.hpp"
39 #include "runtime/sharedRuntime.hpp"
40 #include "runtime/signature.hpp"
41 #include "runtime/vframeArray.hpp"
42 #include "utilities/align.hpp"
43 #include "vmreg_arm.inline.hpp"
44 #if INCLUDE_ALL_GCS
45 #include "gc/g1/g1CardTable.hpp"
46 #include "gc/g1/g1SATBCardTableModRefBS.hpp"
47 #endif
48
49 // Note: Rtemp usage is this file should not impact C2 and should be
50 // correct as long as it is not implicitly used in lower layers (the
51 // arm [macro]assembler) and used with care in the other C1 specific
52 // files.
53
54 // Implementation of StubAssembler
55
56 int StubAssembler::call_RT(Register oop_result1, Register metadata_result, address entry, int args_size) {
57 mov(R0, Rthread);
58
59 int call_offset = set_last_Java_frame(SP, FP, false, Rtemp);
60
61 call(entry);
62 if (call_offset == -1) { // PC not saved
63 call_offset = offset();
64 }
65 reset_last_Java_frame(Rtemp);
|
25 #include "asm/macroAssembler.hpp"
26 #include "c1/c1_Defs.hpp"
27 #include "c1/c1_LIRAssembler.hpp"
28 #include "c1/c1_MacroAssembler.hpp"
29 #include "c1/c1_Runtime1.hpp"
30 #include "ci/ciUtilities.hpp"
31 #include "gc/shared/cardTable.hpp"
32 #include "gc/shared/cardTableModRefBS.hpp"
33 #include "interpreter/interpreter.hpp"
34 #include "nativeInst_arm.hpp"
35 #include "oops/compiledICHolder.hpp"
36 #include "oops/oop.inline.hpp"
37 #include "prims/jvmtiExport.hpp"
38 #include "register_arm.hpp"
39 #include "runtime/sharedRuntime.hpp"
40 #include "runtime/signature.hpp"
41 #include "runtime/vframeArray.hpp"
42 #include "utilities/align.hpp"
43 #include "vmreg_arm.inline.hpp"
44 #if INCLUDE_ALL_GCS
45 #include "gc/g1/g1BarrierSet.hpp"
46 #include "gc/g1/g1CardTable.hpp"
47 #endif
48
49 // Note: Rtemp usage is this file should not impact C2 and should be
50 // correct as long as it is not implicitly used in lower layers (the
51 // arm [macro]assembler) and used with care in the other C1 specific
52 // files.
53
54 // Implementation of StubAssembler
55
56 int StubAssembler::call_RT(Register oop_result1, Register metadata_result, address entry, int args_size) {
57 mov(R0, Rthread);
58
59 int call_offset = set_last_Java_frame(SP, FP, false, Rtemp);
60
61 call(entry);
62 if (call_offset == -1) { // PC not saved
63 call_offset = offset();
64 }
65 reset_last_Java_frame(Rtemp);
|