88 void jobject2reg_with_patching(Register reg, CodeEmitInfo* info); 89 90 void metadata2reg(Metadata* o, Register reg); 91 void klass2reg_with_patching(Register reg, CodeEmitInfo* info); 92 93 void emit_stubs(CodeStubList* stub_list); 94 95 // addresses 96 Address as_Address(LIR_Address* addr); 97 Address as_Address_lo(LIR_Address* addr); 98 Address as_Address_hi(LIR_Address* addr); 99 100 // debug information 101 void add_call_info(int pc_offset, CodeEmitInfo* cinfo); 102 void add_debug_info_for_branch(CodeEmitInfo* info); 103 void add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo); 104 void add_debug_info_for_div0_here(CodeEmitInfo* info); 105 ImplicitNullCheckStub* add_debug_info_for_null_check(int pc_offset, CodeEmitInfo* cinfo); 106 ImplicitNullCheckStub* add_debug_info_for_null_check_here(CodeEmitInfo* info); 107 108 void set_24bit_FPU(); 109 void reset_FPU(); 110 void fpop(); 111 void fxch(int i); 112 void fld(int i); 113 void ffree(int i); 114 115 void breakpoint(); 116 void push(LIR_Opr opr); 117 void pop(LIR_Opr opr); 118 119 // patching 120 void append_patching_stub(PatchingStub* stub); 121 void patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info); 122 123 void comp_op(LIR_Condition condition, LIR_Opr src, LIR_Opr result, LIR_Op2* op); 124 125 PatchingStub::PatchID patching_id(CodeEmitInfo* info); 126 127 public: 128 LIR_Assembler(Compilation* c); 129 ~LIR_Assembler(); 130 C1_MacroAssembler* masm() const { return _masm; } 131 Compilation* compilation() const { return _compilation; } 132 ciMethod* method() const { return compilation()->method(); } 133 134 CodeOffsets* offsets() const { return _compilation->offsets(); } | 88 void jobject2reg_with_patching(Register reg, CodeEmitInfo* info); 89 90 void metadata2reg(Metadata* o, Register reg); 91 void klass2reg_with_patching(Register reg, CodeEmitInfo* info); 92 93 void emit_stubs(CodeStubList* stub_list); 94 95 // addresses 96 Address as_Address(LIR_Address* addr); 97 Address as_Address_lo(LIR_Address* addr); 98 Address as_Address_hi(LIR_Address* addr); 99 100 // debug information 101 void add_call_info(int pc_offset, CodeEmitInfo* cinfo); 102 void add_debug_info_for_branch(CodeEmitInfo* info); 103 void add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo); 104 void add_debug_info_for_div0_here(CodeEmitInfo* info); 105 ImplicitNullCheckStub* add_debug_info_for_null_check(int pc_offset, CodeEmitInfo* cinfo); 106 ImplicitNullCheckStub* add_debug_info_for_null_check_here(CodeEmitInfo* info); 107 108 void breakpoint(); 109 void push(LIR_Opr opr); 110 void pop(LIR_Opr opr); 111 112 // patching 113 void append_patching_stub(PatchingStub* stub); 114 void patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info); 115 116 void comp_op(LIR_Condition condition, LIR_Opr src, LIR_Opr result, LIR_Op2* op); 117 118 PatchingStub::PatchID patching_id(CodeEmitInfo* info); 119 120 public: 121 LIR_Assembler(Compilation* c); 122 ~LIR_Assembler(); 123 C1_MacroAssembler* masm() const { return _masm; } 124 Compilation* compilation() const { return _compilation; } 125 ciMethod* method() const { return compilation()->method(); } 126 127 CodeOffsets* offsets() const { return _compilation->offsets(); } |