#ifndef _CODEGEN_BACKEND_ARM_DEFS_H_ #define _CODEGEN_BACKEND_ARM_DEFS_H_ #define REG_R0 0 #define REG_R1 1 #define REG_R2 2 #define REG_R3 3 #define REG_R4 4 #define REG_R5 5 #define REG_R6 6 #define REG_R7 7 #define REG_R8 8 #define REG_R9 9 #define REG_R10 10 #define REG_R11 11 #define REG_R12 12 #define REG_HOST_SP 13 #define REG_LR 14 #define REG_PC 15 #define REG_ARG0 REG_R0 #define REG_ARG1 REG_R1 #define REG_ARG2 REG_R2 #define REG_ARG3 REG_R3 #define REG_CPUSTATE REG_R10 #define REG_TEMP REG_R3 #define REG_TEMP2 REG_R2 #define REG_D0 0 #define REG_D1 1 #define REG_D2 2 #define REG_D3 3 #define REG_D4 4 #define REG_D5 5 #define REG_D6 6 #define REG_D7 7 #define REG_D8 8 #define REG_D9 9 #define REG_D10 10 #define REG_D11 11 #define REG_D12 12 #define REG_D13 13 #define REG_D14 14 #define REG_D15 15 #define REG_D_TEMP REG_D0 #define REG_Q_TEMP REG_D0 #define REG_Q_TEMP_2 REG_D2 #define REG_MASK_R0 (1 << REG_R0) #define REG_MASK_R1 (1 << REG_R1) #define REG_MASK_R2 (1 << REG_R2) #define REG_MASK_R3 (1 << REG_R3) #define REG_MASK_R4 (1 << REG_R4) #define REG_MASK_R5 (1 << REG_R5) #define REG_MASK_R6 (1 << REG_R6) #define REG_MASK_R7 (1 << REG_R7) #define REG_MASK_R8 (1 << REG_R8) #define REG_MASK_R9 (1 << REG_R9) #define REG_MASK_R10 (1 << REG_R10) #define REG_MASK_R11 (1 << REG_R11) #define REG_MASK_R12 (1 << REG_R12) #define REG_MASK_SP (1 << REG_HOST_SP) #define REG_MASK_LR (1 << REG_LR) #define REG_MASK_PC (1 << REG_PC) #define REG_MASK_LOCAL \ (REG_MASK_R4 | REG_MASK_R5 | REG_MASK_R6 | REG_MASK_R7 | REG_MASK_R8 | REG_MASK_R9 | REG_MASK_R10 | REG_MASK_R11) #define CODEGEN_HOST_REGS 7 #define CODEGEN_HOST_FP_REGS 8 extern void *codegen_mem_load_byte; extern void *codegen_mem_load_word; extern void *codegen_mem_load_long; extern void *codegen_mem_load_quad; extern void *codegen_mem_load_single; extern void *codegen_mem_load_double; extern void *codegen_mem_store_byte; extern void *codegen_mem_store_word; extern void *codegen_mem_store_long; extern void *codegen_mem_store_quad; extern void *codegen_mem_store_single; extern void *codegen_mem_store_double; extern void *codegen_fp_round; extern void *codegen_gpf_rout; extern void *codegen_exit_rout; #endif /* _CODEGEN_BACKEND_ARM_DEFS_H_ */