144 // stubs 145 void emit_slow_case_stubs(); 146 void emit_static_call_stub(); 147 void append_code_stub(CodeStub* op); 148 void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); } 149 150 // code patterns 151 int emit_exception_handler(); 152 int emit_unwind_handler(); 153 void emit_exception_entries(ExceptionInfoList* info_list); 154 int emit_deopt_handler(); 155 156 void emit_code(BlockList* hir); 157 void emit_block(BlockBegin* block); 158 void emit_lir_list(LIR_List* list); 159 160 // any last minute peephole optimizations are performed here. In 161 // particular sparc uses this for delay slot filling. 162 void peephole(LIR_List* list); 163 164 void emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst, CodeEmitInfo* info); 165 166 void return_op(LIR_Opr result); 167 168 // returns offset of poll instruction 169 int safepoint_poll(LIR_Opr result, CodeEmitInfo* info); 170 171 void const2reg (LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_code, CodeEmitInfo* info); 172 void const2stack(LIR_Opr src, LIR_Opr dest); 173 void const2mem (LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info, bool wide); 174 void reg2stack (LIR_Opr src, LIR_Opr dest, BasicType type, bool pop_fpu_stack); 175 void reg2reg (LIR_Opr src, LIR_Opr dest); 176 void reg2mem (LIR_Opr src, LIR_Opr dest, BasicType type, 177 LIR_PatchCode patch_code, CodeEmitInfo* info, 178 bool pop_fpu_stack, bool wide, bool unaligned); 179 void stack2reg (LIR_Opr src, LIR_Opr dest, BasicType type); 180 void stack2stack(LIR_Opr src, LIR_Opr dest, BasicType type); 181 void mem2reg (LIR_Opr src, LIR_Opr dest, BasicType type, 182 LIR_PatchCode patch_code, 183 CodeEmitInfo* info, bool wide, bool unaligned); 184 185 void shift_op(LIR_Code code, LIR_Opr left, LIR_Opr count, LIR_Opr dest, LIR_Opr tmp); | 144 // stubs 145 void emit_slow_case_stubs(); 146 void emit_static_call_stub(); 147 void append_code_stub(CodeStub* op); 148 void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); } 149 150 // code patterns 151 int emit_exception_handler(); 152 int emit_unwind_handler(); 153 void emit_exception_entries(ExceptionInfoList* info_list); 154 int emit_deopt_handler(); 155 156 void emit_code(BlockList* hir); 157 void emit_block(BlockBegin* block); 158 void emit_lir_list(LIR_List* list); 159 160 // any last minute peephole optimizations are performed here. In 161 // particular sparc uses this for delay slot filling. 162 void peephole(LIR_List* list); 163 164 void return_op(LIR_Opr result); 165 166 // returns offset of poll instruction 167 int safepoint_poll(LIR_Opr result, CodeEmitInfo* info); 168 169 void const2reg (LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_code, CodeEmitInfo* info); 170 void const2stack(LIR_Opr src, LIR_Opr dest); 171 void const2mem (LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info, bool wide); 172 void reg2stack (LIR_Opr src, LIR_Opr dest, BasicType type, bool pop_fpu_stack); 173 void reg2reg (LIR_Opr src, LIR_Opr dest); 174 void reg2mem (LIR_Opr src, LIR_Opr dest, BasicType type, 175 LIR_PatchCode patch_code, CodeEmitInfo* info, 176 bool pop_fpu_stack, bool wide, bool unaligned); 177 void stack2reg (LIR_Opr src, LIR_Opr dest, BasicType type); 178 void stack2stack(LIR_Opr src, LIR_Opr dest, BasicType type); 179 void mem2reg (LIR_Opr src, LIR_Opr dest, BasicType type, 180 LIR_PatchCode patch_code, 181 CodeEmitInfo* info, bool wide, bool unaligned); 182 183 void shift_op(LIR_Code code, LIR_Opr left, LIR_Opr count, LIR_Opr dest, LIR_Opr tmp); |