php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
ir_aarch64.h File Reference

Go to the source code of this file.

Data Structures

struct  _ir_va_list
 
struct  _ir_tmp_reg
 
struct  _ir_target_constraints
 

Macros

#define IR_GP_REGS(_)
 
#define IR_FP_REGS(_)
 
#define IR_GP_REG_ENUM(code, name64, name32)
 
#define IR_FP_REG_ENUM(code, name64, name32, name16, name8)
 
#define IR_REG_GP_FIRST   IR_REG_X0
 
#define IR_REG_FP_FIRST   IR_REG_V0
 
#define IR_REG_GP_LAST   (IR_REG_FP_FIRST - 1)
 
#define IR_REG_FP_LAST   (IR_REG_NUM - 1)
 
#define IR_REG_SCRATCH   (IR_REG_NUM) /* special name for regset */
 
#define IR_REG_ALL   (IR_REG_NUM + 1) /* special name for regset */
 
#define IR_REGSET_64BIT   1
 
#define IR_REG_INT_TMP   IR_REG_X17 /* reserved temporary register used by code-generator */
 
#define IR_REG_STACK_POINTER    IR_REG_X31
 
#define IR_REG_FRAME_POINTER    IR_REG_X29
 
#define IR_REGSET_FIXED
 
#define IR_REGSET_GP    IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_GP_FIRST, IR_REG_GP_LAST), IR_REGSET_FIXED)
 
#define IR_REGSET_FP    IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_FP_FIRST, IR_REG_FP_LAST), IR_REGSET_FIXED)
 
#define IR_REG_IP0   IR_REG_X16
 
#define IR_REG_IP1   IR_REG_X17
 
#define IR_REG_PR   IR_REG_X18
 
#define IR_REG_LR   IR_REG_X30
 
#define IR_REG_ZR   IR_REG_X31
 
#define IR_REG_INT_RET1   IR_REG_X0
 
#define IR_REG_FP_RET1   IR_REG_V0
 
#define IR_REG_INT_ARGS   8
 
#define IR_REG_FP_ARGS   8
 
#define IR_REG_INT_ARG1   IR_REG_X0
 
#define IR_REG_INT_ARG2   IR_REG_X1
 
#define IR_REG_INT_ARG3   IR_REG_X2
 
#define IR_REG_INT_ARG4   IR_REG_X3
 
#define IR_REG_INT_ARG5   IR_REG_X4
 
#define IR_REG_INT_ARG6   IR_REG_X5
 
#define IR_REG_INT_ARG7   IR_REG_X6
 
#define IR_REG_INT_ARG8   IR_REG_X7
 
#define IR_REG_FP_ARG1   IR_REG_V0
 
#define IR_REG_FP_ARG2   IR_REG_V1
 
#define IR_REG_FP_ARG3   IR_REG_V2
 
#define IR_REG_FP_ARG4   IR_REG_V3
 
#define IR_REG_FP_ARG5   IR_REG_V4
 
#define IR_REG_FP_ARG6   IR_REG_V5
 
#define IR_REG_FP_ARG7   IR_REG_V6
 
#define IR_REG_FP_ARG8   IR_REG_V7
 
#define IR_MAX_REG_ARGS   16
 
#define IR_SHADOW_ARGS   0
 
#define IR_REGSET_SCRATCH
 
#define IR_REGSET_PRESERVED
 

Typedefs

typedef struct _ir_va_list ir_va_list
 
typedef struct _ir_tmp_reg ir_tmp_reg
 

Enumerations

enum  _ir_reg { _IR_REG_NONE = -1 , IR_REG_NUM }
 

Macro Definition Documentation

◆ IR_FP_REG_ENUM

#define IR_FP_REG_ENUM ( code,
name64,
name32,
name16,
name8 )
Value:
IR_REG_ ## code,

Definition at line 82 of file ir_aarch64.h.

◆ IR_FP_REGS

#define IR_FP_REGS ( _)

Definition at line 45 of file ir_aarch64.h.

◆ IR_GP_REG_ENUM

