< 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 >