src/share/vm/c1/c1_LIR.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6972540 Cdiff src/share/vm/c1/c1_LIR.hpp
src/share/vm/c1/c1_LIR.hpp
Print this page
*** 278,288 ****
enum OprType {
unknown_type = 0 << type_shift // means: not set (catch uninitialized types)
, int_type = 1 << type_shift
, long_type = 2 << type_shift
, object_type = 3 << type_shift
! , pointer_type = 4 << type_shift
, float_type = 5 << type_shift
, double_type = 6 << type_shift
};
friend OprType as_OprType(BasicType t);
friend BasicType as_BasicType(OprType t);
--- 278,288 ----
enum OprType {
unknown_type = 0 << type_shift // means: not set (catch uninitialized types)
, int_type = 1 << type_shift
, long_type = 2 << type_shift
, object_type = 3 << type_shift
! , address_type = 4 << type_shift
, float_type = 5 << type_shift
, double_type = 6 << type_shift
};
friend OprType as_OprType(BasicType t);
friend BasicType as_BasicType(OprType t);
*** 301,310 ****
--- 301,311 ----
case T_BOOLEAN:
case T_CHAR:
case T_BYTE:
case T_SHORT:
case T_INT:
+ case T_ADDRESS:
case T_OBJECT:
case T_ARRAY:
return single_size;
break;
*** 454,463 ****
--- 455,465 ----
case T_LONG: return LIR_OprDesc::long_type;
case T_FLOAT: return LIR_OprDesc::float_type;
case T_DOUBLE: return LIR_OprDesc::double_type;
case T_OBJECT:
case T_ARRAY: return LIR_OprDesc::object_type;
+ case T_ADDRESS: return LIR_OprDesc::address_type;
case T_ILLEGAL: // fall through
default: ShouldNotReachHere(); return LIR_OprDesc::unknown_type;
}
}
*** 466,475 ****
--- 468,478 ----
case LIR_OprDesc::int_type: return T_INT;
case LIR_OprDesc::long_type: return T_LONG;
case LIR_OprDesc::float_type: return T_FLOAT;
case LIR_OprDesc::double_type: return T_DOUBLE;
case LIR_OprDesc::object_type: return T_OBJECT;
+ case LIR_OprDesc::address_type: return T_ADDRESS;
case LIR_OprDesc::unknown_type: // fall through
default: ShouldNotReachHere(); return T_ILLEGAL;
}
}
*** 548,559 ****
class LIR_OprFact: public AllStatic {
public:
static LIR_Opr illegalOpr;
! static LIR_Opr single_cpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::int_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
! static LIR_Opr single_cpu_oop(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::object_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
static LIR_Opr double_cpu(int reg1, int reg2) {
LP64_ONLY(assert(reg1 == reg2, "must be identical"));
return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) |
(reg2 << LIR_OprDesc::reg2_shift) |
LIR_OprDesc::long_type |
--- 551,578 ----
class LIR_OprFact: public AllStatic {
public:
static LIR_Opr illegalOpr;
! static LIR_Opr single_cpu(int reg) {
! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
! LIR_OprDesc::int_type |
! LIR_OprDesc::cpu_register |
! LIR_OprDesc::single_size);
! }
! static LIR_Opr single_cpu_oop(int reg) {
! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
! LIR_OprDesc::object_type |
! LIR_OprDesc::cpu_register |
! LIR_OprDesc::single_size);
! }
! static LIR_Opr single_cpu_address(int reg) {
! return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
! LIR_OprDesc::address_type |
! LIR_OprDesc::cpu_register |
! LIR_OprDesc::single_size);
! }
static LIR_Opr double_cpu(int reg1, int reg2) {
LP64_ONLY(assert(reg1 == reg2, "must be identical"));
return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) |
(reg2 << LIR_OprDesc::reg2_shift) |
LIR_OprDesc::long_type |
*** 631,640 ****
--- 650,667 ----
LIR_OprDesc::cpu_register |
LIR_OprDesc::single_size |
LIR_OprDesc::virtual_mask);
break;
+ case T_ADDRESS:
+ res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
+ LIR_OprDesc::address_type |
+ LIR_OprDesc::cpu_register |
+ LIR_OprDesc::single_size |
+ LIR_OprDesc::virtual_mask);
+ break;
+
case T_LONG:
res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
LIR_OprDesc::long_type |
LIR_OprDesc::cpu_register |
LIR_OprDesc::double_size |
*** 717,726 ****
--- 744,760 ----
case T_INT:
res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
LIR_OprDesc::int_type |
LIR_OprDesc::stack_value |
LIR_OprDesc::single_size);
+ break;
+
+ case T_ADDRESS:
+ res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
+ LIR_OprDesc::address_type |
+ LIR_OprDesc::stack_value |
+ LIR_OprDesc::single_size);
break;
case T_LONG:
res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
LIR_OprDesc::long_type |
src/share/vm/c1/c1_LIR.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File