#define IR_GP_REG_ENUM ( code,
name64,
name32 )
Value:
IR_REG_ ## code,

Definition at line 79 of file ir_aarch64.h.

◆ IR_GP_REGS

#define IR_GP_REGS ( _)

Definition at line 11 of file ir_aarch64.h.

◆ IR_MAX_REG_ARGS

#define IR_MAX_REG_ARGS   16

Definition at line 149 of file ir_aarch64.h.

◆ IR_REG_ALL

#define IR_REG_ALL   (IR_REG_NUM + 1) /* special name for regset */

Definition at line 97 of file ir_aarch64.h.

◆ IR_REG_FP_ARG1

#define IR_REG_FP_ARG1   IR_REG_V0

Definition at line 141 of file ir_aarch64.h.

◆ IR_REG_FP_ARG2

#define IR_REG_FP_ARG2   IR_REG_V1

Definition at line 142 of file ir_aarch64.h.

◆ IR_REG_FP_ARG3

#define IR_REG_FP_ARG3   IR_REG_V2

Definition at line 143 of file ir_aarch64.h.

◆ IR_REG_FP_ARG4

#define IR_REG_FP_ARG4   IR_REG_V3

Definition at line 144 of file ir_aarch64.h.

◆ IR_REG_FP_ARG5

#define IR_REG_FP_ARG5   IR_REG_V4

Definition at line 145 of file ir_aarch64.h.

◆ IR_REG_FP_ARG6

#define IR_REG_FP_ARG6   IR_REG_V5

Definition at line 146 of file ir_aarch64.h.

◆ IR_REG_FP_ARG7

#define IR_REG_FP_ARG7   IR_REG_V6

Definition at line 147 of file ir_aarch64.h.

◆ IR_REG_FP_ARG8

#define IR_REG_FP_ARG8   IR_REG_V7

Definition at line 148 of file ir_aarch64.h.

◆ IR_REG_FP_ARGS

#define IR_REG_FP_ARGS   8

Definition at line 132 of file ir_aarch64.h.

◆ IR_REG_FP_FIRST

#define IR_REG_FP_FIRST   IR_REG_V0

Definition at line 93 of file ir_aarch64.h.

◆ IR_REG_FP_LAST

#define IR_REG_FP_LAST   (IR_REG_NUM - 1)

Definition at line 95 of file ir_aarch64.h.

◆ IR_REG_FP_RET1

#define IR_REG_FP_RET1   IR_REG_V0

Definition at line 130 of file ir_aarch64.h.

◆ IR_REG_FRAME_POINTER

#define IR_REG_FRAME_POINTER    IR_REG_X29

Definition at line 105 of file ir_aarch64.h.

◆ IR_REG_GP_FIRST

#define IR_REG_GP_FIRST   IR_REG_X0

Definition at line 92 of file ir_aarch64.h.

◆ IR_REG_GP_LAST

#define IR_REG_GP_LAST   (IR_REG_FP_FIRST - 1)

Definition at line 94 of file ir_aarch64.h.

◆ IR_REG_INT_ARG1

#define IR_REG_INT_ARG1   IR_REG_X0

Definition at line 133 of file ir_aarch64.h.

◆ IR_REG_INT_ARG2

#define IR_REG_INT_ARG2   IR_REG_X1

Definition at line 134 of file ir_aarch64.h.

◆ IR_REG_INT_ARG3

#define IR_REG_INT_ARG3   IR_REG_X2

Definition at line 135 of file ir_aarch64.h.

◆ IR_REG_INT_ARG4

#define IR_REG_INT_ARG4   IR_REG_X3

Definition at line 136 of file ir_aarch64.h.

◆ IR_REG_INT_ARG5

#define IR_REG_INT_ARG5   IR_REG_X4

Definition at line 137 of file ir_aarch64.h.

◆ IR_REG_INT_ARG6

#define IR_REG_INT_ARG6   IR_REG_X5

Definition at line 138 of file ir_aarch64.h.

◆ IR_REG_INT_ARG7

#define IR_REG_INT_ARG7   IR_REG_X6

