< prev index next >

src/share/vm/c1/c1_LIR.hpp

Print this page

        

*** 26,35 **** --- 26,36 ---- #define SHARE_VM_C1_C1_LIR_HPP #include "c1/c1_Defs.hpp" #include "c1/c1_ValueType.hpp" #include "oops/method.hpp" + #include "utilities/globalDefinitions.hpp" class BlockBegin; class BlockList; class LIR_Assembler; class CodeEmitInfo;
*** 436,454 **** } #endif return as_register(); } #ifdef X86 ! XMMRegister as_xmm_float_reg() const; XMMRegister as_xmm_double_reg() const; // for compatibility with RInfo ! int fpu () const { return lo_reg_half(); } ! #endif ! #if defined(SPARC) || defined(ARM) || defined(PPC) || defined(AARCH64) ! FloatRegister as_float_reg () const; ! FloatRegister as_double_reg () const; #endif jint as_jint() const { return as_constant_ptr()->as_jint(); } jlong as_jlong() const { return as_constant_ptr()->as_jlong(); } jfloat as_jfloat() const { return as_constant_ptr()->as_jfloat(); } --- 437,453 ---- } #endif return as_register(); } + FloatRegister as_float_reg () const; + FloatRegister as_double_reg () const; #ifdef X86 ! XMMRegister as_xmm_float_reg () const; XMMRegister as_xmm_double_reg() const; // for compatibility with RInfo ! int fpu() const { return lo_reg_half(); } #endif jint as_jint() const { return as_constant_ptr()->as_jint(); } jlong as_jlong() const { return as_constant_ptr()->as_jlong(); } jfloat as_jfloat() const { return as_constant_ptr()->as_jfloat(); }
*** 532,549 **** , _index(LIR_OprDesc::illegalOpr()) , _scale(times_1) , _type(type) , _disp(0) { verify(); } ! #if defined(X86) || defined(ARM) || defined(AARCH64) LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type): _base(base) , _index(index) , _scale(scale) , _type(type) , _disp(disp) { verify(); } - #endif // X86 || ARM LIR_Opr base() const { return _base; } LIR_Opr index() const { return _index; } Scale scale() const { return _scale; } intx disp() const { return _disp; } --- 531,553 ---- , _index(LIR_OprDesc::illegalOpr()) , _scale(times_1) , _type(type) , _disp(0) { verify(); } ! LIR_Address(LIR_Opr base, LIR_Opr index, intx disp, BasicType type): ! _base(base) ! , _index(index) ! , _scale(times_1) ! , _type(type) ! , _disp(disp) { verify(); } ! LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type): _base(base) , _index(index) , _scale(scale) , _type(type) , _disp(disp) { verify(); } LIR_Opr base() const { return _base; } LIR_Opr index() const { return _index; } Scale scale() const { return _scale; } intx disp() const { return _disp; }
*** 552,568 **** virtual LIR_Address* as_address() { return this; } virtual BasicType type() const { return _type; } virtual void print_value_on(outputStream* out) const PRODUCT_RETURN; ! void verify0() const PRODUCT_RETURN; ! #if defined(LIR_ADDRESS_PD_VERIFY) && !defined(PRODUCT) ! void pd_verify() const; ! void verify() const { pd_verify(); } ! #else ! void verify() const { verify0(); } ! #endif static Scale scale(BasicType type); }; --- 556,566 ---- virtual LIR_Address* as_address() { return this; } virtual BasicType type() const { return _type; } virtual void print_value_on(outputStream* out) const PRODUCT_RETURN; ! void verify() const PRODUCT_RETURN; static Scale scale(BasicType type); };
*** 603,665 **** LIR_OprDesc::long_type | LIR_OprDesc::cpu_register | LIR_OprDesc::double_size); } ! static LIR_Opr single_fpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::fpu_register | ! LIR_OprDesc::single_size); } ! #if defined(ARM32) ! static LIR_Opr double_fpu(int reg1, int reg2) { return (LIR_Opr)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::fpu_register | LIR_OprDesc::double_size); } ! static LIR_Opr single_softfp(int reg) { return (LIR_Opr)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); } ! static LIR_Opr double_softfp(int reg1, int reg2) { return (LIR_Opr)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::cpu_register | LIR_OprDesc::double_size); } ! #endif ! #ifdef SPARC ! static LIR_Opr double_fpu(int reg1, int reg2) { return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | ! LIR_OprDesc::fpu_register | ! LIR_OprDesc::double_size); } ! #endif ! #if defined(X86) || defined(AARCH64) ! static LIR_Opr double_fpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | ! (reg << LIR_OprDesc::reg2_shift) | ! LIR_OprDesc::double_type | ! LIR_OprDesc::fpu_register | ! LIR_OprDesc::double_size); } ! static LIR_Opr single_xmm(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::fpu_register | LIR_OprDesc::single_size | ! LIR_OprDesc::is_xmm_mask); } ! static LIR_Opr double_xmm(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | (reg << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::fpu_register | LIR_OprDesc::double_size | ! LIR_OprDesc::is_xmm_mask); } #endif // X86 - #if defined(PPC) - static LIR_Opr double_fpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | - (reg << LIR_OprDesc::reg2_shift) | - LIR_OprDesc::double_type | - LIR_OprDesc::fpu_register | - LIR_OprDesc::double_size); } - #endif - #ifdef PPC32 - static LIR_Opr single_softfp(int reg) { return (LIR_Opr)((reg << LIR_OprDesc::reg1_shift) | - LIR_OprDesc::float_type | - LIR_OprDesc::cpu_register | - LIR_OprDesc::single_size); } - static LIR_Opr double_softfp(int reg1, int reg2) { return (LIR_Opr)((reg2 << LIR_OprDesc::reg1_shift) | - (reg1 << LIR_OprDesc::reg2_shift) | - LIR_OprDesc::double_type | - LIR_OprDesc::cpu_register | - LIR_OprDesc::double_size); } - #endif // PPC32 static LIR_Opr virtual_register(int index, BasicType type) { LIR_Opr res; switch (type) { case T_OBJECT: // fall through --- 601,653 ---- LIR_OprDesc::long_type | LIR_OprDesc::cpu_register | LIR_OprDesc::double_size); } ! static LIR_Opr single_fpu(int reg) { ! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::fpu_register | ! LIR_OprDesc::single_size); ! } ! ! // Platform dependant. ! static LIR_Opr double_fpu(int reg1, int reg2 = -1 /*fnoreg*/); ! ! #ifdef __SOFTFP__ ! static LIR_Opr single_softfp(int reg) { ! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | ! LIR_OprDesc::float_type | ! LIR_OprDesc::cpu_register | ! LIR_OprDesc::single_size); ! } ! static LIR_Opr double_softfp(int reg1, int reg2) { ! return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | ! LIR_OprDesc::cpu_register | ! LIR_OprDesc::double_size); ! } ! #endif // __SOFTFP__ ! #if defined(X86) ! static LIR_Opr single_xmm(int reg) { ! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::fpu_register | LIR_OprDesc::single_size | ! LIR_OprDesc::is_xmm_mask); ! } ! static LIR_Opr double_xmm(int reg) { ! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | (reg << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::fpu_register | LIR_OprDesc::double_size | ! LIR_OprDesc::is_xmm_mask); ! } #endif // X86 static LIR_Opr virtual_register(int index, BasicType type) { LIR_Opr res; switch (type) { case T_OBJECT: // fall through
*** 1465,1505 **** friend class LIR_OpVisitState; private: Bytecodes::Code _bytecode; ConversionStub* _stub; - #ifdef PPC32 - LIR_Opr _tmp1; - LIR_Opr _tmp2; - #endif public: LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub) : LIR_Op1(lir_convert, opr, result) , _stub(stub) - #ifdef PPC32 - , _tmp1(LIR_OprDesc::illegalOpr()) - , _tmp2(LIR_OprDesc::illegalOpr()) - #endif , _bytecode(code) {} - #ifdef PPC32 - LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub - ,LIR_Opr tmp1, LIR_Opr tmp2) - : LIR_Op1(lir_convert, opr, result) - , _stub(stub) - , _tmp1(tmp1) - , _tmp2(tmp2) - , _bytecode(code) {} - #endif - Bytecodes::Code bytecode() const { return _bytecode; } ConversionStub* stub() const { return _stub; } - #ifdef PPC32 - LIR_Opr tmp1() const { return _tmp1; } - LIR_Opr tmp2() const { return _tmp2; } - #endif virtual void emit_code(LIR_Assembler* masm); virtual LIR_OpConvert* as_OpConvert() { return this; } virtual void print_instr(outputStream* out) const PRODUCT_RETURN; --- 1453,1471 ----
*** 2134,2146 **** void return_op(LIR_Opr result) { append(new LIR_Op1(lir_return, result)); } void safepoint(LIR_Opr tmp, CodeEmitInfo* info) { append(new LIR_Op1(lir_safepoint, tmp, info)); } - #ifdef PPC32 - void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_OpConvert(code, left, dst, NULL, tmp1, tmp2)); } - #endif void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, ConversionStub* stub = NULL/*, bool is_32bit = false*/) { append(new LIR_OpConvert(code, left, dst, stub)); } void logical_and (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_and, left, right, dst)); } void logical_or (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_or, left, right, dst)); } void logical_xor (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_xor, left, right, dst)); } --- 2100,2109 ----
< prev index next >