summaryrefslogtreecommitdiff
path: root/gen_x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'gen_x86.c')
-rw-r--r--gen_x86.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gen_x86.c b/gen_x86.c
index 1f87329..2deb864 100644
--- a/gen_x86.c
+++ b/gen_x86.c
@@ -35,6 +35,7 @@
#define OP_MOV_IEA 0xC6
#define OP_SHIFTROT_1 0xD0
#define OP_SHIFTROT_CL 0xD2
+#define OP_LOOP 0xE2
#define OP_CALL 0xE8
#define OP_JMP 0xE9
#define OP_JMP_BYTE 0xEB
@@ -1533,4 +1534,10 @@ uint8_t * cdq(uint8_t * out)
return out;
}
-
+uint8_t * loop(uint8_t * out, uint8_t * dst)
+{
+ ptrdiff_t disp = dst-(out+2);
+ *(out++) = OP_LOOP;
+ *(out++) = disp;
+ return out;
+}