< prev index next >

src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp

Print this page
*** 1186,11 ***
  //   R15_esp       - intptr_t* sender tos
  //
  //   abstract stack (grows up)
  //     [  IJava (caller of JNI callee)  ]  <-- ASP
  //        ...
! address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
  
    address entry = __ pc();
  
    const bool inc_counter = UseCompiler || CountCompiledCalls;
  
--- 1186,11 ---
  //   R15_esp       - intptr_t* sender tos
  //
  //   abstract stack (grows up)
  //     [  IJava (caller of JNI callee)  ]  <-- ASP
  //        ...
! address TemplateInterpreterGenerator::generate_native_entry(bool synchronized, bool runtime_upcalls) {
  
    address entry = __ pc();
  
    const bool inc_counter = UseCompiler || CountCompiledCalls;
  

*** 1645,11 ***
    return entry;
  }
  
  // Generic interpreted method entry to (asm) interpreter.
  //
! address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized) {
    bool inc_counter = UseCompiler || CountCompiledCalls;
    address entry = __ pc();
    // Generate the code to allocate the interpreter stack frame.
    Register Rsize_of_parameters = R4_ARG2, // Written by generate_fixed_frame.
             Rsize_of_locals     = R5_ARG3; // Written by generate_fixed_frame.
--- 1645,11 ---
    return entry;
  }
  
  // Generic interpreted method entry to (asm) interpreter.
  //
! address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized, bool runtime_upcalls) {
    bool inc_counter = UseCompiler || CountCompiledCalls;
    address entry = __ pc();
    // Generate the code to allocate the interpreter stack frame.
    Register Rsize_of_parameters = R4_ARG2, // Written by generate_fixed_frame.
             Rsize_of_locals     = R5_ARG3; // Written by generate_fixed_frame.

*** 2218,10 ***
--- 2218,24 ---
    generate_and_dispatch(t);
  }
  
  //-----------------------------------------------------------------------------
  
+ void TemplateInterpreterGenerator::count_bytecode() {
+   int offs = __ load_const_optimized(R11_scratch1, (address) &BytecodeCounter::_counter_value, R12_scratch2, true);
+   __ lwz(R12_scratch2, offs, R11_scratch1);
+   __ addi(R12_scratch2, R12_scratch2, 1);
+   __ stw(R12_scratch2, offs, R11_scratch1);
+ }
+ 
+ void TemplateInterpreterGenerator::histogram_bytecode(Template* t) {
+   int offs = __ load_const_optimized(R11_scratch1, (address) &BytecodeHistogram::_counters[t->bytecode()], R12_scratch2, true);
+   __ lwz(R12_scratch2, offs, R11_scratch1);
+   __ addi(R12_scratch2, R12_scratch2, 1);
+   __ stw(R12_scratch2, offs, R11_scratch1);
+ }
+ 
  // Non-product code
  #ifndef PRODUCT
  address TemplateInterpreterGenerator::generate_trace_code(TosState state) {
    //__ flush_bundle();
    address entry = __ pc();

*** 2305,24 ***
    __ blr();
    BLOCK_COMMENT("} trace_code");
    return entry;
  }
  
- void TemplateInterpreterGenerator::count_bytecode() {
-   int offs = __ load_const_optimized(R11_scratch1, (address) &BytecodeCounter::_counter_value, R12_scratch2, true);
-   __ lwz(R12_scratch2, offs, R11_scratch1);
-   __ addi(R12_scratch2, R12_scratch2, 1);
-   __ stw(R12_scratch2, offs, R11_scratch1);
- }
- 
- void TemplateInterpreterGenerator::histogram_bytecode(Template* t) {
-   int offs = __ load_const_optimized(R11_scratch1, (address) &BytecodeHistogram::_counters[t->bytecode()], R12_scratch2, true);
-   __ lwz(R12_scratch2, offs, R11_scratch1);
-   __ addi(R12_scratch2, R12_scratch2, 1);
-   __ stw(R12_scratch2, offs, R11_scratch1);
- }
- 
  void TemplateInterpreterGenerator::histogram_bytecode_pair(Template* t) {
    const Register addr = R11_scratch1,
                   tmp  = R12_scratch2;
    // Get index, shift out old bytecode, bring in new bytecode, and store it.
    // _index = (_index >> log2_number_of_codes) |
--- 2319,10 ---
< prev index next >