hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
changeset 35214 d86005e0b4c2
parent 34651 07b1cc0f6040
equal deleted inserted replaced
35211:3771329165d4 35214:d86005e0b4c2
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "asm/macroAssembler.hpp"
    26 #include "asm/macroAssembler.hpp"
    27 #include "interpreter/bytecodeHistogram.hpp"
    27 #include "interpreter/bytecodeHistogram.hpp"
    28 #include "interpreter/interpreter.hpp"
    28 #include "interpreter/interpreter.hpp"
    29 #include "interpreter/interpreterGenerator.hpp"
       
    30 #include "interpreter/interpreterRuntime.hpp"
    29 #include "interpreter/interpreterRuntime.hpp"
    31 #include "interpreter/interp_masm.hpp"
    30 #include "interpreter/interp_masm.hpp"
       
    31 #include "interpreter/templateInterpreterGenerator.hpp"
    32 #include "interpreter/templateTable.hpp"
    32 #include "interpreter/templateTable.hpp"
    33 #include "oops/arrayOop.hpp"
    33 #include "oops/arrayOop.hpp"
    34 #include "oops/methodData.hpp"
    34 #include "oops/methodData.hpp"
    35 #include "oops/method.hpp"
    35 #include "oops/method.hpp"
    36 #include "oops/oop.inline.hpp"
    36 #include "oops/oop.inline.hpp"
    51 
    51 
    52 
    52 
    53 
    53 
    54 // Generation of Interpreter
    54 // Generation of Interpreter
    55 //
    55 //
    56 // The InterpreterGenerator generates the interpreter into Interpreter::_code.
    56 // The TemplateInterpreterGenerator generates the interpreter into Interpreter::_code.
    57 
    57 
    58 
    58 
    59 #define __ _masm->
    59 #define __ _masm->
    60 
    60 
    61 
    61 
   192      restore(O0, 0, Lscratch);  // caller's Lscratch gets the result handler
   192      restore(O0, 0, Lscratch);  // caller's Lscratch gets the result handler
   193   return entry;
   193   return entry;
   194 }
   194 }
   195 #endif
   195 #endif
   196 
   196 
   197 void InterpreterGenerator::generate_counter_overflow(Label& Lcontinue) {
   197 void TemplateInterpreterGenerator::generate_counter_overflow(Label& Lcontinue) {
   198 
   198 
   199   // Generate code to initiate compilation on the counter overflow.
   199   // Generate code to initiate compilation on the counter overflow.
   200 
   200 
   201   // InterpreterRuntime::frequency_counter_overflow takes two arguments,
   201   // InterpreterRuntime::frequency_counter_overflow takes two arguments,
   202   // the first indicates if the counter overflow occurs at a backwards branch (NULL bcp)
   202   // the first indicates if the counter overflow occurs at a backwards branch (NULL bcp)
   217 // Various method entries
   217 // Various method entries
   218 
   218 
   219 // Abstract method entry
   219 // Abstract method entry
   220 // Attempt to execute abstract method. Throw exception
   220 // Attempt to execute abstract method. Throw exception
   221 //
   221 //
   222 address InterpreterGenerator::generate_abstract_entry(void) {
   222 address TemplateInterpreterGenerator::generate_abstract_entry(void) {
   223   address entry = __ pc();
   223   address entry = __ pc();
   224   // abstract method entry
   224   // abstract method entry
   225   // throw exception
   225   // throw exception
   226   __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
   226   __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
   227   // the call_VM checks for exception, so we should never return here.
   227   // the call_VM checks for exception, so we should never return here.