CACAO
Macros
md-abi.hpp File Reference

Go to the source code of this file.

Macros

#define REG_ZERO   0 /* almost always zero (in address caluclation) */
 
#define REG_TOC   2 /* TOC (see function descriptors ELF ABI) */
 
#define REG_RESULT   3 /* to deliver method results */
 
#define REG_PV   14 /* procedure vector, must be provided by caller */
 
#define REG_METHODPTR   12 /* pointer to the place from where the procedure */
 
#define REG_ITMP1   11 /* temporary register */
 
#define REG_ITMP2   12 /* temporary register and method pointer */
 
#define REG_ITMP3   16 /* temporary register */
 
#define REG_ITMP1_XPTR   11 /* exception pointer = temporary register 1 */
 
#define REG_ITMP2_XPC   12 /* exception pc = temporary register 2 */
 
#define REG_SP   1 /* stack pointer */
 
#define REG_ZERO   0 /* almost always zero: only in address calc. */
 
#define REG_A0   3 /* define some argument registers */
 
#define REG_A1   4
 
#define REG_A2   5
 
#define REG_A3   6
 
#define REG_FRESULT   1 /* to deliver floating point method results */
 
#define REG_FTMP1   16 /* temporary floating point register */
 
#define REG_FTMP2   17 /* temporary floating point register */
 
#define REG_FTMP3   0 /* temporary floating point register */
 
#define REG_IFTMP   16 /* temporary integer and floating point register */
 
#define REG_FA0   1 /* define some argument registers */
 
#define REG_FA1   2
 
#define INT_REG_CNT   32 /* number of integer registers */
 
#define INT_SAV_CNT   9 /* number of int callee saved registers */
 
#define INT_ARG_CNT   8 /* number of int argument registers */
 
#define INT_TMP_CNT   7 /* number of integer temporary registers */
 
#define INT_RES_CNT   8 /* number of integer reserved registers */
 
#define FLT_REG_CNT   32 /* number of float registers */
 
#define FLT_SAV_CNT   16 /* number of float callee saved registers */
 
#define FLT_ARG_CNT   13 /* number of float argument registers */
 
#define FLT_TMP_CNT   0 /* number of float temporary registers */
 
#define FLT_RES_CNT   3 /* number of float reserved registers */
 
#define LA_SIZE   48 /* linkage area size */
 
#define LA_SIZE_ALIGNED   16 /* linkage area size aligned to 16-byte */
 
#define LA_SIZE_IN_POINTERS   (LA_SIZE / SIZEOF_VOID_P)
 
#define LA_LR_OFFSET   16 /* link register offset in linkage area */
 
#define PA_SIZE   (PA_SIZE_IN_POINTERS*8)
 
#define PA_SIZE_IN_POINTERS   8 /* linux/ppc64 has a minimun parameter save area size, XXX:darwin? */
 

Macro Definition Documentation

#define FLT_ARG_CNT   13 /* number of float argument registers */

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

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

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

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

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

#define FLT_SAV_CNT   16 /* number of float callee saved registers */

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

#define FLT_TMP_CNT   0 /* number of float temporary registers */

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

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

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

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

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

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

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

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

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

#define INT_TMP_CNT   7 /* number of integer temporary registers */

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

#define LA_LR_OFFSET   16 /* link register offset in linkage area */

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

#define LA_SIZE   48 /* linkage area size */

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

#define LA_SIZE_ALIGNED   16 /* linkage area size aligned to 16-byte */

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

#define LA_SIZE_IN_POINTERS   (LA_SIZE / SIZEOF_VOID_P)

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

#define PA_SIZE   (PA_SIZE_IN_POINTERS*8)

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

#define PA_SIZE_IN_POINTERS   8 /* linux/ppc64 has a minimun parameter save area size, XXX:darwin? */

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

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

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

#define REG_A1   4

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

#define REG_A2   5

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

#define REG_A3   6

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

#define REG_FA0   1 /* define some argument registers */

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

#define REG_FA1   2

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

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

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

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

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

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

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

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

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

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

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

#define REG_ITMP1   11 /* temporary register */

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

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

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

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

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

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

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

#define REG_ITMP3   16 /* temporary register */

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

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

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

#define REG_PV   14 /* procedure vector, must be provided by caller */

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

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

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

#define REG_SP   1 /* stack pointer */

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

#define REG_TOC   2 /* TOC (see function descriptors ELF ABI) */

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

#define REG_ZERO   0 /* almost always zero (in address caluclation) */

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

#define REG_ZERO   0 /* almost always zero: only in address calc. */

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