116
117 void comp_op(LIR_Condition condition, LIR_Opr src, LIR_Opr result, LIR_Op2* op);
118
119 public:
120 LIR_Assembler(Compilation* c);
121 ~LIR_Assembler();
122 C1_MacroAssembler* masm() const { return _masm; }
123 Compilation* compilation() const { return _compilation; }
124 ciMethod* method() const { return compilation()->method(); }
125
126 CodeOffsets* offsets() const { return _compilation->offsets(); }
127 int code_offset() const;
128 address pc() const;
129
130 int initial_frame_size_in_bytes();
131
132 // test for constants which can be encoded directly in instructions
133 static bool is_small_constant(LIR_Opr opr);
134
135 static LIR_Opr receiverOpr();
136 static LIR_Opr incomingReceiverOpr();
137 static LIR_Opr osrBufferPointer();
138
139 // stubs
140 void emit_slow_case_stubs();
141 void emit_static_call_stub();
142 void emit_code_stub(CodeStub* op);
143 void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); }
144
145 // code patterns
146 int emit_exception_handler();
147 int emit_unwind_handler();
148 void emit_exception_entries(ExceptionInfoList* info_list);
149 int emit_deopt_handler();
150
151 void emit_code(BlockList* hir);
152 void emit_block(BlockBegin* block);
153 void emit_lir_list(LIR_List* list);
154
155 // any last minute peephole optimizations are performed here. In
156 // particular sparc uses this for delay slot filling.
|
116
117 void comp_op(LIR_Condition condition, LIR_Opr src, LIR_Opr result, LIR_Op2* op);
118
119 public:
120 LIR_Assembler(Compilation* c);
121 ~LIR_Assembler();
122 C1_MacroAssembler* masm() const { return _masm; }
123 Compilation* compilation() const { return _compilation; }
124 ciMethod* method() const { return compilation()->method(); }
125
126 CodeOffsets* offsets() const { return _compilation->offsets(); }
127 int code_offset() const;
128 address pc() const;
129
130 int initial_frame_size_in_bytes();
131
132 // test for constants which can be encoded directly in instructions
133 static bool is_small_constant(LIR_Opr opr);
134
135 static LIR_Opr receiverOpr();
136 static LIR_Opr osrBufferPointer();
137
138 // stubs
139 void emit_slow_case_stubs();
140 void emit_static_call_stub();
141 void emit_code_stub(CodeStub* op);
142 void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); }
143
144 // code patterns
145 int emit_exception_handler();
146 int emit_unwind_handler();
147 void emit_exception_entries(ExceptionInfoList* info_list);
148 int emit_deopt_handler();
149
150 void emit_code(BlockList* hir);
151 void emit_block(BlockBegin* block);
152 void emit_lir_list(LIR_List* list);
153
154 // any last minute peephole optimizations are performed here. In
155 // particular sparc uses this for delay slot filling.
|