38 void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
39 Label L;
40 const Register temp_reg = G3_scratch;
41 // Note: needs more testing of out-of-line vs. inline slow case
42 verify_oop(receiver);
43 load_klass(receiver, temp_reg);
44 cmp_and_brx_short(temp_reg, iCache, Assembler::equal, Assembler::pt, L);
45 AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub());
46 jump_to(ic_miss, temp_reg);
47 delayed()->nop();
48 align(CodeEntryAlignment);
49 bind(L);
50 }
51
52
53 void C1_MacroAssembler::explicit_null_check(Register base) {
54 Unimplemented();
55 }
56
57
58 void C1_MacroAssembler::build_frame(int frame_size_in_bytes) {
59
60 generate_stack_overflow_check(frame_size_in_bytes);
61 // Create the frame.
62 save_frame_c1(frame_size_in_bytes);
63 }
64
65
66 void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) {
67 if (C1Breakpoint) breakpoint_trap();
68 inline_cache_check(receiver, ic_klass);
69 }
70
71
72 void C1_MacroAssembler::verified_entry() {
73 if (C1Breakpoint) breakpoint_trap();
74 // build frame
75 verify_FPU(0, "method_entry");
76 }
77
78
79 void C1_MacroAssembler::lock_object(Register Rmark, Register Roop, Register Rbox, Register Rscratch, Label& slow_case) {
80 assert_different_registers(Rmark, Roop, Rbox, Rscratch);
|
38 void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
39 Label L;
40 const Register temp_reg = G3_scratch;
41 // Note: needs more testing of out-of-line vs. inline slow case
42 verify_oop(receiver);
43 load_klass(receiver, temp_reg);
44 cmp_and_brx_short(temp_reg, iCache, Assembler::equal, Assembler::pt, L);
45 AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub());
46 jump_to(ic_miss, temp_reg);
47 delayed()->nop();
48 align(CodeEntryAlignment);
49 bind(L);
50 }
51
52
53 void C1_MacroAssembler::explicit_null_check(Register base) {
54 Unimplemented();
55 }
56
57
58 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) {
59 assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect");
60 generate_stack_overflow_check(bang_size_in_bytes);
61 // Create the frame.
62 save_frame_c1(frame_size_in_bytes);
63 }
64
65
66 void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) {
67 if (C1Breakpoint) breakpoint_trap();
68 inline_cache_check(receiver, ic_klass);
69 }
70
71
72 void C1_MacroAssembler::verified_entry() {
73 if (C1Breakpoint) breakpoint_trap();
74 // build frame
75 verify_FPU(0, "method_entry");
76 }
77
78
79 void C1_MacroAssembler::lock_object(Register Rmark, Register Roop, Register Rbox, Register Rscratch, Label& slow_case) {
80 assert_different_registers(Rmark, Roop, Rbox, Rscratch);
|