comparison gen_arm.h @ 563:c8fefa140c80

Moved some generic stuff from backend.h gen_arm.h and gen_arm.c into gen.h and gen.c. Added a couple fields to cpu_options so that gen_mem_fun can be made guest CPU generic
author Michael Pavone <pavone@retrodev.com>
date Mon, 24 Feb 2014 09:55:24 -0800
parents 1af6c1052993
children bff307e03a94
comparison
equal deleted inserted replaced
558:dc9f178085a0 563:c8fefa140c80
5 */ 5 */
6 #ifndef GEN_ARM_H_ 6 #ifndef GEN_ARM_H_
7 #define GEN_ARM_H_ 7 #define GEN_ARM_H_
8 8
9 #include <stdint.h> 9 #include <stdint.h>
10 10 #include "gen.h"
11 typedef struct {
12 uint32_t *cur;
13 uint32_t *last;
14 } code_info;
15 11
16 #define SET_COND 0x100000u 12 #define SET_COND 0x100000u
17 #define NO_COND 0u 13 #define NO_COND 0u
18 14
19 #define CC_FIELD_SHIFT 28 15 #define CC_FIELD_SHIFT 28
70 #define R11 0x800 66 #define R11 0x800
71 #define R12 0x1000 67 #define R12 0x1000
72 #define SP 0x2000 68 #define SP 0x2000
73 #define LR 0x4000 69 #define LR 0x4000
74 #define PC 0x8000 70 #define PC 0x8000
75
76 void init_code_info(code_info *code);
77 71
78 uint32_t and(code_info *code, uint32_t dst, uint32_t src1, uint32_t src2, uint32_t set_cond); 72 uint32_t and(code_info *code, uint32_t dst, uint32_t src1, uint32_t src2, uint32_t set_cond);
79 uint32_t andi(code_info *code, uint32_t dst, uint32_t src1, uint32_t immed, uint32_t set_cond); 73 uint32_t andi(code_info *code, uint32_t dst, uint32_t src1, uint32_t immed, uint32_t set_cond);
80 uint32_t and_cc(code_info *code, uint32_t dst, uint32_t src1, uint32_t src2, uint32_t cc, uint32_t set_cond); 74 uint32_t and_cc(code_info *code, uint32_t dst, uint32_t src1, uint32_t src2, uint32_t cc, uint32_t set_cond);
81 uint32_t andi_cc(code_info *code, uint32_t dst, uint32_t src1, uint32_t immed, uint32_t cc, uint32_t set_cond); 75 uint32_t andi_cc(code_info *code, uint32_t dst, uint32_t src1, uint32_t immed, uint32_t cc, uint32_t set_cond);