90 }
91
92 static inline Address at_rsp() {
93 return Address(rsp, 0);
94 }
95
96 // At top of Java expression stack which may be different than esp(). It
97 // isn't for category 1 objects.
98 static inline Address at_tos () {
99 return Address(rsp, Interpreter::expr_offset_in_bytes(0));
100 }
101
102 static inline Address at_tos_p1() {
103 return Address(rsp, Interpreter::expr_offset_in_bytes(1));
104 }
105
106 static inline Address at_tos_p2() {
107 return Address(rsp, Interpreter::expr_offset_in_bytes(2));
108 }
109
110 static inline Address at_tos_p3() {
111 return Address(rsp, Interpreter::expr_offset_in_bytes(3));
112 }
113
114 // Condition conversion
115 static Assembler::Condition j_not(TemplateTable::Condition cc) {
116 switch (cc) {
117 case TemplateTable::equal : return Assembler::notEqual;
118 case TemplateTable::not_equal : return Assembler::equal;
119 case TemplateTable::less : return Assembler::greaterEqual;
120 case TemplateTable::less_equal : return Assembler::greater;
121 case TemplateTable::greater : return Assembler::lessEqual;
122 case TemplateTable::greater_equal: return Assembler::less;
123 }
124 ShouldNotReachHere();
125 return Assembler::zero;
126 }
127
128
129 // Miscelaneous helper routines
130 // Store an oop (or NULL) at the address described by obj.
131 // If val == noreg this means store a NULL
132
133 static void do_oop_store(InterpreterMacroAssembler* _masm,
|
90 }
91
92 static inline Address at_rsp() {
93 return Address(rsp, 0);
94 }
95
96 // At top of Java expression stack which may be different than esp(). It
97 // isn't for category 1 objects.
98 static inline Address at_tos () {
99 return Address(rsp, Interpreter::expr_offset_in_bytes(0));
100 }
101
102 static inline Address at_tos_p1() {
103 return Address(rsp, Interpreter::expr_offset_in_bytes(1));
104 }
105
106 static inline Address at_tos_p2() {
107 return Address(rsp, Interpreter::expr_offset_in_bytes(2));
108 }
109
110 // Condition conversion
111 static Assembler::Condition j_not(TemplateTable::Condition cc) {
112 switch (cc) {
113 case TemplateTable::equal : return Assembler::notEqual;
114 case TemplateTable::not_equal : return Assembler::equal;
115 case TemplateTable::less : return Assembler::greaterEqual;
116 case TemplateTable::less_equal : return Assembler::greater;
117 case TemplateTable::greater : return Assembler::lessEqual;
118 case TemplateTable::greater_equal: return Assembler::less;
119 }
120 ShouldNotReachHere();
121 return Assembler::zero;
122 }
123
124
125 // Miscelaneous helper routines
126 // Store an oop (or NULL) at the address described by obj.
127 // If val == noreg this means store a NULL
128
129 static void do_oop_store(InterpreterMacroAssembler* _masm,
|