src/share/vm/interpreter/abstractInterpreter.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
8074457 Cdiff src/share/vm/interpreter/abstractInterpreter.hpp
src/share/vm/interpreter/abstractInterpreter.hpp
Print this page
*** 60,71 ****
class InterpreterMacroAssembler;
class AbstractInterpreter: AllStatic {
friend class VMStructs;
- friend class Interpreter;
friend class CppInterpreterGenerator;
public:
enum MethodKind {
zerolocals, // method needs locals initialization
zerolocals_synchronized, // method needs locals initialization & is synchronized
native, // native method
--- 60,71 ----
class InterpreterMacroAssembler;
class AbstractInterpreter: AllStatic {
friend class VMStructs;
friend class CppInterpreterGenerator;
+ friend class TemplateInterpreterGenerator;
public:
enum MethodKind {
zerolocals, // method needs locals initialization
zerolocals_synchronized, // method needs locals initialization & is synchronized
native, // native method
*** 126,136 ****
static address _slow_signature_handler; // the native method generic (slow) signature handler
static address _rethrow_exception_entry; // rethrows an activation in previous frame
friend class AbstractInterpreterGenerator;
- friend class InterpreterGenerator;
friend class InterpreterMacroAssembler;
public:
// Initialization/debugging
static void initialize();
--- 126,135 ----
*** 211,220 ****
--- 210,242 ----
// Interpreter helpers
const static int stackElementWords = 1;
const static int stackElementSize = stackElementWords * wordSize;
const static int logStackElementSize = LogBytesPerWord;
+ static int expr_index_at(int i) {
+ return stackElementWords * i;
+ }
+
+ static int expr_offset_in_bytes(int i) {
+ #if defined(TARGET_ARCH_ppc) || defined(TARGET_ARCH_sparc)
+ return stackElementSize * i + wordSize; // both point to one word past TOS
+ #else
+ return stackElementSize * i;
+ #endif
+ }
+
+ static int local_index_at(int i) {
+ assert(i <= 0, "local direction already negated");
+ return stackElementWords * i;
+ }
+
+ #ifdef TARGET_ARCH_x86
+ static Address::ScaleFactor stackElementScale() {
+ return NOT_LP64(Address::times_4) LP64_ONLY(Address::times_8);
+ }
+ #endif
+
// Local values relative to locals[n]
static int local_offset_in_bytes(int n) {
return ((frame::interpreter_frame_expression_stack_direction() * n) * stackElementSize);
}
src/share/vm/interpreter/abstractInterpreter.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File