419 return l;
420 }
421
422 #ifdef __SOFTFP__
423 void do_soft_float_compare(If *x);
424 #endif // __SOFTFP__
425
426 void init();
427
428 SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
429 SwitchRangeArray* create_lookup_ranges(LookupSwitch* x);
430 void do_SwitchRanges(SwitchRangeArray* x, LIR_Opr value, BlockBegin* default_sux);
431
432 void do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x);
433 #ifdef TRACE_HAVE_INTRINSICS
434 void do_ThreadIDIntrinsic(Intrinsic* x);
435 void do_ClassIDIntrinsic(Intrinsic* x);
436 #endif
437 ciKlass* profile_arg_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k);
438 void profile_arguments(ProfileCall* x);
439
440 public:
441 Compilation* compilation() const { return _compilation; }
442 FrameMap* frame_map() const { return _compilation->frame_map(); }
443 ciMethod* method() const { return _method; }
444 BlockBegin* block() const { return _block; }
445 IRScope* scope() const { return block()->scope(); }
446
447 int max_virtual_register_number() const { return _virtual_register_number; }
448
449 void block_do(BlockBegin* block);
450
451 // Flags that can be set on vregs
452 enum VregFlag {
453 must_start_in_memory = 0 // needs to be assigned a memory location at beginning, but may then be loaded in a register
454 , callee_saved = 1 // must be in a callee saved register
455 , byte_reg = 2 // must be in a byte register
456 , num_vreg_flags
457
458 };
|
419 return l;
420 }
421
422 #ifdef __SOFTFP__
423 void do_soft_float_compare(If *x);
424 #endif // __SOFTFP__
425
426 void init();
427
428 SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
429 SwitchRangeArray* create_lookup_ranges(LookupSwitch* x);
430 void do_SwitchRanges(SwitchRangeArray* x, LIR_Opr value, BlockBegin* default_sux);
431
432 void do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x);
433 #ifdef TRACE_HAVE_INTRINSICS
434 void do_ThreadIDIntrinsic(Intrinsic* x);
435 void do_ClassIDIntrinsic(Intrinsic* x);
436 #endif
437 ciKlass* profile_arg_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k);
438 void profile_arguments(ProfileCall* x);
439 void profile_parameters(Base* x);
440 void profile_parameters_at_call(ProfileCall* x);
441
442 public:
443 Compilation* compilation() const { return _compilation; }
444 FrameMap* frame_map() const { return _compilation->frame_map(); }
445 ciMethod* method() const { return _method; }
446 BlockBegin* block() const { return _block; }
447 IRScope* scope() const { return block()->scope(); }
448
449 int max_virtual_register_number() const { return _virtual_register_number; }
450
451 void block_do(BlockBegin* block);
452
453 // Flags that can be set on vregs
454 enum VregFlag {
455 must_start_in_memory = 0 // needs to be assigned a memory location at beginning, but may then be loaded in a register
456 , callee_saved = 1 // must be in a callee saved register
457 , byte_reg = 2 // must be in a byte register
458 , num_vreg_flags
459
460 };
|