src/cpu/sparc/vm/frame_sparc.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8004128_2 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/frame_sparc.hpp

Print this page




  61 //
  62 //                                <-- Lesp (points 1 past TOS)
  63 // [bottom word used for stack ]
  64 // ...
  65 // [top word used for stack]    (first word of stack is double-word aligned)
  66 
  67 // [space for outgoing args (conservatively allocated as max_stack - 6 + interpreter_frame_extra_outgoing_argument_words)]
  68 // [6 words for C-arg storage]
  69 // [C-aggregate-word (unused)]
  70 // [16 words for register saving]                                    <--- SP
  71 // ...
  72 // 0x0000000
  73 //
  74 // The in registers and local registers are preserved in a block at SP.
  75 //
  76 // The first six in registers (I0..I5) hold the first six locals.
  77 // The locals are used as follows:
  78 //    Lesp         first free element of expression stack
  79 //                 (which grows towards __higher__ addresses)
  80 //    Lbcp         is set to address of bytecode to execute
  81 //                 It is accessed in the frame under the name "bcx".
  82 //                 It may at times (during GC) be an index instead.
  83 //    Lmethod      the method being interpreted
  84 //    Llocals      the base pointer for accessing the locals array
  85 //                 (lower-numbered locals have lower addresses)
  86 //    Lmonitors    the base pointer for accessing active monitors
  87 //    Lcache       a saved pointer to the method's constant pool cache
  88 //
  89 //
  90 // When calling out to another method,
  91 // G5_method is set to method to call, G5_inline_cache_klass may be set,
  92 // parameters are put in O registers, and also extra parameters
  93 // must be cleverly copied from the top of stack to the outgoing param area in the frame,
  94 // ------------------------------ C++ interpreter ----------------------------------------
  95 // Layout of C++ interpreter frame:
  96 //
  97 
  98 
  99 
 100 // All frames:
 101 




  61 //
  62 //                                <-- Lesp (points 1 past TOS)
  63 // [bottom word used for stack ]
  64 // ...
  65 // [top word used for stack]    (first word of stack is double-word aligned)
  66 
  67 // [space for outgoing args (conservatively allocated as max_stack - 6 + interpreter_frame_extra_outgoing_argument_words)]
  68 // [6 words for C-arg storage]
  69 // [C-aggregate-word (unused)]
  70 // [16 words for register saving]                                    <--- SP
  71 // ...
  72 // 0x0000000
  73 //
  74 // The in registers and local registers are preserved in a block at SP.
  75 //
  76 // The first six in registers (I0..I5) hold the first six locals.
  77 // The locals are used as follows:
  78 //    Lesp         first free element of expression stack
  79 //                 (which grows towards __higher__ addresses)
  80 //    Lbcp         is set to address of bytecode to execute

  81 //                 It may at times (during GC) be an index instead.
  82 //    Lmethod      the method being interpreted
  83 //    Llocals      the base pointer for accessing the locals array
  84 //                 (lower-numbered locals have lower addresses)
  85 //    Lmonitors    the base pointer for accessing active monitors
  86 //    Lcache       a saved pointer to the method's constant pool cache
  87 //
  88 //
  89 // When calling out to another method,
  90 // G5_method is set to method to call, G5_inline_cache_klass may be set,
  91 // parameters are put in O registers, and also extra parameters
  92 // must be cleverly copied from the top of stack to the outgoing param area in the frame,
  93 // ------------------------------ C++ interpreter ----------------------------------------
  94 // Layout of C++ interpreter frame:
  95 //
  96 
  97 
  98 
  99 // All frames:
 100 


src/cpu/sparc/vm/frame_sparc.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File