CACAO
Macros
md-abi.hpp File Reference

Go to the source code of this file.

Macros

#define REG_RESULT_CALLEE   24 /* to deliver method results */
 
#define REG_RESULT_CALLER   8 /* to read method results */
 
#define REG_RA_CALLEE   31 /* callee reads return address here */
 
#define REG_RA_CALLER   15 /* caller puts address of call instr here */
 
#define REG_PV_CALLEE   29 /* procedure vector, as found by callee */
 
#define REG_PV_CALLER   13 /* caller provides PV here */
 
#define REG_METHODPTR   2 /* pointer to the place from where the procedure */
 
#define REG_ITMP1   1 /* temporary register (scratch) */
 
#define REG_ITMP2   2 /* temporary register (application) */
 
#define REG_ITMP3   3 /* temporary register (application) */
 
#define REG_ITMP2_XPTR   2 /* exception pointer = temporary register 2 */
 
#define REG_ITMP3_XPC   3 /* exception pc = temporary register 3 */
 
#define REG_SP   14 /* stack pointer */
 
#define REG_FP   30 /* frame pointer */
 
#define REG_ZERO   0 /* always zero */
 
#define REG_OUT0   8 /* define some argument registers */
 
#define REG_OUT1   9
 
#define REG_OUT2   10
 
#define REG_OUT3   11
 
#define REG_OUT4   12
 
#define REG_OUT5   13 /* available only when doing a C-call */
 
#define REG_FRESULT   0 /* to deliver floating point method results */
 
#define REG_FTMP1   1 /* temporary floating point register */
 
#define REG_FTMP2   2 /* temporary floating point register */
 
#define REG_FTMP3   3 /* temporary floating point register */
 
#define REG_IFTMP   1 /* temporary integer and floating point register */
 
#define REG_F0   0
 
#define INT_REG_CNT   32 /* number of integer registers */
 
#define INT_SAV_CNT   13 /* number of int callee saved registers */
 
#define INT_ARG_CNT   5 /* number of int argument registers (-1 for PV) */
 
#define INT_TMP_CNT   0 /* int temp registers (%g4-%g5) */
 
#define INT_RES_CNT   14 /* number of reserved integer registers */
 
#define FLT_REG_CNT   16 /* number of float registers */
 
#define FLT_SAV_CNT   0 /* number of flt callee saved registers */
 
#define FLT_ARG_CNT   5 /* number of flt argument registers */
 
#define FLT_TMP_CNT   7 /* number of flt temp registers */
 
#define FLT_RES_CNT   3 /* number of reserved float registers */
 
#define INT_NATARG_CNT   6
 
#define FLT_NATARG_CNT   16
 
#define TRACE_ARGS_NUM   6
 
#define BIAS   2047 /* SPARC V9: stack @ address SP + BIAS */
 
#define WINSAVE_CNT   16 /* number of regs that SPARC saves onto stack */
 
#define ABIPARAMS_CNT   6 /* param slots the ABI always requires on stack */
 
#define JITSTACK_CNT   (WINSAVE_CNT + ABIPARAMS_CNT)
 
#define CSTACK_CNT   (WINSAVE_CNT + ABIPARAMS_CNT)
 
#define JITSTACK   ((JITSTACK_CNT) * 8 + BIAS)
 
#define CSTACK   ((CSTACK_CNT) * 8 + BIAS)
 
#define REG_WINDOW_TRANSPOSE(reg)   (reg + 16)
 

Macro Definition Documentation

#define ABIPARAMS_CNT   6 /* param slots the ABI always requires on stack */

Definition at line 112 of file md-abi.hpp.

#define BIAS   2047 /* SPARC V9: stack @ address SP + BIAS */

Definition at line 107 of file md-abi.hpp.

#define CSTACK   ((CSTACK_CNT) * 8 + BIAS)

Definition at line 118 of file md-abi.hpp.

#define CSTACK_CNT   (WINSAVE_CNT + ABIPARAMS_CNT)

Definition at line 115 of file md-abi.hpp.

#define FLT_ARG_CNT   5 /* number of flt argument registers */

Definition at line 94 of file md-abi.hpp.

#define FLT_NATARG_CNT   16

Definition at line 101 of file md-abi.hpp.

#define FLT_REG_CNT   16 /* number of float registers */

Definition at line 92 of file md-abi.hpp.

#define FLT_RES_CNT   3 /* number of reserved float registers */

Definition at line 96 of file md-abi.hpp.

#define FLT_SAV_CNT   0 /* number of flt callee saved registers */

