255
256 void do_UnsafePrefetch(UnsafePrefetch* x, bool is_store);
257
258 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
259 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
260
261 // convenience functions
262 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
263 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
264
265 // GC Barriers
266
267 // generic interface
268
269 void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);
270 void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
271
272 #if INCLUDE_ALL_GCS
273 LIR_Opr shenandoah_read_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
274 LIR_Opr shenandoah_write_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
275 #endif
276
277 // specific implementations
278 // pre barriers
279
280 void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,
281 bool do_load, bool patch, CodeEmitInfo* info);
282
283 // post barriers
284
285 void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
286 void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
287 #ifdef CARDTABLEMODREF_POST_BARRIER_HELPER
288 void CardTableModRef_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
289 #endif
290
291
292 static LIR_Opr result_register_for(ValueType* type, bool callee = false);
293
294 ciObject* get_jobject_constant(Value value);
|
255
256 void do_UnsafePrefetch(UnsafePrefetch* x, bool is_store);
257
258 LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
259 LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
260
261 // convenience functions
262 LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
263 LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
264
265 // GC Barriers
266
267 // generic interface
268
269 void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);
270 void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
271
272 #if INCLUDE_ALL_GCS
273 LIR_Opr shenandoah_read_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
274 LIR_Opr shenandoah_write_barrier(LIR_Opr obj, CodeEmitInfo* info, bool need_null_check);
275 LIR_Opr ensure_in_register(LIR_Opr obj);
276 #endif
277
278 // specific implementations
279 // pre barriers
280
281 void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,
282 bool do_load, bool patch, CodeEmitInfo* info);
283
284 // post barriers
285
286 void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
287 void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
288 #ifdef CARDTABLEMODREF_POST_BARRIER_HELPER
289 void CardTableModRef_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
290 #endif
291
292
293 static LIR_Opr result_register_for(ValueType* type, bool callee = false);
294
295 ciObject* get_jobject_constant(Value value);
|