summaryrefslogtreecommitdiff
path: root/gen_x86.h
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2012-12-15 23:01:32 -0800
committerMike Pavone <pavone@retrodev.com>2012-12-15 23:01:32 -0800
commite66a7f1c8e921ea6958bee6685a81b4b319f2dbf (patch)
tree5e4bbe2bd107beeef9ebe8f20f8c0d4925ca1eb6 /gen_x86.h
parentd6526708390114de0e03206170174fbe9a102383 (diff)
Implement shift instructions (asl, lsl, asr, lsr). Add flags to register printout. Fix minor bug in shift/rotate instruction decoding.
Diffstat (limited to 'gen_x86.h')
-rw-r--r--gen_x86.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/gen_x86.h b/gen_x86.h
index 471a22b..b48f8ac 100644
--- a/gen_x86.h
+++ b/gen_x86.h
@@ -79,6 +79,20 @@ uint8_t * rcr_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t disp,
uint8_t * shl_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t disp, uint8_t size);
uint8_t * shr_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t disp, uint8_t size);
uint8_t * sar_irdisp8(uint8_t * out, uint8_t val, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * rol_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * ror_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * rcl_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * rcr_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * shl_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * shr_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * sar_clr(uint8_t * out, uint8_t dst, uint8_t size);
+uint8_t * rol_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * ror_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * rcl_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * rcr_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * shl_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * shr_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
+uint8_t * sar_clrdisp8(uint8_t * out, uint8_t dst_base, int8_t disp, uint8_t size);
uint8_t * add_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size);
uint8_t * or_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size);
uint8_t * xor_rr(uint8_t * out, uint8_t src, uint8_t dst, uint8_t size);