Mercurial > repos > blastem
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); |