comparison src/cpu/sparc/vm/vtableStubs_sparc.cpp @ 3839:3d42f82cd811

7063628: Use cbcond on T4 Summary: Add new short branch instruction to Hotspot sparc assembler. Reviewed-by: never, twisti, jrose
author kvn
date Thu, 21 Jul 2011 11:25:07 -0700
parents f95d63e2154a
children 6729bbc1fcd6
comparison
equal deleted inserted replaced
3838:6a991dcb52bb 3839:3d42f82cd811
74 #ifndef PRODUCT 74 #ifndef PRODUCT
75 if (DebugVtables) { 75 if (DebugVtables) {
76 Label L; 76 Label L;
77 // check offset vs vtable length 77 // check offset vs vtable length
78 __ ld(G3_scratch, instanceKlass::vtable_length_offset()*wordSize, G5); 78 __ ld(G3_scratch, instanceKlass::vtable_length_offset()*wordSize, G5);
79 __ cmp(G5, vtable_index*vtableEntry::size()); 79 __ cmp_and_br_short(G5, vtable_index*vtableEntry::size(), Assembler::greaterUnsigned, Assembler::pt, L);
80 __ br(Assembler::greaterUnsigned, false, Assembler::pt, L);
81 __ delayed()->nop();
82 __ set(vtable_index, O2); 80 __ set(vtable_index, O2);
83 __ call_VM(noreg, CAST_FROM_FN_PTR(address, bad_compiled_vtable_index), O0, O2); 81 __ call_VM(noreg, CAST_FROM_FN_PTR(address, bad_compiled_vtable_index), O0, O2);
84 __ bind(L); 82 __ bind(L);
85 } 83 }
86 #endif 84 #endif
93 } 91 }
94 92
95 #ifndef PRODUCT 93 #ifndef PRODUCT
96 if (DebugVtables) { 94 if (DebugVtables) {
97 Label L; 95 Label L;
98 __ br_notnull(G5_method, false, Assembler::pt, L); 96 __ br_notnull_short(G5_method, Assembler::pt, L);
99 __ delayed()->nop();
100 __ stop("Vtable entry is ZERO"); 97 __ stop("Vtable entry is ZERO");
101 __ bind(L); 98 __ bind(L);
102 } 99 }
103 #endif 100 #endif
104 101
175 throw_icce); 172 throw_icce);
176 173
177 #ifndef PRODUCT 174 #ifndef PRODUCT
178 if (DebugVtables) { 175 if (DebugVtables) {
179 Label L01; 176 Label L01;
180 __ bpr(Assembler::rc_nz, false, Assembler::pt, L5_method, L01); 177 __ br_notnull_short(L5_method, Assembler::pt, L01);
181 __ delayed()->nop();
182 __ stop("methodOop is null"); 178 __ stop("methodOop is null");
183 __ bind(L01); 179 __ bind(L01);
184 __ verify_oop(L5_method); 180 __ verify_oop(L5_method);
185 } 181 }
186 #endif 182 #endif