209 |
209 |
210 int VtableStub::pd_code_size_limit(bool is_vtable_stub) { |
210 int VtableStub::pd_code_size_limit(bool is_vtable_stub) { |
211 if (is_vtable_stub) { |
211 if (is_vtable_stub) { |
212 // Vtable stub size |
212 // Vtable stub size |
213 return (DebugVtables ? 512 : 24) + (CountCompiledCalls ? 13 : 0) + |
213 return (DebugVtables ? 512 : 24) + (CountCompiledCalls ? 13 : 0) + |
214 (UseCompressedKlassPointers ? 16 : 0); // 1 leaq can be 3 bytes + 1 long |
214 (UseCompressedKlassPointers ? MacroAssembler::instr_size_for_decode_klass_not_null() : 0); |
215 } else { |
215 } else { |
216 // Itable stub size |
216 // Itable stub size |
217 return (DebugVtables ? 512 : 74) + (CountCompiledCalls ? 13 : 0) + |
217 return (DebugVtables ? 512 : 74) + (CountCompiledCalls ? 13 : 0) + |
218 (UseCompressedKlassPointers ? 32 : 0); // 2 leaqs |
218 (UseCompressedKlassPointers ? MacroAssembler::instr_size_for_decode_klass_not_null() : 0); |
219 } |
219 } |
220 // In order to tune these parameters, run the JVM with VM options |
220 // In order to tune these parameters, run the JVM with VM options |
221 // +PrintMiscellaneous and +WizardMode to see information about |
221 // +PrintMiscellaneous and +WizardMode to see information about |
222 // actual itable stubs. Look for lines like this: |
222 // actual itable stubs. Look for lines like this: |
223 // itable #1 at 0x5551212[71] left over: 3 |
223 // itable #1 at 0x5551212[71] left over: 3 |