src/cpu/sparc/vm/sharedRuntime_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6930772 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/sharedRuntime_sparc.cpp

Print this page




 940   // G4 (Gargs)     - Pointer to interpreter's args
 941   // O0..O4         - free for scratch
 942   // O5_savedSP     - Caller's saved SP, to be restored if needed
 943   // O6             - Current SP!
 944   // O7             - Valid return address
 945   // L0-L7, I0-I7   - Caller's temps (no frame pushed yet)
 946 
 947   // Outputs:
 948   // G2_thread      - TLS
 949   // G1, G4         - Outgoing long args in 32-bit build
 950   // O0-O5          - Outgoing args in compiled layout
 951   // O6             - Adjusted or restored SP
 952   // O7             - Valid return address
 953   // L0-L7, I0-I7    - Caller's temps (no frame pushed yet)
 954   // F0-F7          - more outgoing args
 955 
 956 
 957   // Gargs is the incoming argument base, and also an outgoing argument.
 958   __ sub(Gargs, BytesPerWord, Gargs);
 959 
 960 #ifdef ASSERT
 961   {
 962     // on entry OsavedSP and SP should be equal
 963     Label ok;
 964     __ cmp(O5_savedSP, SP);
 965     __ br(Assembler::equal, false, Assembler::pt, ok);
 966     __ delayed()->nop();
 967     __ stop("I5_savedSP not set");
 968     __ should_not_reach_here();
 969     __ bind(ok);
 970   }
 971 #endif
 972 
 973   // ON ENTRY TO THE CODE WE ARE MAKING, WE HAVE AN INTERPRETED FRAME
 974   // WITH O7 HOLDING A VALID RETURN PC
 975   //
 976   // |              |
 977   // :  java stack  :
 978   // |              |
 979   // +--------------+ <--- start of outgoing args
 980   // |   receiver   |   |
 981   // : rest of args :   |---size is java-arg-words
 982   // |              |   |
 983   // +--------------+ <--- O4_args (misaligned) and Lesp if prior is not C2I
 984   // |              |   |
 985   // :    unused    :   |---Space for max Java stack, plus stack alignment
 986   // |              |   |
 987   // +--------------+ <--- SP + 16*wordsize
 988   // |              |
 989   // :    window    :
 990   // |              |
 991   // +--------------+ <--- SP
 992 




 940   // G4 (Gargs)     - Pointer to interpreter's args
 941   // O0..O4         - free for scratch
 942   // O5_savedSP     - Caller's saved SP, to be restored if needed
 943   // O6             - Current SP!
 944   // O7             - Valid return address
 945   // L0-L7, I0-I7   - Caller's temps (no frame pushed yet)
 946 
 947   // Outputs:
 948   // G2_thread      - TLS
 949   // G1, G4         - Outgoing long args in 32-bit build
 950   // O0-O5          - Outgoing args in compiled layout
 951   // O6             - Adjusted or restored SP
 952   // O7             - Valid return address
 953   // L0-L7, I0-I7   - Caller's temps (no frame pushed yet)
 954   // F0-F7          - more outgoing args
 955 
 956 
 957   // Gargs is the incoming argument base, and also an outgoing argument.
 958   __ sub(Gargs, BytesPerWord, Gargs);
 959 













 960   // ON ENTRY TO THE CODE WE ARE MAKING, WE HAVE AN INTERPRETED FRAME
 961   // WITH O7 HOLDING A VALID RETURN PC
 962   //
 963   // |              |
 964   // :  java stack  :
 965   // |              |
 966   // +--------------+ <--- start of outgoing args
 967   // |   receiver   |   |
 968   // : rest of args :   |---size is java-arg-words
 969   // |              |   |
 970   // +--------------+ <--- O4_args (misaligned) and Lesp if prior is not C2I
 971   // |              |   |
 972   // :    unused    :   |---Space for max Java stack, plus stack alignment
 973   // |              |   |
 974   // +--------------+ <--- SP + 16*wordsize
 975   // |              |
 976   // :    window    :
 977   // |              |
 978   // +--------------+ <--- SP
 979 


src/cpu/sparc/vm/sharedRuntime_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File