Definition at line 139 of file ir_aarch64.h.

◆ IR_REG_INT_ARG8

#define IR_REG_INT_ARG8   IR_REG_X7

Definition at line 140 of file ir_aarch64.h.

◆ IR_REG_INT_ARGS

#define IR_REG_INT_ARGS   8

Definition at line 131 of file ir_aarch64.h.

◆ IR_REG_INT_RET1

#define IR_REG_INT_RET1   IR_REG_X0

Definition at line 129 of file ir_aarch64.h.

◆ IR_REG_INT_TMP

#define IR_REG_INT_TMP   IR_REG_X17 /* reserved temporary register used by code-generator */

Definition at line 101 of file ir_aarch64.h.

◆ IR_REG_IP0

#define IR_REG_IP0   IR_REG_X16

Definition at line 122 of file ir_aarch64.h.

◆ IR_REG_IP1

#define IR_REG_IP1   IR_REG_X17

Definition at line 123 of file ir_aarch64.h.

◆ IR_REG_LR

#define IR_REG_LR   IR_REG_X30

Definition at line 125 of file ir_aarch64.h.

◆ IR_REG_PR

#define IR_REG_PR   IR_REG_X18

Definition at line 124 of file ir_aarch64.h.

◆ IR_REG_SCRATCH

#define IR_REG_SCRATCH   (IR_REG_NUM) /* special name for regset */

Definition at line 96 of file ir_aarch64.h.

◆ IR_REG_STACK_POINTER

#define IR_REG_STACK_POINTER    IR_REG_X31

Definition at line 103 of file ir_aarch64.h.

◆ IR_REG_ZR

#define IR_REG_ZR   IR_REG_X31

Definition at line 126 of file ir_aarch64.h.

◆ IR_REGSET_64BIT

#define IR_REGSET_64BIT   1

Definition at line 99 of file ir_aarch64.h.

◆ IR_REGSET_FIXED

#define IR_REGSET_FIXED
Value:
(IR_REGSET(IR_REG_INT_TMP) | IR_REGSET_INTERVAL(IR_REG_X29, IR_REG_X31) \
| IR_REGSET(IR_REG_X18)) /* Other platforms reserve x18 register */
#define IR_REG_INT_TMP
Definition ir_aarch64.h:101

Definition at line 112 of file ir_aarch64.h.

◆ IR_REGSET_FP

#define IR_REGSET_FP    IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_FP_FIRST, IR_REG_FP_LAST), IR_REGSET_FIXED)

Definition at line 119 of file ir_aarch64.h.

◆ IR_REGSET_GP

#define IR_REGSET_GP    IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_GP_FIRST, IR_REG_GP_LAST), IR_REGSET_FIXED)

Definition at line 117 of file ir_aarch64.h.

◆ IR_REGSET_PRESERVED

#define IR_REGSET_PRESERVED
Value:
(IR_REGSET_INTERVAL(IR_REG_X19, IR_REG_X30) \
| IR_REGSET_INTERVAL(IR_REG_V8, IR_REG_V15))

Definition at line 157 of file ir_aarch64.h.

◆ IR_REGSET_SCRATCH

#define IR_REGSET_SCRATCH
Value:
(IR_REGSET_INTERVAL(IR_REG_X0, IR_REG_X18) \
| IR_REGSET_INTERVAL(IR_REG_V0, IR_REG_V7) \
| IR_REGSET_INTERVAL(IR_REG_V16, IR_REG_V31))

Definition at line 152 of file ir_aarch64.h.

◆ IR_SHADOW_ARGS

#define IR_SHADOW_ARGS   0

Definition at line 150 of file ir_aarch64.h.

Typedef Documentation

◆ ir_tmp_reg

typedef struct _ir_tmp_reg ir_tmp_reg

◆ ir_va_list

typedef struct _ir_va_list ir_va_list

Enumeration Type Documentation

◆ _ir_reg

enum _ir_reg
Enumerator
_IR_REG_NONE 
IR_REG_NUM 

Definition at line 85 of file ir_aarch64.h.