257 void do_FPIntrinsics(Intrinsic* x);
258 void do_Reference_get(Intrinsic* x);
259 void do_update_CRC32(Intrinsic* x);
260 void do_update_CRC32C(Intrinsic* x);
261 void do_vectorizedMismatch(Intrinsic* x);
262
263 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
264 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
265
266 // convenience functions
267 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
268 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
269
270 // GC Barriers
271
272 // generic interface
273
274 void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);
275 void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
276
277 LIR_Opr shenandoah_read_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
278 LIR_Opr shenandoah_write_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
279 LIR_Opr shenandoah_storeval_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
280
281 private:
282 LIR_Opr shenandoah_read_barrier_impl(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
283
284 public:
285 // specific implementations
286 // pre barriers
287
288 void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,
289 bool do_load, bool patch, CodeEmitInfo* info);
290
291 // post barriers
292
293 void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
294 void Shenandoah_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
295 void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
296 #ifdef CARDTABLEMODREF_POST_BARRIER_HELPER
|
257 void do_FPIntrinsics(Intrinsic* x);
258 void do_Reference_get(Intrinsic* x);
259 void do_update_CRC32(Intrinsic* x);
260 void do_update_CRC32C(Intrinsic* x);
261 void do_vectorizedMismatch(Intrinsic* x);
262
263 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
264 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
265
266 // convenience functions
267 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
268 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
269
270 // GC Barriers
271
272 // generic interface
273
274 void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);
275 void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
276
277 void keep_alive_barrier(LIR_Opr val);
278
279 LIR_Opr shenandoah_read_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
280 LIR_Opr shenandoah_write_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
281 LIR_Opr shenandoah_storeval_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
282
283 private:
284 LIR_Opr shenandoah_read_barrier_impl(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
285
286 public:
287 // specific implementations
288 // pre barriers
289
290 void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,
291 bool do_load, bool patch, CodeEmitInfo* info);
292
293 // post barriers
294
295 void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
296 void Shenandoah_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
297 void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
298 #ifdef CARDTABLEMODREF_POST_BARRIER_HELPER
|