comparison gen_x86.h @ 151:6b593ea0ed90

Implement MULU/MULS and DIVU/DIVS
author Mike Pavone <pavone@retrodev.com>
date Thu, 03 Jan 2013 22:07:40 -0800
parents 5416a5c4628e
children c82f65a87a53
comparison
equal deleted inserted replaced
150:3e68e517cc01 151:6b593ea0ed90
131 uint8_t * sub_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size); 131 uint8_t * sub_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size);
132 uint8_t * sbb_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size); 132 uint8_t * sbb_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size);
133 uint8_t * sbb_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size); 133 uint8_t * sbb_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size);
134 uint8_t * cmp_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size); 134 uint8_t * cmp_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size);
135 uint8_t * cmp_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size); 135 uint8_t * cmp_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size);
136 uint8_t * imul_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size);
137 uint8_t * imul_rrdisp8(uint8_t * out, uint8_t src, uint8_t dst_base, int8_t disp, uint8_t size);
138 uint8_t * imul_rdisp8r(uint8_t * out, uint8_t src_base, int8_t disp, uint8_t dst, uint8_t size);
136 uint8_t * not_r(uint8_t * out, uint8_t dst, uint8_t size); 139 uint8_t * not_r(uint8_t * out, uint8_t dst, uint8_t size);
137 uint8_t * neg_r(uint8_t * out, uint8_t dst, uint8_t size); 140 uint8_t * neg_r(uint8_t * out, uint8_t dst, uint8_t size);
138 uint8_t * not_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); 141 uint8_t * not_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
139 uint8_t * neg_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size); 142 uint8_t * neg_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
143 uint8_t * mul_r(uint8_t * out, uint8_t dst, uint8_t size);
144 uint8_t * imul_r(uint8_t * out, uint8_t dst, uint8_t size);
145 uint8_t * div_r(uint8_t * out, uint8_t dst, uint8_t size);
146 uint8_t * idiv_r(uint8_t * out, uint8_t dst, uint8_t size);
147 uint8_t * mul_rdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
148 uint8_t * imul_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);
140 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);
141 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);
142 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);
143 uint8_t * mov_rrind(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size); 154 uint8_t * mov_rrind(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size);
144 uint8_t * mov_rindr(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);
145 uint8_t * mov_ir(uint8_t * out, int64_t val, uint8_t dst, uint8_t size); 156 uint8_t * mov_ir(uint8_t * out, int64_t val, uint8_t dst, uint8_t size);
146 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size); 157 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size);
147 uint8_t * mov_irind(uint8_t * out, int32_t val, uint8_t dst, uint8_t size); 158 uint8_t * mov_irind(uint8_t * out, int32_t val, uint8_t dst, uint8_t size);
148 uint8_t * movsx_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t src_size, uint8_t size); 159 uint8_t * movsx_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t src_size, uint8_t size);
149 uint8_t * movsx_rdisp8r(uint8_t * out, uint8_t src, int8_t disp, uint8_t dst, uint8_t src_size, uint8_t size); 160 uint8_t * movsx_rdisp8r(uint8_t * out, uint8_t src, int8_t disp, uint8_t dst, uint8_t src_size, uint8_t size);
161 uint8_t * movzx_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t src_size, uint8_t size);
162 uint8_t * movzx_rdisp8r(uint8_t * out, uint8_t src, int8_t disp, uint8_t dst, uint8_t src_size, uint8_t size);
150 uint8_t * pushf(uint8_t * out); 163 uint8_t * pushf(uint8_t * out);
151 uint8_t * popf(uint8_t * out); 164 uint8_t * popf(uint8_t * out);
152 uint8_t * push_r(uint8_t * out, uint8_t reg); 165 uint8_t * push_r(uint8_t * out, uint8_t reg);
153 uint8_t * pop_r(uint8_t * out, uint8_t reg); 166 uint8_t * pop_r(uint8_t * out, uint8_t reg);
154 uint8_t * setcc_r(uint8_t * out, uint8_t cc, uint8_t dst); 167 uint8_t * setcc_r(uint8_t * out, uint8_t cc, uint8_t dst);
174 uint8_t * jmp(uint8_t * out, uint8_t *dest); 187 uint8_t * jmp(uint8_t * out, uint8_t *dest);
175 uint8_t * jmp_r(uint8_t * out, uint8_t dst); 188 uint8_t * jmp_r(uint8_t * out, uint8_t dst);
176 uint8_t * call(uint8_t * out, uint8_t * fun); 189 uint8_t * call(uint8_t * out, uint8_t * fun);
177 uint8_t * call_r(uint8_t * out, uint8_t dst); 190 uint8_t * call_r(uint8_t * out, uint8_t dst);
178 uint8_t * retn(uint8_t * out); 191 uint8_t * retn(uint8_t * out);
192 uint8_t * cdq(uint8_t * out);
179 193
180 #endif //GEN_X86_H_ 194 #endif //GEN_X86_H_
181 195