52 z_ltgr(receiver, receiver);
53 z_bre(ic_miss);
54 }
55 }
56
57 compare_klass_ptr(iCache, klass_offset, receiver, false);
58 z_bre(ic_hit);
59
60 // If icache check fails, then jump to runtime routine.
61 // Note: RECEIVER must still contain the receiver!
62 load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub()));
63 z_br(Z_R1_scratch);
64 align(CodeEntryAlignment);
65 bind(ic_hit);
66 }
67
68 void C1_MacroAssembler::explicit_null_check(Register base) {
69 ShouldNotCallThis(); // unused
70 }
71
72 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) {
73 assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect");
74 generate_stack_overflow_check(bang_size_in_bytes);
75 save_return_pc();
76 push_frame(frame_size_in_bytes);
77
78 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
79 bs->nmethod_entry_barrier(this);
80 }
81
82 void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
83 if (breakAtEntry) z_illtrap(0xC1);
84 }
85
86 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
87 const int hdr_offset = oopDesc::mark_offset_in_bytes();
88 assert_different_registers(hdr, obj, disp_hdr);
89 NearLabel done;
90
91 verify_oop(obj, FILE_AND_LINE);
92
|
52 z_ltgr(receiver, receiver);
53 z_bre(ic_miss);
54 }
55 }
56
57 compare_klass_ptr(iCache, klass_offset, receiver, false);
58 z_bre(ic_hit);
59
60 // If icache check fails, then jump to runtime routine.
61 // Note: RECEIVER must still contain the receiver!
62 load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub()));
63 z_br(Z_R1_scratch);
64 align(CodeEntryAlignment);
65 bind(ic_hit);
66 }
67
68 void C1_MacroAssembler::explicit_null_check(Register base) {
69 ShouldNotCallThis(); // unused
70 }
71
72 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes, int max_monitors) {
73 assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect");
74 generate_stack_overflow_check(bang_size_in_bytes);
75 save_return_pc();
76 push_frame(frame_size_in_bytes);
77
78 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
79 bs->nmethod_entry_barrier(this);
80 }
81
82 void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
83 if (breakAtEntry) z_illtrap(0xC1);
84 }
85
86 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
87 const int hdr_offset = oopDesc::mark_offset_in_bytes();
88 assert_different_registers(hdr, obj, disp_hdr);
89 NearLabel done;
90
91 verify_oop(obj, FILE_AND_LINE);
92
|