222 assert(x->operand()->is_illegal(), "operand should never change");
223 assert(!opr->is_register() || opr->is_virtual(), "should never set result to a physical register");
224 x->set_operand(opr);
225 assert(opr == x->operand(), "must be");
226 if (opr->is_virtual()) {
227 _instruction_for_operand.at_put_grow(opr->vreg_number(), x, NULL);
228 }
229 }
230 void set_no_result(Value x) { assert(!x->has_uses(), "can't have use"); x->clear_operand(); }
231
232 friend class LIRItem;
233
234 LIR_Opr round_item(LIR_Opr opr);
235 LIR_Opr force_to_spill(LIR_Opr value, BasicType t);
236
237 PhiResolverState& resolver_state() { return _resolver_state; }
238
239 void move_to_phi(PhiResolver* resolver, Value cur_val, Value sux_val);
240 void move_to_phi(ValueStack* cur_state);
241
242 // platform dependent
243 LIR_Opr getThreadPointer();
244
245 private:
246 // code emission
247 void do_ArithmeticOp_Long(ArithmeticOp* x);
248 void do_ArithmeticOp_Int (ArithmeticOp* x);
249 void do_ArithmeticOp_FPU (ArithmeticOp* x);
250
251 void do_RegisterFinalizer(Intrinsic* x);
252 void do_isInstance(Intrinsic* x);
253 void do_isPrimitive(Intrinsic* x);
254 void do_getModifiers(Intrinsic* x);
255 void do_getClass(Intrinsic* x);
256 void do_currentThread(Intrinsic* x);
257 void do_getObjectSize(Intrinsic* x);
258 void do_FmaIntrinsic(Intrinsic* x);
259 void do_MathIntrinsic(Intrinsic* x);
260 void do_LibmIntrinsic(Intrinsic* x);
261 void do_ArrayCopy(Intrinsic* x);
|
222 assert(x->operand()->is_illegal(), "operand should never change");
223 assert(!opr->is_register() || opr->is_virtual(), "should never set result to a physical register");
224 x->set_operand(opr);
225 assert(opr == x->operand(), "must be");
226 if (opr->is_virtual()) {
227 _instruction_for_operand.at_put_grow(opr->vreg_number(), x, NULL);
228 }
229 }
230 void set_no_result(Value x) { assert(!x->has_uses(), "can't have use"); x->clear_operand(); }
231
232 friend class LIRItem;
233
234 LIR_Opr round_item(LIR_Opr opr);
235 LIR_Opr force_to_spill(LIR_Opr value, BasicType t);
236
237 PhiResolverState& resolver_state() { return _resolver_state; }
238
239 void move_to_phi(PhiResolver* resolver, Value cur_val, Value sux_val);
240 void move_to_phi(ValueStack* cur_state);
241
242 void load_klass(LIR_Opr obj, LIR_Opr klass, CodeEmitInfo* null_check_info);
243
244 // platform dependent
245 LIR_Opr getThreadPointer();
246
247 private:
248 // code emission
249 void do_ArithmeticOp_Long(ArithmeticOp* x);
250 void do_ArithmeticOp_Int (ArithmeticOp* x);
251 void do_ArithmeticOp_FPU (ArithmeticOp* x);
252
253 void do_RegisterFinalizer(Intrinsic* x);
254 void do_isInstance(Intrinsic* x);
255 void do_isPrimitive(Intrinsic* x);
256 void do_getModifiers(Intrinsic* x);
257 void do_getClass(Intrinsic* x);
258 void do_currentThread(Intrinsic* x);
259 void do_getObjectSize(Intrinsic* x);
260 void do_FmaIntrinsic(Intrinsic* x);
261 void do_MathIntrinsic(Intrinsic* x);
262 void do_LibmIntrinsic(Intrinsic* x);
263 void do_ArrayCopy(Intrinsic* x);
|