249 void do_ArithmeticOp_Int (ArithmeticOp* x);
250 void do_ArithmeticOp_FPU (ArithmeticOp* x);
251
252 void do_RegisterFinalizer(Intrinsic* x);
253 void do_isInstance(Intrinsic* x);
254 void do_isPrimitive(Intrinsic* x);
255 void do_getClass(Intrinsic* x);
256 void do_currentThread(Intrinsic* x);
257 void do_FmaIntrinsic(Intrinsic* x);
258 void do_MathIntrinsic(Intrinsic* x);
259 void do_LibmIntrinsic(Intrinsic* x);
260 void do_ArrayCopy(Intrinsic* x);
261 void do_CompareAndSwap(Intrinsic* x, ValueType* type);
262 void do_NIOCheckIndex(Intrinsic* x);
263 void do_FPIntrinsics(Intrinsic* x);
264 void do_Reference_get(Intrinsic* x);
265 void do_update_CRC32(Intrinsic* x);
266 void do_update_CRC32C(Intrinsic* x);
267 void do_vectorizedMismatch(Intrinsic* x);
268
269 public:
270 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
271 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
272
273 // convenience functions
274 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
275 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
276
277 // Access API
278
279 private:
280 BarrierSetC1 *_barrier_set;
281
282 public:
283 void access_store_at(DecoratorSet decorators, BasicType type,
284 LIRItem& base, LIR_Opr offset, LIR_Opr value,
285 CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);
286
287 void access_load_at(DecoratorSet decorators, BasicType type,
288 LIRItem& base, LIR_Opr offset, LIR_Opr result,
548 // visitor functionality
549 virtual void do_Phi (Phi* x);
550 virtual void do_Local (Local* x);
551 virtual void do_Constant (Constant* x);
552 virtual void do_LoadField (LoadField* x);
553 virtual void do_StoreField (StoreField* x);
554 virtual void do_ArrayLength (ArrayLength* x);
555 virtual void do_LoadIndexed (LoadIndexed* x);
556 virtual void do_StoreIndexed (StoreIndexed* x);
557 virtual void do_NegateOp (NegateOp* x);
558 virtual void do_ArithmeticOp (ArithmeticOp* x);
559 virtual void do_ShiftOp (ShiftOp* x);
560 virtual void do_LogicOp (LogicOp* x);
561 virtual void do_CompareOp (CompareOp* x);
562 virtual void do_IfOp (IfOp* x);
563 virtual void do_Convert (Convert* x);
564 virtual void do_NullCheck (NullCheck* x);
565 virtual void do_TypeCast (TypeCast* x);
566 virtual void do_Invoke (Invoke* x);
567 virtual void do_NewInstance (NewInstance* x);
568 virtual void do_NewTypeArray (NewTypeArray* x);
569 virtual void do_NewObjectArray (NewObjectArray* x);
570 virtual void do_NewMultiArray (NewMultiArray* x);
571 virtual void do_CheckCast (CheckCast* x);
572 virtual void do_InstanceOf (InstanceOf* x);
573 virtual void do_MonitorEnter (MonitorEnter* x);
574 virtual void do_MonitorExit (MonitorExit* x);
575 virtual void do_Intrinsic (Intrinsic* x);
576 virtual void do_BlockBegin (BlockBegin* x);
577 virtual void do_Goto (Goto* x);
578 virtual void do_If (If* x);
579 virtual void do_IfInstanceOf (IfInstanceOf* x);
580 virtual void do_TableSwitch (TableSwitch* x);
581 virtual void do_LookupSwitch (LookupSwitch* x);
582 virtual void do_Return (Return* x);
583 virtual void do_Throw (Throw* x);
584 virtual void do_Base (Base* x);
585 virtual void do_OsrEntry (OsrEntry* x);
586 virtual void do_ExceptionObject(ExceptionObject* x);
587 virtual void do_RoundFP (RoundFP* x);
|
249 void do_ArithmeticOp_Int (ArithmeticOp* x);
250 void do_ArithmeticOp_FPU (ArithmeticOp* x);
251
252 void do_RegisterFinalizer(Intrinsic* x);
253 void do_isInstance(Intrinsic* x);
254 void do_isPrimitive(Intrinsic* x);
255 void do_getClass(Intrinsic* x);
256 void do_currentThread(Intrinsic* x);
257 void do_FmaIntrinsic(Intrinsic* x);
258 void do_MathIntrinsic(Intrinsic* x);
259 void do_LibmIntrinsic(Intrinsic* x);
260 void do_ArrayCopy(Intrinsic* x);
261 void do_CompareAndSwap(Intrinsic* x, ValueType* type);
262 void do_NIOCheckIndex(Intrinsic* x);
263 void do_FPIntrinsics(Intrinsic* x);
264 void do_Reference_get(Intrinsic* x);
265 void do_update_CRC32(Intrinsic* x);
266 void do_update_CRC32C(Intrinsic* x);
267 void do_vectorizedMismatch(Intrinsic* x);
268
269 void access_flattened_array(bool is_load, LIRItem& array, LIRItem& index, LIRItem& obj_item);
270
271 public:
272 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
273 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
274
275 // convenience functions
276 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
277 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
278
279 // Access API
280
281 private:
282 BarrierSetC1 *_barrier_set;
283
284 public:
285 void access_store_at(DecoratorSet decorators, BasicType type,
286 LIRItem& base, LIR_Opr offset, LIR_Opr value,
287 CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);
288
289 void access_load_at(DecoratorSet decorators, BasicType type,
290 LIRItem& base, LIR_Opr offset, LIR_Opr result,
550 // visitor functionality
551 virtual void do_Phi (Phi* x);
552 virtual void do_Local (Local* x);
553 virtual void do_Constant (Constant* x);
554 virtual void do_LoadField (LoadField* x);
555 virtual void do_StoreField (StoreField* x);
556 virtual void do_ArrayLength (ArrayLength* x);
557 virtual void do_LoadIndexed (LoadIndexed* x);
558 virtual void do_StoreIndexed (StoreIndexed* x);
559 virtual void do_NegateOp (NegateOp* x);
560 virtual void do_ArithmeticOp (ArithmeticOp* x);
561 virtual void do_ShiftOp (ShiftOp* x);
562 virtual void do_LogicOp (LogicOp* x);
563 virtual void do_CompareOp (CompareOp* x);
564 virtual void do_IfOp (IfOp* x);
565 virtual void do_Convert (Convert* x);
566 virtual void do_NullCheck (NullCheck* x);
567 virtual void do_TypeCast (TypeCast* x);
568 virtual void do_Invoke (Invoke* x);
569 virtual void do_NewInstance (NewInstance* x);
570 virtual void do_NewValueTypeInstance(NewValueTypeInstance* x);
571 virtual void do_NewTypeArray (NewTypeArray* x);
572 virtual void do_NewObjectArray (NewObjectArray* x);
573 virtual void do_NewMultiArray (NewMultiArray* x);
574 virtual void do_CheckCast (CheckCast* x);
575 virtual void do_InstanceOf (InstanceOf* x);
576 virtual void do_MonitorEnter (MonitorEnter* x);
577 virtual void do_MonitorExit (MonitorExit* x);
578 virtual void do_Intrinsic (Intrinsic* x);
579 virtual void do_BlockBegin (BlockBegin* x);
580 virtual void do_Goto (Goto* x);
581 virtual void do_If (If* x);
582 virtual void do_IfInstanceOf (IfInstanceOf* x);
583 virtual void do_TableSwitch (TableSwitch* x);
584 virtual void do_LookupSwitch (LookupSwitch* x);
585 virtual void do_Return (Return* x);
586 virtual void do_Throw (Throw* x);
587 virtual void do_Base (Base* x);
588 virtual void do_OsrEntry (OsrEntry* x);
589 virtual void do_ExceptionObject(ExceptionObject* x);
590 virtual void do_RoundFP (RoundFP* x);
|