503 , _index(index) |
503 , _index(index) |
504 , _scale(times_1) |
504 , _scale(times_1) |
505 , _type(type) |
505 , _type(type) |
506 , _disp(0) { verify(); } |
506 , _disp(0) { verify(); } |
507 |
507 |
508 LIR_Address(LIR_Opr base, int disp, BasicType type): |
508 LIR_Address(LIR_Opr base, intx disp, BasicType type): |
509 _base(base) |
509 _base(base) |
510 , _index(LIR_OprDesc::illegalOpr()) |
510 , _index(LIR_OprDesc::illegalOpr()) |
511 , _scale(times_1) |
511 , _scale(times_1) |
512 , _type(type) |
512 , _type(type) |
513 , _disp(disp) { verify(); } |
513 , _disp(disp) { verify(); } |
514 |
514 |
|
515 LIR_Address(LIR_Opr base, BasicType type): |
|
516 _base(base) |
|
517 , _index(LIR_OprDesc::illegalOpr()) |
|
518 , _scale(times_1) |
|
519 , _type(type) |
|
520 , _disp(0) { verify(); } |
|
521 |
515 #ifdef X86 |
522 #ifdef X86 |
516 LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, int disp, BasicType type): |
523 LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type): |
517 _base(base) |
524 _base(base) |
518 , _index(index) |
525 , _index(index) |
519 , _scale(scale) |
526 , _scale(scale) |
520 , _type(type) |
527 , _type(type) |
521 , _disp(disp) { verify(); } |
528 , _disp(disp) { verify(); } |
1031 // -------------------------------------------------- |
1038 // -------------------------------------------------- |
1032 class LIR_OpJavaCall: public LIR_OpCall { |
1039 class LIR_OpJavaCall: public LIR_OpCall { |
1033 friend class LIR_OpVisitState; |
1040 friend class LIR_OpVisitState; |
1034 |
1041 |
1035 private: |
1042 private: |
1036 ciMethod* _method; |
1043 ciMethod* _method; |
1037 LIR_Opr _receiver; |
1044 LIR_Opr _receiver; |
|
1045 LIR_Opr _method_handle_invoke_SP_save_opr; // Used in LIR_OpVisitState::visit to store the reference to FrameMap::method_handle_invoke_SP_save_opr. |
1038 |
1046 |
1039 public: |
1047 public: |
1040 LIR_OpJavaCall(LIR_Code code, ciMethod* method, |
1048 LIR_OpJavaCall(LIR_Code code, ciMethod* method, |
1041 LIR_Opr receiver, LIR_Opr result, |
1049 LIR_Opr receiver, LIR_Opr result, |
1042 address addr, LIR_OprList* arguments, |
1050 address addr, LIR_OprList* arguments, |
1043 CodeEmitInfo* info) |
1051 CodeEmitInfo* info) |
1044 : LIR_OpCall(code, addr, result, arguments, info) |
1052 : LIR_OpCall(code, addr, result, arguments, info) |
1045 , _receiver(receiver) |
1053 , _receiver(receiver) |
1046 , _method(method) { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); } |
1054 , _method(method) |
|
1055 , _method_handle_invoke_SP_save_opr(LIR_OprFact::illegalOpr) |
|
1056 { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); } |
1047 |
1057 |
1048 LIR_OpJavaCall(LIR_Code code, ciMethod* method, |
1058 LIR_OpJavaCall(LIR_Code code, ciMethod* method, |
1049 LIR_Opr receiver, LIR_Opr result, intptr_t vtable_offset, |
1059 LIR_Opr receiver, LIR_Opr result, intptr_t vtable_offset, |
1050 LIR_OprList* arguments, CodeEmitInfo* info) |
1060 LIR_OprList* arguments, CodeEmitInfo* info) |
1051 : LIR_OpCall(code, (address)vtable_offset, result, arguments, info) |
1061 : LIR_OpCall(code, (address)vtable_offset, result, arguments, info) |
1052 , _receiver(receiver) |
1062 , _receiver(receiver) |
1053 , _method(method) { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); } |
1063 , _method(method) |
|
1064 , _method_handle_invoke_SP_save_opr(LIR_OprFact::illegalOpr) |
|
1065 { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); } |
1054 |
1066 |
1055 LIR_Opr receiver() const { return _receiver; } |
1067 LIR_Opr receiver() const { return _receiver; } |
1056 ciMethod* method() const { return _method; } |
1068 ciMethod* method() const { return _method; } |
1057 |
1069 |
1058 // JSR 292 support. |
1070 // JSR 292 support. |