From 2dea8f4d6b6df76ecba33051a417cb05e4cb6a02 Mon Sep 17 00:00:00 2001
From: Marcus Comstedt <marcus@mc.pp.se>
Date: Thu, 16 Aug 2001 20:49:47 +0200
Subject: [PATCH] Changes to enable INS_F_JUMP to just custom encoding of
 offsets.

Rev: src/code/ia32.c:1.16
Rev: src/code/ia32.h:1.13
Rev: src/peep.c:1.69
---
 src/code/ia32.c | 7 ++++++-
 src/code/ia32.h | 5 +++--
 src/peep.c      | 7 +++----
 3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/code/ia32.c b/src/code/ia32.c
index 3f55b76e0e..dc2b4ffaa4 100644
--- a/src/code/ia32.c
+++ b/src/code/ia32.c
@@ -1,5 +1,5 @@
 /*
- * $Id: ia32.c,v 1.15 2001/08/13 23:39:10 mast Exp $
+ * $Id: ia32.c,v 1.16 2001/08/16 18:49:46 marcus Exp $
  *
  * Machine code generator for IA32.
  *
@@ -291,6 +291,11 @@ void update_f_jump(INT32 offset, INT32 to_offset)
   upd_pointer(offset, to_offset - offset - 4);
 }
 
+INT32 read_f_jump(INT32 offset)
+{
+  return read_pointer(offset) + offset + 4;
+}
+
 void ia32_push_int(INT32 x)
 {
   struct svalue tmp;
diff --git a/src/code/ia32.h b/src/code/ia32.h
index e4fe227635..e03b7761e0 100644
--- a/src/code/ia32.h
+++ b/src/code/ia32.h
@@ -1,5 +1,5 @@
 /*
- * $Id: ia32.h,v 1.12 2001/08/13 23:39:10 mast Exp $
+ * $Id: ia32.h,v 1.13 2001/08/16 18:49:47 marcus Exp $
  */
 
 #define PIKE_OPCODE_T	unsigned INT8
@@ -118,10 +118,11 @@ void ia32_decode_program(struct program *p);
 
 INT32 ins_f_jump(unsigned int b);
 void update_f_jump(INT32 offset, INT32 to_offset);
+INT32 read_f_jump(INT32 offset);
 
 #define INS_F_JUMP ins_f_jump
 #define UPDATE_F_JUMP update_f_jump
-
+#define READ_F_JUMP read_f_jump
 
 void ia32_flush_code_generator(void);
 #define FLUSH_CODE_GENERATOR_STATE ia32_flush_code_generator
diff --git a/src/peep.c b/src/peep.c
index 939fe45a42..0d510cf949 100644
--- a/src/peep.c
+++ b/src/peep.c
@@ -19,7 +19,7 @@
 #include "interpret.h"
 #include "pikecode.h"
 
-RCSID("$Id: peep.c,v 1.68 2001/08/15 16:40:47 marcus Exp $");
+RCSID("$Id: peep.c,v 1.69 2001/08/16 18:49:46 marcus Exp $");
 
 static void asm_opt(void);
 
@@ -138,7 +138,6 @@ void update_arg(int instr,INT32 arg)
 #define FLUSH_CODE_GENERATOR_STATE()
 #endif
 
-
 /**** Bytecode Generator *****/
 
 void assemble(void)
@@ -328,7 +327,7 @@ void assemble(void)
 	tmp=INS_F_JUMP(c->opcode);
 	if(tmp != -1)
 	{
-	  upd_pointer(tmp, jumps[c->arg]);
+	  UPDATE_F_JUMP(tmp, jumps[c->arg]);
 	  jumps[c->arg]=~tmp;
 	  break;
 	}
@@ -407,7 +406,7 @@ void assemble(void)
 #ifdef INS_F_JUMP
       if(jumps[e] < 0)
       {
-	tmp = read_pointer(~jumps[e]);
+	tmp = READ_F_JUMP(~jumps[e]);
 	UPDATE_F_JUMP(~jumps[e], tmp2);
 	jumps[e]=tmp;
 	continue;
-- 
GitLab