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.
156 void peephole(LIR_List* list);
157
158 void emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst, CodeEmitInfo* info);
159
160 void return_op(LIR_Opr result);
|
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_profile_call_stub(ciMethod* method, int bci, address dest);
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.
157 void peephole(LIR_List* list);
158
159 void emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst, CodeEmitInfo* info);
160
161 void return_op(LIR_Opr result);
|