Mercurial > repos > blastem
comparison gen_x86.h @ 343:467bfa17004a
Mostly working runtime generation of memory map read/write functions
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 18 May 2013 11:44:42 -0700 |
parents | 2586d49ddd46 |
children | d0cacb4ade0b |
comparison
equal
deleted
inserted
replaced
342:13f994c88c34 | 343:467bfa17004a |
---|---|
55 enum { | 55 enum { |
56 MODE_REG_INDIRECT = 0, | 56 MODE_REG_INDIRECT = 0, |
57 MODE_REG_INDEXED = 4, | 57 MODE_REG_INDEXED = 4, |
58 MODE_REG_DISPLACE8 = 0x40, | 58 MODE_REG_DISPLACE8 = 0x40, |
59 MODE_REG_INDEXED_DISPLACE8 = 0x44, | 59 MODE_REG_INDEXED_DISPLACE8 = 0x44, |
60 MODE_REG_DIPSLACE32 = 0x80, | 60 MODE_REG_DISPLACE32 = 0x80, |
61 MODE_REG_INDEXED_DIPSLACE32 = 0x84, | 61 MODE_REG_INDEXED_DIPSLACE32 = 0x84, |
62 MODE_REG_DIRECT = 0xC0, | 62 MODE_REG_DIRECT = 0xC0, |
63 //"phony" mode | 63 //"phony" mode |
64 MODE_IMMED = 0xFF | 64 MODE_IMMED = 0xFF |
65 } x86_modes; | 65 } x86_modes; |
149 uint8_t * div_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); | 149 uint8_t * div_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); |
150 uint8_t * idiv_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); | 150 uint8_t * idiv_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); |
151 uint8_t * mov_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); | 151 uint8_t * mov_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); |
152 uint8_t * mov_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size); | 152 uint8_t * mov_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size); |
153 uint8_t * mov_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size); | 153 uint8_t * mov_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size); |
154 uint8_t * mov_rrdisp32(uint8_t * out, uint8_t src, uint8_t dst_base, int32_t disp, uint8_t size); | |
155 uint8_t * mov_rdisp32r(uint8_t * out, uint8_t src_base, int32_t disp, uint8_t dst, uint8_t size); | |
156 uint8_t * mov_rrindex(uint8_t * out, uint8_t src, uint8_t dst_base, uint8_t dst_index, uint8_t scale, uint8_t size); | |
157 uint8_t * mov_rindexr(uint8_t * out, uint8_t src_base, uint8_t src_index, uint8_t scale, uint8_t dst, uint8_t size); | |
154 uint8_t * mov_rrind(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); | 158 uint8_t * mov_rrind(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); |
155 uint8_t * mov_rindr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); | 159 uint8_t * mov_rindr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); |
156 uint8_t * mov_ir(uint8_t * out, int64_t val, uint8_t dst, uint8_t size); | 160 uint8_t * mov_ir(uint8_t * out, int64_t val, uint8_t dst, uint8_t size); |
157 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size); | 161 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size); |
158 uint8_t * mov_irind(uint8_t * out, int32_t val, uint8_t dst, uint8_t size); | 162 uint8_t * mov_irind(uint8_t * out, int32_t val, uint8_t dst, uint8_t size); |
168 uint8_t * setcc_r(uint8_t * out, uint8_t cc, uint8_t dst); | 172 uint8_t * setcc_r(uint8_t * out, uint8_t cc, uint8_t dst); |
169 uint8_t * setcc_rind(uint8_t * out, uint8_t cc, uint8_t dst); | 173 uint8_t * setcc_rind(uint8_t * out, uint8_t cc, uint8_t dst); |
170 uint8_t * setcc_rdisp8(uint8_t * out, uint8_t cc, uint8_t dst, int8_t disp); | 174 uint8_t * setcc_rdisp8(uint8_t * out, uint8_t cc, uint8_t dst, int8_t disp); |
171 uint8_t * bt_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); | 175 uint8_t * bt_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); |
172 uint8_t * bt_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t dst_disp, uint8_t size); | 176 uint8_t * bt_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t dst_disp, uint8_t size); |
177 uint8_t * bt_rrdisp32(uint8_t * out, uint8_t src, uint8_t dst_base, int32_t dst_disp, uint8_t size); | |
173 uint8_t * bt_ir(uint8_t * out, uint8_t val, uint8_t dst, uint8_t size); | 178 uint8_t * bt_ir(uint8_t * out, uint8_t val, uint8_t dst, uint8_t size); |
174 uint8_t * bt_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t dst_disp, uint8_t size); | 179 uint8_t * bt_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t dst_disp, uint8_t size); |
175 uint8_t * bts_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); | 180 uint8_t * bts_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); |
176 uint8_t * bts_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t dst_disp, uint8_t size); | 181 uint8_t * bts_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t dst_disp, uint8_t size); |
177 uint8_t * bts_ir(uint8_t * out, uint8_t val, uint8_t dst, uint8_t size); | 182 uint8_t * bts_ir(uint8_t * out, uint8_t val, uint8_t dst, uint8_t size); |