CACAO
Macros
md-abi.hpp File Reference

Go to the source code of this file.

Macros

#define REG_RESULT   0 /* to deliver method results */
 
#define REG_RESULT2   1 /* to deliver long method results */
 
#define REG_PV   12 /* intra-procedure-call scratch register */
 
#define REG_SP   13 /* stack pointer */
 
#define REG_LR   14 /* link register */
 
#define REG_PC   15 /* program counter */
 
#define REG_METHODPTR   11 /* special register to fetch procedure vector */
 
#define REG_ITMP1   10 /* temporary register */
 
#define REG_ITMP2   11 /* temporary register and method pointer */
 
#define REG_ITMP3   9 /* temporary register */
 
#define REG_ITMP1_XPTR   10 /* exception pointer = temporary register 1 */
 
#define REG_ITMP2_XPC   11 /* exception pc = temporary register 2 */
 
#define REG_A0   0 /* define some argument registers */
 
#define REG_A1   1
 
#define REG_A2   2
 
#define REG_A3   3
 
#define REG_SPLIT   16 /* dummy register to mark a split of longs and */
 
#define BITMASK_ARGS   0x0f /* bitmask for LDM/STM to save method arguments */
 
#define BITMASK_RESULT   0x03 /* bitmask for LDM/STM to save method results */
 
#define REG_FRESULT   0 /* to deliver floating point method results */
 
#define REG_FTMP1   6 /* temporary floating point register */
 
#define REG_FTMP2   7 /* temporary floating point register */
 
#define BACKFILL_OFFSET   16
 
#define INT_REG_CNT   16 /* number of integer registers */
 
#define INT_TMP_CNT   0 /* number of integer registers */
 
#define INT_SAV_CNT   5 /* number of int callee saved registers */
 
#define INT_ARG_CNT   4 /* number of int argument registers */
 
#define INT_RES_CNT   7 /* number of reserved integer registers */
 
#define FLT_REG_CNT   8 /* number of float registers */
 
#define FLT_TMP_CNT   6 /* number of flt temp registers */
 
#define FLT_SAV_CNT   0 /* number of flt callee saved registers */
 
#define FLT_ARG_CNT   0 /* number of flt argument registers */
 
#define FLT_RES_CNT   2 /* number of reserved float registers */
 
#define REG_ITMP12_PACKED   PACK_REGS(REG_ITMP2, REG_ITMP1)
 
#define REG_ITMP23_PACKED   PACK_REGS(REG_ITMP3, REG_ITMP2)
 
#define REG_RESULT_PACKED   PACK_REGS(REG_RESULT2, REG_RESULT)
 
#define REG_A0_A1_PACKED   PACK_REGS(REG_A1, REG_A0)
 
#define REG_A2_A3_PACKED   PACK_REGS(REG_A3, REG_A2)
 
#define REG_ITMP12_TYPED(t)   ((IS_2_WORD_TYPE(t)) ? REG_ITMP12_PACKED : REG_ITMP1)
 
#define REG_RESULT_TYPED(t)   ((IS_2_WORD_TYPE(t)) ? REG_RESULT_PACKED : REG_RESULT)
 

Macro Definition Documentation

#define BACKFILL_OFFSET   16

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

#define BITMASK_ARGS   0x0f /* bitmask for LDM/STM to save method arguments */

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

#define BITMASK_RESULT   0x03 /* bitmask for LDM/STM to save method results */

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

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

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

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

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

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

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

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

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

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

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

#define INT_ARG_CNT   4 /* number of int argument registers */

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

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

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

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

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

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

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

#define INT_TMP_CNT   0 /* number of integer registers */

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

#define REG_A0   0 /* define some argument registers */

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

#define REG_A0_A1_PACKED   PACK_REGS(REG_A1, REG_A0)

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

#define REG_A1   1

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

#define REG_A2   2

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

#define REG_A2_A3_PACKED   PACK_REGS(REG_A3, REG_A2)

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

#define REG_A3   3

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

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

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

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

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

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

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

#define REG_ITMP1   10 /* temporary register */

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

#define REG_ITMP12_PACKED   PACK_REGS(REG_ITMP2, REG_ITMP1)

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

#define REG_ITMP12_TYPED (   t)    ((IS_2_WORD_TYPE(t)) ? REG_ITMP12_PACKED : REG_ITMP1)

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

#define REG_ITMP1_XPTR   10 /* exception pointer = temporary register 1 */

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

#define REG_ITMP2   11 /* temporary register and method pointer */

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

#define REG_ITMP23_PACKED   PACK_REGS(REG_ITMP3, REG_ITMP2)

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

#define REG_ITMP2_XPC   11 /* exception pc = temporary register 2 */

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

#define REG_ITMP3   9 /* temporary register */

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

#define REG_LR   14 /* link register */

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

#define REG_METHODPTR   11 /* special register to fetch procedure vector */

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

#define REG_PC   15 /* program counter */

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

#define REG_PV   12 /* intra-procedure-call scratch register */

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

#define REG_RESULT   0 /* to deliver method results */

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

#define REG_RESULT2   1 /* to deliver long method results */

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

#define REG_RESULT_PACKED   PACK_REGS(REG_RESULT2, REG_RESULT)

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

#define REG_RESULT_TYPED (   t)    ((IS_2_WORD_TYPE(t)) ? REG_RESULT_PACKED : REG_RESULT)

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

#define REG_SP   13 /* stack pointer */

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

#define REG_SPLIT   16 /* dummy register to mark a split of longs and */

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