Definition at line 93 of file md-abi.hpp.

#define FLT_TMP_CNT   7 /* number of flt temp registers */

Definition at line 95 of file md-abi.hpp.

#define INT_ARG_CNT   5 /* number of int argument registers (-1 for PV) */

Definition at line 87 of file md-abi.hpp.

#define INT_NATARG_CNT   6

Definition at line 100 of file md-abi.hpp.

#define INT_REG_CNT   32 /* number of integer registers */

Definition at line 85 of file md-abi.hpp.

#define INT_RES_CNT   14 /* number of reserved integer registers */

Definition at line 89 of file md-abi.hpp.

#define INT_SAV_CNT   13 /* number of int callee saved registers */

Definition at line 86 of file md-abi.hpp.

#define INT_TMP_CNT   0 /* int temp registers (%g4-%g5) */

Definition at line 88 of file md-abi.hpp.

#define JITSTACK   ((JITSTACK_CNT) * 8 + BIAS)

Definition at line 117 of file md-abi.hpp.

#define JITSTACK_CNT   (WINSAVE_CNT + ABIPARAMS_CNT)

Definition at line 114 of file md-abi.hpp.

#define REG_F0   0

Definition at line 82 of file md-abi.hpp.

#define REG_FP   30 /* frame pointer */

Definition at line 60 of file md-abi.hpp.

#define REG_FRESULT   0 /* to deliver floating point method results */

Definition at line 74 of file md-abi.hpp.

#define REG_FTMP1   1 /* temporary floating point register */

Definition at line 76 of file md-abi.hpp.

#define REG_FTMP2   2 /* temporary floating point register */

Definition at line 77 of file md-abi.hpp.

#define REG_FTMP3   3 /* temporary floating point register */

Definition at line 78 of file md-abi.hpp.

#define REG_IFTMP   1 /* temporary integer and floating point register */

Definition at line 80 of file md-abi.hpp.

#define REG_ITMP1   1 /* temporary register (scratch) */

Definition at line 52 of file md-abi.hpp.

#define REG_ITMP2   2 /* temporary register (application) */

Definition at line 53 of file md-abi.hpp.

#define REG_ITMP2_XPTR   2 /* exception pointer = temporary register 2 */

Definition at line 56 of file md-abi.hpp.

#define REG_ITMP3   3 /* temporary register (application) */

Definition at line 54 of file md-abi.hpp.

#define REG_ITMP3_XPC   3 /* exception pc = temporary register 3 */

Definition at line 57 of file md-abi.hpp.

#define REG_METHODPTR   2 /* pointer to the place from where the procedure */

Definition at line 48 of file md-abi.hpp.

#define REG_OUT0   8 /* define some argument registers */

Definition at line 63 of file md-abi.hpp.

#define REG_OUT1   9

Definition at line 64 of file md-abi.hpp.

#define REG_OUT2   10

Definition at line 65 of file md-abi.hpp.

#define REG_OUT3   11

Definition at line 66 of file md-abi.hpp.

#define REG_OUT4   12

Definition at line 67 of file md-abi.hpp.

#define REG_OUT5   13 /* available only when doing a C-call */

Definition at line 68 of file md-abi.hpp.

#define REG_PV_CALLEE   29 /* procedure vector, as found by callee */

Definition at line 44 of file md-abi.hpp.

#define REG_PV_CALLER   13 /* caller provides PV here */

Definition at line 45 of file md-abi.hpp.

#define REG_RA_CALLEE   31 /* callee reads return address here */

Definition at line 41 of file md-abi.hpp.

#define REG_RA_CALLER   15 /* caller puts address of call instr here */

Definition at line 42 of file md-abi.hpp.

#define REG_RESULT_CALLEE   24 /* to deliver method results */

Definition at line 38 of file md-abi.hpp.

#define REG_RESULT_CALLER   8 /* to read method results */

Definition at line 39 of file md-abi.hpp.

#define REG_SP   14 /* stack pointer */

Definition at line 59 of file md-abi.hpp.

#define REG_WINDOW_TRANSPOSE (   reg)    (reg + 16)

Definition at line 123 of file md-abi.hpp.

#define REG_ZERO   0 /* always zero */

Definition at line 61 of file md-abi.hpp.

#define TRACE_ARGS_NUM   6

Definition at line 103 of file md-abi.hpp.

#define WINSAVE_CNT   16 /* number of regs that SPARC saves onto stack */

Definition at line 111 of file md-abi.hpp.