[kaffe] jit3 style jit-{i386,m68k}.def

Kiyo Inaba inaba at src.ricoh.co.jp
Tue Jul 13 04:12:32 PDT 2004


I said
>By the way, aren't there anyone who volunteer to modify jit-xxx.def
>to be compatible with jit3-xxx.def? Originally these two files are
>very close, but when we remove some warning these two files (or
>precisely speaking pairs of these files) becomes much different.
>This make me so hard to check the behavior of jit3-m68k.def against
>jit-m68k.def...
>
># Or shall I do that? :-)

I made patch for i386 and m68k.
This patch works fine for i686-linux (--with-engine=jit).

It makes me much easier to tackle the question why jit3 for m68k
does not work properly, in the (near) future.

Currently, there are three more CPUs (alpha, arm, sparc) which
support jit but not converted to this new style, and I plan to make
mod for them later.

Kiyo

diff -Naur kaffe-snap-040708.orig/ChangeLog kaffe-snap-040708/ChangeLog
--- kaffe-snap-040708.orig/ChangeLog	Wed Jul  7 21:58:43 2004
+++ kaffe-snap-040708/ChangeLog	Tue Jul 13 13:20:55 2004
@@ -1,3 +1,12 @@
+2004-07-13  Kiyo Inaba <inaba at src.ricoh.co.jp>
+
+	* kaffe/kaffevm/jit/funcs.c
+	* config/i386/jit-i386.def:
+	* config/i386/jit3-i386.def:
+	* config/m68k/jit-i386.def:
+	* config/m68k/jit3-i386.def:
+	Fix 'use of compound as lvalue is deprecated' warnings for jit.
+
 2004-07-07  Jim Huang <jserv at kaffe.org>
 
  	* libraries/javalib/java/awt/Graphics.java:
diff -Naur kaffe-snap-040708.orig/config/i386/jit-i386.def kaffe-snap-040708/config/i386/jit-i386.def
--- kaffe-snap-040708.orig/config/i386/jit-i386.def	Tue Mar 11 17:00:16 2003
+++ kaffe-snap-040708/config/i386/jit-i386.def	Tue Jul 13 19:16:32 2004
@@ -19,15 +19,15 @@
 #define	debug(x)
 #endif
 
-#define	do_move_int(t, f) {					\
-		if ((t) != (f)) {				\
-			OUT = 0x89;				\
-			OUT = 0xC0|(f<<3)|t;			\
-			debug(("movl %s,%s\n", regname(f), regname(t)));\
-		}						\
+#define	do_move_int(t, f)					\
+	if ((t) != (f)) {					\
+		OUT(0x89);					\
+		OUT(0xC0|(f<<3)|t);				\
+		debug(("movl %s,%s\n", regname(f), regname(t)));\
 	}
 
-#define	check_reg_01() { 					\
+#define	check_reg_01()						\
+	{							\
 		int _r_ = rreg_int(1);				\
 		int _w_ = wreg_int(0);				\
 		assert(_r_ == _w_);				\
@@ -79,30 +79,30 @@
 	int *__counter = (int *)&(COUNTER);			\
 	if (SAVE_EDX_EAX) {					\
 		/* Save EAX and EDX */				\
-		OUT = 0x50|REG_edx;				\
-		OUT = 0x50|REG_eax;				\
+		OUT(0x50|REG_edx);				\
+		OUT(0x50|REG_eax);				\
 		debug(("pushl edx\n"));				\
 		debug(("pushl eax\n"));				\
 	}							\
 								\
-	OUT = 0x0F;						\
-	OUT = 0x31;						\
+	OUT(0x0F);						\
+	OUT(0x31);						\
 	debug(("rdtsc\n"));					\
 								\
-	OUT = 0x29;						\
-	OUT = 0x05;						\
-	LOUT = (int)(__counter);				\
+	OUT(0x29);						\
+	OUT(0x05);						\
+	LOUT((int)(__counter));					\
 	debug(("sub eax, 0x%x\n", (int)(__counter)));		\
 								\
-	OUT = 0x19;						\
-	OUT = 0x15;						\
-	LOUT = (int)(__counter + 1);				\
+	OUT(0x19);						\
+	OUT(0x15);						\
+	LOUT((int)(__counter + 1));				\
 	debug(("sbb edx, 0x%x\n", (int)(__counter + 1)));	\
 								\
 	if (SAVE_EDX_EAX) {					\
 		/* Restore EAX and EDX */			\
-		OUT = 0x58|REG_eax;				\
-		OUT = 0x58|REG_edx;				\
+		OUT(0x58|REG_eax);				\
+		OUT(0x58|REG_edx);				\
 		debug(("popl eax\n"));				\
 		debug(("popl edx\n"));				\
 	}							\
@@ -115,30 +115,30 @@
 	int *__counter = (int *)&(COUNTER);			\
 	if (SAVE_EDX_EAX) {					\
 		/* Save EAX and EDX */				\
-		OUT = 0x50|REG_edx;				\
-		OUT = 0x50|REG_eax;				\
+		OUT(0x50|REG_edx);				\
+		OUT(0x50|REG_eax);				\
 		debug(("pushl edx\n"));				\
 		debug(("pushl eax\n"));				\
 	}							\
 								\
-	OUT = 0x0F;						\
-	OUT = 0x31;						\
+	OUT(0x0F);						\
+	OUT(0x31);						\
 	debug(("rdtsc\n"));					\
 								\
-	OUT = 0x01;						\
-	OUT = 0x05;						\
-	LOUT = (int)(__counter);				\
+	OUT(0x01);						\
+	OUT(0x05);						\
+	LOUT((int)(__counter));					\
 	debug(("add eax, 0x%x\n", (int)(__counter)));		\
 								\
-	OUT = 0x11;						\
-	OUT = 0x15;						\
-	LOUT = (int)(__counter + 1);				\
+	OUT(0x11);						\
+	OUT(0x15);						\
+	LOUT((int)(__counter + 1));				\
 	debug(("adc edx, 0x%x\n", (int)(__counter + 1)));	\
 								\
 	if (SAVE_EDX_EAX) {					\
 		/* Restore EAX and EDX */			\
-		OUT = 0x58|REG_eax;				\
-		OUT = 0x58|REG_edx;				\
+		OUT(0x58|REG_eax);				\
+		OUT(0x58|REG_edx);				\
 		debug(("popl eax\n"));				\
 		debug(("popl edx\n"));				\
 	}							\
@@ -155,7 +155,7 @@
 
 define_insn(nop, nop)
 {
-	OUT = 0x90;
+	OUT(0x90);
 	debug(("nop\n"));
 }
 
@@ -165,20 +165,20 @@
 {
 	label* l;
 
-	OUT = 0x50|REG_ebp;
-	OUT = 0x89;
-	OUT = 0xC0|(REG_esp<<3)|REG_ebp;
-	OUT = 0x81;
-	OUT = 0xE8|REG_esp;
+	OUT(0x50|REG_ebp);
+	OUT(0x89);
+	OUT(0xC0|(REG_esp<<3)|REG_ebp);
+	OUT(0x81);
+	OUT(0xE8|REG_esp);
 
 	l = (label*)const_int(1);
 	l->type = Lframe|Labsolute|Lgeneral;
 	l->at = (uintp)CODEPC;
-	LOUT = 0;
+	LOUT(0);
 
-	OUT = 0x50|REG_edi;
-	OUT = 0x50|REG_esi;
-	OUT = 0x50|REG_ebx;
+	OUT(0x50|REG_edi);
+	OUT(0x50|REG_esi);
+	OUT(0x50|REG_ebx);
 
 	debug(("pushl ebp\n"));
 	debug(("movl esp,ebp\n"));
@@ -192,131 +192,137 @@
 	{
 		profiler_start(globalMethod->totalClicks, 0);
 
-		OUT = 0xFF;
-		OUT = 0x05;
-		LOUT = (int)&(globalMethod->callsCount);
+		OUT(0xFF);
+		OUT(0x05);
+		LOUT((int)&(globalMethod->callsCount));
 		debug(("incl 0x%x\n",(int)&(globalMethod->callsCount)));
 	}
 #endif
 
+#if 0
 	/* If this method uses IEEE, set up the mode here */
-	if (used_ieee_division == true && 0) {
-		OUT = 0x68;
-		LOUT = 0;
-		OUT = 0x68;
-		LOUT = 0;
+	if (used_ieee_division == true) {
+		OUT(0x68);
+		LOUT(0);
+		OUT(0x68);
+		LOUT(0);
 		debug(("pushl #0\n"));
 		debug(("pushl #0\n"));
 
-		OUT = 0xD9;
-		OUT = 0x3C;
-		OUT = 0x24;
+		OUT(0xD9);
+		OUT(0x3C);
+		OUT(0x24);
 		debug(("fnstcw (esp)\n"));
 
-		OUT = 0x8B;
-		OUT = (REG_ebx<<3)|0x04;
-		OUT = 0x24;
-		debug(("movl (esp),ebx\n"));
-
-		OUT = 0xB8|REG_ebx;
-		LOUT = IEEE_MODE;
-		debug(("movl %d,ebx\n", IEEE_MODE));
-
-		OUT = 0x89;
-		OUT = (REG_ebx<<3)|0x44;
-		OUT = 0x24;
-		OUT = 0x04;
-		debug(("movl ebx,4(esp)\n"));
-
-		OUT = 0xD9;
-		OUT = 0x6C;
-		OUT = 0x24;
-		OUT = 0x04;
+		OUT(0x8B);
+		OUT((REG_eax<<3)|0x04);
+		OUT(0x24);
+		debug(("movl (esp),eax\n"));
+
+		OUT(0xB8|REG_eax);
+		LOUT(IEEE_MODE);
+		debug(("movl %d,eax\n", IEEE_MODE));
+
+		OUT(0x89);
+		OUT((REG_eax<<3)|0x44);
+		OUT(0x24);
+		OUT(0x04);
+		debug(("movl eax,4(esp)\n"));
+
+		OUT(0xD9);
+		OUT(0x6C);
+		OUT(0x24);
+		OUT(0x04);
 		debug(("fldcw 4(esp)\n"));
 	}
+#endif
 }
 
 define_insn(exception_prologue, eprologue_xLx)
 {
 	label* l;
 
-	OUT = 0x89;
-	OUT = 0xC0|(REG_ebp<<3)|REG_ebx;
+	OUT(0x89);
+	OUT(0xC0|(REG_ebp<<3)|REG_ecx);
 
-	OUT = 0x81;
-	OUT = 0xE8|REG_ebx;
+	OUT(0x81);
+	OUT(0xE8|REG_ecx);
 
 	/* Remember where the framesize is to go */
 	l = (label*)const_int(1);
 	l->type = Lframe|Labsolute|Lgeneral;
 	l->at = (uintp)CODEPC;
-	LOUT = 0;
+	LOUT(0);
 
-	OUT = 0x81;
-	OUT = 0xE8|REG_ebx;
-	LOUT = 3*SLOTSIZE;
-
-	OUT = 0x89;
-	OUT = 0xC0|(REG_ebx<<3)|REG_esp;
-
-	debug(("movl ebp,ebx\n"));
-	debug(("subl #?,ebx\n"));
-	debug(("subl #3*SLOTSIZE,ebx\n"));
-	debug(("movl ebx,esp\n"));
-
-	if (used_ieee_division == true && 0) {
-		OUT = 0x81;
-		OUT = 0xE8|REG_esp;
-		LOUT = SLOTSIZE;
+	OUT(0x81);
+	OUT(0xE8|REG_ecx);
+	LOUT(3*SLOTSIZE);
+
+	OUT(0x89);
+	OUT(0xC0|(REG_ecx<<3)|REG_esp);
+
+	debug(("movl ebp,ecx\n"));
+	debug(("subl #?,ecx\n"));
+	debug(("subl #3*SLOTSIZE,ecx\n"));
+	debug(("movl ecx,esp\n"));
+
+#if 0
+	if (used_ieee_division == true) {
+		OUT(0x81);
+		OUT(0xE8|REG_esp);
+		LOUT(SLOTSIZE);
 
 		debug(("subl #%d,esp\n", SLOTSIZE));
 
-		OUT = 0x8B;
-		OUT = (REG_ebx<<3)|0x04;
-		OUT = 0x24;
-		debug(("movl (esp),ebx\n"));
-
-		OUT = 0xB8|REG_ebx;
-		LOUT = IEEE_MODE;
-		debug(("movl %d,ebx\n", IEEE_MODE));
-
-		OUT = 0x89;
-		OUT = (REG_ebx<<3)|0x44;
-		OUT = 0x24;
-		OUT = 0x04;
-		debug(("movl ebx,4(esp)\n"));
-
-		OUT = 0xD9;
-		OUT = 0x6C;
-		OUT = 0x24;
-		OUT = 0x04;
+		OUT(0x8B);
+		OUT((REG_eax<<3)|0x04);
+		OUT(0x24);
+		debug(("movl (esp),eax\n"));
+
+		OUT(0xB8|REG_eax);
+		LOUT(IEEE_MODE);
+		debug(("movl %d,eax\n", IEEE_MODE));
+
+		OUT(0x89);
+		OUT((REG_eax<<3)|0x44);
+		OUT(0x24);
+		OUT(0x04);
+		debug(("movl eax,4(esp)\n"));
+
+		OUT(0xD9);
+		OUT(0x6C);
+		OUT(0x24);
+		OUT(0x04);
 		debug(("fldcw 4(esp)\n"));
 	}
+#endif
 }
 
 define_insn(epilogue, epilogue_xxx)
 {
 	setEpilogueLabel((uintp)CODEPC);
-	
+
+#if 0
 	/* If this method uses IEEE, restore it */
-	if (used_ieee_division == true && 0) {
+	if (used_ieee_division == true) {
 #if 0
-		OUT = 0xD9;
-		OUT = 0x2C;
-		OUT = 0x24;
+		OUT(0xD9);
+		OUT(0x2C);
+		OUT(0x24);
 		debug(("fldcw (esp)\n"));
 #endif
-		OUT = 0xD9;
-		OUT = 0x6C;
-		OUT = 0x24;
-		OUT = 0;
+		OUT(0xD9);
+		OUT(0x6C);
+		OUT(0x24);
+		OUT(0);
 		debug(("fldcw 0(esp)\n"));
 
-		OUT = 0x81;
-		OUT = 0xC0|REG_esp;
-		LOUT = 8;
+		OUT(0x81);
+		OUT(0xC0|REG_esp);
+		LOUT(8);
 		debug(("addl 8,esp\n"));
 	}
+#endif
 
 #if defined(KAFFE_PROFILER)
 	if (profFlag) {
@@ -324,12 +330,12 @@
 	}
 #endif
 
-	OUT = 0x58|REG_ebx;
-	OUT = 0x58|REG_esi;
-	OUT = 0x58|REG_edi;
-	OUT = 0x89;
-	OUT = 0xC0|(REG_ebp<<3)|REG_esp;
-	OUT = 0x58|REG_ebp;
+	OUT(0x58|REG_ebx);
+	OUT(0x58|REG_esi);
+	OUT(0x58|REG_edi);
+	OUT(0x89);
+	OUT(0xC0|(REG_ebp<<3)|REG_esp);
+	OUT(0x58|REG_ebp);
 
 	debug(("popl ebx\n"));
 	debug(("popl esi\n"));
@@ -337,7 +343,7 @@
 	debug(("movl ebp,esp\n"));
 	debug(("popl ebp\n"));
 
-	OUT = 0xC3;
+	OUT(0xC3);
 
 	debug(("ret\n"));
 }
@@ -349,9 +355,9 @@
 	int r = sreg_int(0);
 	int o = const_int(1);
 
-	OUT = 0x89;
-	OUT = 0x80|(r<<3)|REG_ebp;
-	LOUT = o;
+	OUT(0x89);
+	OUT(0x80|(r<<3)|REG_ebp);
+	LOUT(o);
 
 	debug(("movl %s,%d(ebp)\n", regname(r), o));
 }
@@ -360,11 +366,11 @@
 {
 	int o = const_int(1);
 
-	sreg_float(0);
+	(void)sreg_float(0);
 
-	OUT = 0xD9;
-	OUT = 0x98|REG_ebp;
-	LOUT = o;
+	OUT(0xD9);
+	OUT(0x98|REG_ebp);
+	LOUT(o);
 
 	debug(("fstp %d(ebp)\n", o));
 }
@@ -373,11 +379,11 @@
 {
 	int o = const_int(1);
 
-	sreg_double(0);
+	(void)sreg_double(0);
 
-	OUT = 0xDD;
-	OUT = 0x98|REG_ebp;
-	LOUT = o;
+	OUT(0xDD);
+	OUT(0x98|REG_ebp);
+	LOUT(o);
 
 	debug(("fstpl %d(ebp)\n", o));
 }
@@ -387,9 +393,9 @@
 	int r = lreg_int(0);
 	int o = const_int(1);
 
-	OUT = 0x8B;
-	OUT = 0x80|(r<<3)|REG_ebp;
-	LOUT = o;
+	OUT(0x8B);
+	OUT(0x80|(r<<3)|REG_ebp);
+	LOUT(o);
 
 	debug(("movl %d(ebp),%s\n", o, regname(r)));
 }
@@ -400,24 +406,23 @@
 
 	lreg_float(0);
 
-	OUT = 0xD9;
-	OUT = 0x80|REG_ebp;
-	LOUT = o;
+	OUT(0xD9);
+	OUT(0x80|REG_ebp);
+	LOUT(o);
 
 	debug(("fld %d(ebp)\n", o));
 }
 
 define_insn(reload_double, freloadl_Rxx)
 {
+	int r = lreg_double(0);
 	int o = const_int(1);
 
-	lreg_double(0);
+	OUT(0xDD);
+	OUT(0x80|REG_ebp);
+	LOUT(o);
 
-	OUT = 0xDD;
-	OUT = 0x80|REG_ebp;
-	LOUT = o;
-
-	debug(("fldl %d(ebp)\n", o));
+	debug(("fldl %d(ebp) %d\n", o, r));
 }
 
 /* --------------------------------------------------------------------- */
@@ -426,10 +431,18 @@
 {
 	int val = const_int(2);
 	int w = wreg_int(0);
-	OUT = 0xB8|w;
-	LOUT = val;
 
-	debug(("movl #%d,%s\n", val, regname(w)));
+	if (val == 0) {
+		OUT(0x31);
+		OUT(0xC0|(w<<3)|w);
+		debug(("xorl %s,%s\n", regname(w), regname(w)));
+	}
+	else {
+		OUT(0xB8|w);
+		LOUT(val);
+
+		debug(("movl #%d,%s\n", val, regname(w)));
+	}
 }
 
 define_insn(move_label_const, move_RxL)
@@ -437,10 +450,10 @@
 	label* l = const_label(2);
 	int w = wreg_int(0);
 
-	OUT = 0xB8|w;
+	OUT(0xB8|w);
 	l->type |= Llong|Labsolute;
 	l->at = CODEPC;
-	LOUT = 0;
+	LOUT(0);
 
 	debug(("movl #?,%s\n", regname(w)));
 }
@@ -451,38 +464,35 @@
 	int w = wreg_int(0);
 
 	if (r != w) {
-		OUT = 0x89;
-		OUT = 0xC0|(r<<3)|w;
+		OUT(0x89);
+		OUT(0xC0|(r<<3)|w);
 		debug(("movl %s,%s\n", regname(r), regname(w)));
 	}
 }
 
 define_insn(move_float_const, fmove_RxC)
 {
-	double val = const_float(2);
+	jvalue d;
 
+	d.d = const_float(2);
 	wreg_float(0);
 
-	if (val == 0.0) {
-		OUT = 0xD9;
-		OUT = 0xEE;
+	if (d.d == 0.0) {
+		OUT(0xD9);
+		OUT(0xEE);
 
 		debug(("fldz\n"));
-		{
-			jvalue d;
-			d.d = val;
-
-			if ((d.j >> 63) & 1) {
-				OUT = 0xD9;
-				OUT = 0xe0;
 
-				debug(("fchs\n"));
-			}
+		if ((d.j >> 63) & 1) {
+			OUT(0xD9);
+			OUT(0xe0);
+
+			debug(("fchs\n"));
 		}
 	}
-	else if (val == 1.0) {
-		OUT = 0xD9;
-		OUT = 0xE8;
+	else if (d.d == 1.0) {
+		OUT(0xD9);
+		OUT(0xE8);
 
 		debug(("fld1\n"));
 	}
@@ -499,9 +509,9 @@
 	if (or != ow) {
 		wreg_float(0);
 
-		OUT = 0xD9;
-		OUT = 0x80|REG_ebp;
-		LOUT = or;
+		OUT(0xD9);
+		OUT(0x80|REG_ebp);
+		LOUT(or);
 
 		debug(("fld %d(ebp)\n", or));
 	}
@@ -509,30 +519,26 @@
 
 define_insn(move_double_const, fmovel_RxC)
 {
-	double val = const_double(2);
+	jvalue d;
 
+	d.d = const_double(2);
 	wreg_double(0);
 
-	if (val == 0.0) {
-		OUT = 0xD9;
-		OUT = 0xEE;
+	if (d.d == 0.0) {
+		OUT(0xD9);
+		OUT(0xEE);
 
 		debug(("fldz\n"));
-		{
-			jvalue d;
-			d.d = val;
-
-			if ((d.j >> 63) & 1) {
-				OUT = 0xD9;
-				OUT = 0xe0;
+		if ((d.j >> 63) & 1) {
+			OUT(0xD9);
+			OUT(0xe0);
 
-				debug(("fchsl\n"));
-			}
+			debug(("fchs\n"));
 		}
 	}
-	else if (val == 1.0) {
-		OUT = 0xD9;
-		OUT = 0xE8;
+	else if (d.d == 1.0) {
+		OUT(0xD9);
+		OUT(0xE8);
 
 		debug(("fld1\n"));
 	}
@@ -549,9 +555,9 @@
 	if (or != ow) {
 		wreg_double(0);
 
-		OUT = 0xDD;
-		OUT = 0x80|REG_ebp;
-		LOUT = or;
+		OUT(0xDD);
+		OUT(0x80|REG_ebp);
+		LOUT(or);
 
 		debug(("fldl %d(ebp)\n", or));
 	}
@@ -569,8 +575,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x01;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x01);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("addl %s,%s\n", regname(r), regname(w)));
 }
@@ -583,8 +589,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x11;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x11);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("adcl %s,%s\n", regname(r), regname(w)));
 }
@@ -596,9 +602,9 @@
 	rreg_float(1);			/* Load r1 into the register stack */
 	wreg_float(0);			/* Result will be in register stack */
 
-	OUT = 0xD8;
-	OUT = 0x80|REG_ebp;
-	LOUT = r2;
+	OUT(0xD8);
+	OUT(0x80|REG_ebp);
+	LOUT(r2);
 
 	debug(("fadd %d(ebp)\n", r2));
 }
@@ -610,9 +616,9 @@
 	rreg_double(1);			/* Load r1 into the register stack */
 	wreg_double(0);			/* Result will be in register stack */
 
-	OUT = 0xDC;
-	OUT = 0x80|REG_ebp;
-	LOUT = r2;
+	OUT(0xDC);
+	OUT(0x80|REG_ebp);
+	LOUT(r2);
 
 	debug(("faddl %d(ebp)\n", r2));
 }
@@ -627,8 +633,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x29;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x29);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("subl %s,%s\n", regname(r), regname(w)));
 }
@@ -641,8 +647,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x19;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x19);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("sbbl %s,%s\n", regname(r), regname(w)));
 }
@@ -654,9 +660,9 @@
 	rreg_float(1);			/* Load r1 into the register stack */
 	wreg_float(0);			/* Result will be in register stack */
 
-	OUT = 0xD8;
-	OUT = 0xA0|REG_ebp;
-	LOUT = r2;
+	OUT(0xD8);
+	OUT(0xA0|REG_ebp);
+	LOUT(r2);
 
 	debug(("fsub %d(ebp)\n", r2));
 }
@@ -668,33 +674,33 @@
 	rreg_double(1);			/* Load r1 into the register stack */
 	wreg_double(0);			/* Result will be in register stack */
 
-	OUT = 0xDC;
-	OUT = 0xA0|REG_ebp;
-	LOUT = r2;
+	OUT(0xDC);
+	OUT(0xA0|REG_ebp);
+	LOUT(r2);
 
 	debug(("fsubl %d(ebp)\n", r2));
 }
 
 define_insn(neg_float, negf_RxR)
 {
-    rreg_float(2);
-    wreg_float(0);
+	rreg_float(2);
+	wreg_float(0);
 
-    OUT = 0xD9;
-    OUT = 0xe0;
+	OUT(0xD9);
+	OUT(0xe0);
 
-    debug(("fchs\n"));
+	debug(("fchs\n"));
 }
 
 define_insn(neg_double, negd_RxR)
 {
-    rreg_double(2);
-    wreg_double(0);
+	rreg_double(2);
+	wreg_double(0);
 
-    OUT = 0xD9;
-    OUT = 0xe0;
+	OUT(0xD9);
+	OUT(0xe0);
 
-    debug(("fchsl\n"));
+	debug(("fchs\n"));
 }
 
 define_insn(mul_int, mul_RRR)
@@ -707,9 +713,9 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x0F;
-	OUT = 0xAF;
-        OUT = 0xC0|(w<<3)|r;
+	OUT(0x0F);
+	OUT(0xAF);
+        OUT(0xC0|(w<<3)|r);
 
 	debug(("imull %s,%s\n", regname(r), regname(w)));
 }
@@ -721,9 +727,9 @@
 	rreg_float(1);			/* Load r1 into the register stack */
 	wreg_float(0);			/* Result will be in register stack */
 
-	OUT = 0xD8;
-	OUT = 0x88|REG_ebp;
-	LOUT = r2;
+	OUT(0xD8);
+	OUT(0x88|REG_ebp);
+	LOUT(r2);
 
 	debug(("fmul %d(ebp)\n", r2));
 }
@@ -735,9 +741,9 @@
 	rreg_double(1);			/* Load r1 into the register stack */
 	wreg_double(0);			/* Result will be in register stack */
 
-	OUT = 0xDC;
-	OUT = 0x88|REG_ebp;
-	LOUT = r2;
+	OUT(0xDC);
+	OUT(0x88|REG_ebp);
+	LOUT(r2);
 
 	debug(("fmull %d(ebp)\n", r2));
 }
@@ -765,43 +771,43 @@
 	assert(r != REG_edx);
 
 	/* special case for LONG_MIN / -1l: r == -1 ? -eax : eax / r  */
-	OUT = 0x83;
-	OUT = 0xF8|r;
-	OUT = 0xFF;
+	OUT(0x83);
+	OUT(0xF8|r);
+	OUT(0xFF);
 	debug(("cmp #0xFF,%s\n", regname(r)));
 
 	l1 = newLabel();
 	l1->type = Linternal| Llong8|Lrelative;
-	OUT = 0x74;
+	OUT(0x74);
 	l1->at = CODEPC;
-	OUT = 0;
+	OUT(0);
 	l1->from = CODEPC;
 	debug(("je neg\n"));
 
 	/* Setup EDX - should contains the sign of EAX */
 	do_move_int(REG_edx, REG_eax);
 #if 0
-	OUT = 0xC1;
-	OUT = 0xF8|REG_edx;
-	OUT = 31;
+	OUT(0xC1);
+	OUT(0xF8|REG_edx);
+	OUT(31);
 	debug(("sarl #31,edx\n"));
 #else
-	OUT = 0x99;
+	OUT(0x99);
 	debug(("cltd\n"));
 #endif
 
-	OUT = 0xF7;
-        OUT = 0xF8|r;
+	OUT(0xF7);
+        OUT(0xF8|r);
 	debug(("idivl %s,%s\n", regname(r), regname(w)));
 
-	OUT = 0xEB;
-	OUT = 2;
+	OUT(0xEB);
+	OUT(2);
 	debug(("jmp +2\n"));
 
 	debug(("neg:\n"));
 	l1->to = CODEPC;
-	OUT = 0xF7;
-	OUT = 0xD8|REG_eax;
+	OUT(0xF7);
+	OUT(0xD8|REG_eax);
 	debug(("neg eax\n"));
 }
 
@@ -812,9 +818,9 @@
 	rreg_float(1);			/* Load r1 into the register stack */
 	wreg_float(0);			/* Result will be in register stack */
 
-	OUT = 0xD8;
-	OUT = 0xB0|REG_ebp;
-	LOUT = r2;
+	OUT(0xD8);
+	OUT(0xB0|REG_ebp);
+	LOUT(r2);
 
 	debug(("fdiv %d(ebp)\n", r2));
 }
@@ -826,9 +832,9 @@
 	rreg_double(1);			/* Load r1 into the register stack */
 	wreg_double(0);			/* Result will be in register stack */
 
-	OUT = 0xDC;
-	OUT = 0xB0|REG_ebp;
-	LOUT = r2;
+	OUT(0xDC);
+	OUT(0xB0|REG_ebp);
+	LOUT(r2);
 
 	debug(("fdivl %d(ebp)\n", r2));
 }
@@ -855,43 +861,43 @@
 	assert(r != REG_edx);
 
 	/* special case for LONG_MIN % -1l: r == -1 ? 0 : eax / r  */
-	OUT = 0x83;
-	OUT = 0xF8|r;
-	OUT = 0xFF;
+	OUT(0x83);
+	OUT(0xF8|r);
+	OUT(0xFF);
 	debug(("cmp #0xFF,%s\n", regname(r)));
 
 	l1 = newLabel();
 	l1->type = Linternal| Llong8|Lrelative;
-	OUT = 0x74;
+	OUT(0x74);
 	l1->at = CODEPC;
-	OUT = 0;
+	OUT(0);
 	l1->from = CODEPC;
 	debug(("je const0\n"));
 
 	/* Setup EDX - should contains the sign of EAX */
 	do_move_int(REG_edx, REG_eax);
 #if 0
-	OUT = 0xC1;
-	OUT = 0xF8|REG_edx;
-	OUT = 31;
+	OUT(0xC1);
+	OUT(0xF8|REG_edx);
+	OUT(31);
 	debug(("sarl #31,edx\n"));
 #else
-	OUT = 0x99;
+	OUT(0x99);
 	debug(("cltd\n"));
 #endif
 
-	OUT = 0xF7;
-        OUT = 0xF8|r;
+	OUT(0xF7);
+        OUT(0xF8|r);
 	debug(("idivl %s,%s\n", regname(r), regname(w)));
 
-	OUT = 0xEB;
-	OUT = 2;
+	OUT(0xEB);
+	OUT(2);
 	debug(("jmp +2\n"));
 
 	debug(("const0:\n"));
 	l1->to = CODEPC;
-	OUT = 0x31;
-        OUT = 0xC0|(REG_edx<<3)|REG_edx;
+	OUT(0x31);
+        OUT(0xC0|(REG_edx<<3)|REG_edx);
 	debug(("xorl edx,edx\n"));
 
 	/* Result is in EDX not EAX - we must force the slot register */
@@ -910,8 +916,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x21;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x21);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("andl %s,%s\n", regname(r), regname(w)));
 }
@@ -926,8 +932,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x09;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x09);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("orl %s,%s\n", regname(r), regname(w)));
 }
@@ -942,8 +948,8 @@
 	r = rreg_int(2);
 	w = rwreg_int(0);
 
-	OUT = 0x31;
-        OUT = 0xC0|(r<<3)|w;
+	OUT(0x31);
+        OUT(0xC0|(r<<3)|w);
 
 	debug(("xorl %s,%s\n", regname(r), regname(w)));
 }
@@ -962,8 +968,8 @@
 
 	w = rwreg_int(0);
 
-	OUT = 0xD3;
-        OUT = 0xF8|w;
+	OUT(0xD3);
+        OUT(0xF8|w);
 
 	debug(("sarl %s,%s\n", regname(r), regname(w)));
 }
@@ -982,8 +988,8 @@
 
 	w = rwreg_int(0);
 
-	OUT = 0xD3;
-        OUT = 0xE8|w;
+	OUT(0xD3);
+        OUT(0xE8|w);
 
 	debug(("shrl %s,%s\n", regname(r), regname(w)));
 }
@@ -1002,8 +1008,8 @@
 
 	w = rwreg_int(0);
 
-	OUT = 0xD3;
-        OUT = 0xE0|w;
+	OUT(0xD3);
+        OUT(0xE0|w);
 
 	debug(("shll %s,%s\n", regname(r), regname(w)));
 }
@@ -1015,10 +1021,10 @@
 	int r = rreg_int(2);
 	int w = wreg_int(0);
 
-	OUT = 0x8B;
-	OUT = 0x00|(w<<3)|r;
+	OUT(0x8B);
+	OUT(0x00|(w<<3)|r);
 	if (r == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movl (%s),%s\n", regname(r), regname(w)));
@@ -1030,8 +1036,8 @@
 
 	wreg_float(0);
 
-	OUT = 0xD9;
-	OUT = 0x00|r;
+	OUT(0xD9);
+	OUT(0x00|r);
 
 	debug(("fld (%s)\n", regname(r)));
 }
@@ -1042,8 +1048,8 @@
 
 	wreg_double(0);
 
-	OUT = 0xDD;
-	OUT = 0x00|r;
+	OUT(0xDD);
+	OUT(0x00|r);
 
 	debug(("fldl (%s)\n", regname(r)));
 }
@@ -1053,10 +1059,10 @@
 	int r = rreg_int(2);
 	int w = rreg_int(1);
 
-	OUT = 0x89;
-	OUT = 0x00|(r<<3)|w;
+	OUT(0x89);
+	OUT(0x00|(r<<3)|w);
 	if (w == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movl %s,(%s)\n", regname(r), regname(w)));
@@ -1068,8 +1074,8 @@
 
 	rreg_float(2);
 
-	OUT = 0xD9;
-	OUT = 0x18|w;
+	OUT(0xD9);
+	OUT(0x18|w);
 
 	debug(("fstp (%s)\n", regname(w)));
 }
@@ -1080,8 +1086,8 @@
 
 	rreg_double(2);
 
-	OUT = 0xDD;
-	OUT = 0x18|w;
+	OUT(0xDD);
+	OUT(0x18|w);
 
 	debug(("fstlp (%s)\n", regname(w)));
 }
@@ -1093,8 +1099,8 @@
 	int r1 = rreg_int(1);
 	int r2 = rreg_int(2);
 
-	OUT = 0x39;
-	OUT = 0xC0|(r2<<3)|r1;
+	OUT(0x39);
+	OUT(0xC0|(r2<<3)|r1);
 
 	debug(("cmpl %s,%s\n", regname(r2), regname(r1)));
 }
@@ -1107,9 +1113,9 @@
 
 	wreg_float(0);
 
-	OUT = 0xDB;
-	OUT = 0x80|REG_ebp;
-	LOUT = r;
+	OUT(0xDB);
+	OUT(0x80|REG_ebp);
+	LOUT(r);
 
 	debug(("fild %d(ebp)\n", r));
 }
@@ -1120,9 +1126,9 @@
 
 	wreg_double(0);
 
-	OUT = 0xDB;
-	OUT = 0x80|REG_ebp;
-	LOUT = r;
+	OUT(0xDB);
+	OUT(0x80|REG_ebp);
+	LOUT(r);
 
 	debug(("fild %d(ebp)\n", r));
 }
@@ -1133,9 +1139,9 @@
 
 	wreg_float(0);
 
-	OUT = 0xDF;
-	OUT = 0xA8|REG_ebp;
-	LOUT = r;
+	OUT(0xDF);
+	OUT(0xA8|REG_ebp);
+	LOUT(r);
 
 	debug(("fildll %d(ebp)\n", r));
 }
@@ -1146,9 +1152,9 @@
 
 	wreg_double(0);
 
-	OUT = 0xDF;
-	OUT = 0xA8|REG_ebp;
-	LOUT = r;
+	OUT(0xDF);
+	OUT(0xA8|REG_ebp);
+	LOUT(r);
 
 	debug(("fildll %d(ebp)\n", r));
 }
@@ -1159,9 +1165,9 @@
 
 	wreg_double(0);
 
-	OUT = 0xD9;
-	OUT = 0x80|REG_ebp;
-	LOUT = o;
+	OUT(0xD9);
+	OUT(0x80|REG_ebp);
+	LOUT(o);
 
 	debug(("fld %d(ebp)\n", o));
 }
@@ -1172,9 +1178,9 @@
 
 	wreg_float(0);
 
-	OUT = 0xDD;
-	OUT = 0x80|REG_ebp;
-	LOUT = o;
+	OUT(0xDD);
+	OUT(0x80|REG_ebp);
+	LOUT(o);
 
 	debug(("fldl %d(ebp)\n", o));
 }
@@ -1185,7 +1191,7 @@
 {
 	jint val = const_int(2);
 
-	LOUT = val;
+	LOUT(val);
 
 	debug((".word %08x\n", val));
 }
@@ -1196,7 +1202,7 @@
 
 	l->type |= Llong|Labsolute;
 	l->at = CODEPC;
-	LOUT = 0;
+	LOUT(0);
 	l->from = CODEPC;
 	debug((".word ?\n"));
 }
@@ -1217,73 +1223,73 @@
 	l->type |= Llong|Lrelative;
 	switch (bt) {
 	case ba:
-		OUT = 0xE9;
+		OUT(0xE9);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jmpl ?\n"));
 		break;
 	case beq:
-		OUT = 0x0F;
-		OUT = 0x84;
+		OUT(0x0F);
+		OUT(0x84);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("je ?\n"));
 		break;
 	case bne:
-		OUT = 0x0F;
-		OUT = 0x85;
+		OUT(0x0F);
+		OUT(0x85);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jne ?\n"));
 		break;
 	case blt:
-		OUT = 0x0F;
-		OUT = 0x8C;
+		OUT(0x0F);
+		OUT(0x8C);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jlt ?\n"));
 		break;
 	case ble:
-		OUT = 0x0F;
-		OUT = 0x8E;
+		OUT(0x0F);
+		OUT(0x8E);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jle ?\n"));
 		break;
 	case bgt:
-		OUT = 0x0F;
-		OUT = 0x8F;
+		OUT(0x0F);
+		OUT(0x8F);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jgt ?\n"));
 		break;
 	case bge:
-		OUT = 0x0F;
-		OUT = 0x8D;
+		OUT(0x0F);
+		OUT(0x8D);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jge ?\n"));
 		break;
 	case bult:
-		OUT = 0x0F;
-		OUT = 0x82;
+		OUT(0x0F);
+		OUT(0x82);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jult ?\n"));
 		break;
 	case bugt:
-		OUT = 0x0F;
-		OUT = 0x87;
+		OUT(0x0F);
+		OUT(0x87);
 		l->at = CODEPC;
-		LOUT = 0;
+		LOUT(0);
 		l->from = CODEPC;
 		debug(("jugt ?\n"));
 		break;
@@ -1297,8 +1303,8 @@
 	int r = rreg_int(1);
 	assert(const_int(2) == ba);
 
-	OUT = 0xFF;
-	OUT = 0xE0|r;
+	OUT(0xFF);
+	OUT(0xE0|r);
 
 	debug(("jmp (%s)\n", regname(r)));
 }
@@ -1315,10 +1321,10 @@
 	}
 #endif
 
-	OUT = 0xE8;
+	OUT(0xE8);
 	l->type |= Llong|Lrelative;
 	l->at = CODEPC;
-	LOUT = 0;
+	LOUT(0);
 	l->from = CODEPC;
 
 	debug(("call ?\n"));
@@ -1342,8 +1348,8 @@
 	}
 #endif
 
-	OUT = 0xFF;
-	OUT = 0xD0|r;
+	OUT(0xFF);
+	OUT(0xD0|r);
 
 	debug(("call %s\n", regname(r)));
 
@@ -1365,8 +1371,8 @@
 	}
 #endif
 
-	WOUT = 0x15FF;
-	LOUT = m;
+	WOUT(0x15FF);
+	LOUT(m);
 
 	debug(("call *%x\n", m));
 
@@ -1381,8 +1387,8 @@
 {
 	int r = rreg_int(1);
 
-	OUT = 0xFF;
-	OUT = 0xF0|r;
+	OUT(0xFF);
+	OUT(0xF0|r);
 
 	debug(("pushl %s\n", regname(r)));
 }
@@ -1391,8 +1397,8 @@
 {
 	int r = rreg_int(1);	/* Move the float into a register */
 
-	OUT = 0xFF;
-	OUT = 0xF0|r;
+	OUT(0xFF);
+	OUT(0xF0|r);
 
 	debug(("pushl %s\n", regname(r)));
 }
@@ -1401,15 +1407,15 @@
 {
 	int o = rslot_double(1);
 
-	OUT = 0xFF;
-	OUT = 0xB0|REG_ebp;
-	LOUT = o+4;
+	OUT(0xFF);
+	OUT(0xB0|REG_ebp);
+	LOUT(o+4);
 
 	debug(("pushl %d(ebp)\n", (o+4)));
 
-	OUT = 0xFF;
-	OUT = 0xB0|REG_ebp;
-	LOUT = o;
+	OUT(0xFF);
+	OUT(0xB0|REG_ebp);
+	LOUT(o);
 
 	debug(("pushl %d(ebp)\n", o));
 }
@@ -1419,9 +1425,9 @@
 	int o = const_int(2);
 	o *= 4;
 
-	OUT = 0x81;
-	OUT = 0xC0|REG_esp;
-	LOUT = o;
+	OUT(0x81);
+	OUT(0xC0|REG_esp);
+	LOUT(o);
 
 	debug(("addl %d,esp\n", o));
 }
@@ -1478,8 +1484,8 @@
 	}
 	else {
 		/* r1 == REG_edx && r2 == REG_eax - swap */
-		OUT = 0x87;
-		OUT = 0xC0|r1<<3|r2;
+		OUT(0x87);
+		OUT(0xC0|r1<<3|r2);
 	}
 }
 
@@ -1507,9 +1513,9 @@
 	v = const_int(2);
 	rw = rwreg_int(0);
 
-	OUT = 0x81;
-        OUT = 0xC0|rw;
-	LOUT = v;
+	OUT(0x81);
+	OUT(0xC0|rw);
+	LOUT(v);
 
 	debug(("addl #%d,%s\n", v, regname(rw)));
 }
@@ -1524,9 +1530,9 @@
 	v = const_int(2);
 	rw = rwreg_int(0);
 
-	OUT = 0x81;
-        OUT = 0xE8|rw;
-	LOUT = v;
+	OUT(0x81);
+	OUT(0xE8|rw);
+	LOUT(v);
 
 	debug(("subl #%d,%s\n", v, regname(rw)));
 }
@@ -1538,9 +1544,9 @@
 	int w = wreg_int(0);
 
 	assert(r != REG_esp);
-	OUT = 0x8B;
-	OUT = 0x80|(w<<3)|r;
-	LOUT = v;
+	OUT(0x8B);
+	OUT(0x80|(w<<3)|r);
+	LOUT(v);
 
 	debug(("movl %d(%s),%s\n", v, regname(r), regname(w)));
 }
@@ -1550,11 +1556,11 @@
 	int r = rreg_int(2);
 	int w = wreg_int(0);
 
-	OUT = 0x0F;
-	OUT = 0xBE;
-	OUT = 0x00|(w<<3)|r;
+	OUT(0x0F);
+	OUT(0xBE);
+	OUT(0x00|(w<<3)|r);
 	if (r == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movsb (%s),%s\n", regname(r), regname(w)));
@@ -1565,11 +1571,11 @@
 	int r = rreg_int(2);
 	int w = wreg_int(0);
 
-	OUT = 0x0F;
-	OUT = 0xB7;
-	OUT = 0x00|(w<<3)|r;
+	OUT(0x0F);
+	OUT(0xB7);
+	OUT(0x00|(w<<3)|r);
 	if (r == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movzw (%s),%s\n", regname(r), regname(w)));
@@ -1580,11 +1586,11 @@
 	int r = rreg_int(2);
 	int w = wreg_int(0);
 
-	OUT = 0x0F;
-	OUT = 0xBF;
-	OUT = 0x00|(w<<3)|r;
+	OUT(0x0F);
+	OUT(0xBF);
+	OUT(0x00|(w<<3)|r);
 	if (r == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movsw (%s),%s\n", regname(r), regname(w)));
@@ -1601,9 +1607,9 @@
 	r1 = rreg_int(1);
 
 	assert(r0 != REG_esp);
-	OUT = 0x89;
-	OUT = 0x80|(r0<<3)|r1;
-	LOUT = v;
+	OUT(0x89);
+	OUT(0x80|(r0<<3)|r1);
+	LOUT(v);
 
 	debug(("movl %s,%d(%s)\n", regname(r0), v, regname(r1)));
 }
@@ -1618,12 +1624,13 @@
 	if (r == REG_edi || r == REG_esi) {
 		do_force_move_int(REG_ebx, r, 2);
 	}
+
 	w = rreg_int(1);
 
-	OUT = 0x88;
-	OUT = 0x00|(r<<3)|w;
+	OUT(0x88);
+	OUT(0x00|(r<<3)|w);
 	if (w == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movb %s,(%s)\n", regname(r), regname(w)));
@@ -1634,11 +1641,11 @@
 	int r = rreg_int(2);
 	int w = rreg_int(1);
 
-	OUT = 0x66;
-	OUT = 0x89;
-	OUT = 0x00|(r<<3)|w;
+	OUT(0x66);
+	OUT(0x89);
+	OUT(0x00|(r<<3)|w);
 	if (w == REG_esp) {
-		OUT = 0x20|REG_esp;
+		OUT(0x20|REG_esp);
 	}
 
 	debug(("movw %s,(%s)\n", regname(r), regname(w)));
@@ -1649,9 +1656,9 @@
 	int r1 = rreg_int(1);
 	int v = const_int(2);
 
-	OUT = 0x81;
-        OUT = 0xF8|r1;
-	LOUT = v;
+	OUT(0x81);
+	OUT(0xF8|r1);
+	LOUT(v);
 
 	debug(("cmpl #%d,%s\n", v, regname(r1)));
 }
@@ -1660,8 +1667,8 @@
 {
 	int v = const_int(1);
 
-	OUT = 0x68;
-	LOUT = v;
+	OUT(0x68);
+	LOUT(v);
 
 	debug(("pushl #%d\n", v));
 }
@@ -1676,9 +1683,9 @@
 	rw = rreg_int(0);
 	v = const_int(2);
 
-	OUT = 0xC1;
-        OUT = 0xE0|rw;
-	OUT = v;
+	OUT(0xC1);
+	OUT(0xE0|rw);
+	OUT(v);
 
 	debug(("shll #%d,%s\n", v, regname(rw)));
 }
@@ -1693,8 +1700,8 @@
     )
 	if (((reginfo[s->regno].ctype & Rdouble) && (s->regno == REG_dbl0)) ||
 	    ((reginfo[s->regno].ctype & Rfloat) && (s->regno == REG_flt0))) {
-	    	OUT = 0xDD;
-		OUT = 0xD8;
+	    	OUT(0xDD);
+		OUT(0xD8);
 
 		debug (("fstp %%st(0)\n"));
 	}
diff -Naur kaffe-snap-040708.orig/config/i386/jit3-i386.def kaffe-snap-040708/config/i386/jit3-i386.def
--- kaffe-snap-040708.orig/config/i386/jit3-i386.def	Sun Apr  4 13:52:37 2004
+++ kaffe-snap-040708/config/i386/jit3-i386.def	Tue Jul 13 18:01:59 2004
@@ -111,7 +111,7 @@
 								\
 	OUT(0x29);						\
 	OUT(0x05);						\
-	LOUT((int)(__counter));				\
+	LOUT((int)(__counter));					\
 	debug(("sub eax, 0x%x\n", (int)(__counter)));		\
 								\
 	OUT(0x19);						\
@@ -147,7 +147,7 @@
 								\
 	OUT(0x01);						\
 	OUT(0x05);						\
-	LOUT((int)(__counter));				\
+	LOUT((int)(__counter));					\
 	debug(("add eax, 0x%x\n", (int)(__counter)));		\
 								\
 	OUT(0x11);						\
@@ -176,6 +176,7 @@
 define_insn(nop, nop)
 {
 	OUT(0x90);
+	debug(("nop\n"));
 }
 
 /* --------------------------------------------------------------------- */
@@ -455,7 +456,7 @@
 		/* The function ends with a throw, not a return. */
 	}
 	setEpilogueLabel((uintp)CODEPC);
-	
+
 #if 0
 	/* If this method uses IEEE, restore it */
 	if (used_ieee_division == true) {
@@ -518,10 +519,9 @@
 
 define_insn(spill_float, fspill_Rxx)
 {
-	int o;
+	int o = const_int(1);
 
 	(void)sreg_float(0);
-	o = const_int(1);
 
 	OUT(0xD9);
 	OUT(0x98|REG_ebp);
@@ -532,10 +532,9 @@
 
 define_insn(spill_double, fspilll_Rxx)
 {
-	int o;
+	int o = const_int(1);
 
 	(void)sreg_double(0);
-	o = const_int(1);
 
 	OUT(0xDD);
 	OUT(0x98|REG_ebp);
@@ -546,11 +545,8 @@
 
 define_insn(reload_int, reload_Rxx)
 {
-	int o;
-	int r;
-
-	r = lreg_int(0);
-	o = const_int(1);
+	int r = lreg_int(0);
+	int o = const_int(1);
 
 	OUT(0x8B);
 	OUT(0x80|(r<<3)|REG_ebp);
@@ -561,10 +557,9 @@
 
 define_insn(reload_float, freload_Rxx)
 {
-	int o;
+	int o = const_int(1);
 
 	lreg_float(0);
-	o = const_int(1);
 
 	OUT(0xD9);
 	OUT(0x80|REG_ebp);
@@ -575,15 +570,13 @@
 
 define_insn(reload_double, freloadl_Rxx)
 {
-	int r, o;
+	int r = lreg_double(0);
+	int o = const_int(1);
 
-	r = lreg_double(0);
-	o = const_int(1);
-	
 	OUT(0xDD);
 	OUT(0x80|REG_ebp);
 	LOUT(o);
-		
+
 	debug(("fldl %d(ebp) %d\n", o, r));
 }
 
@@ -656,7 +649,7 @@
 			OUT(0xe0);
 
 			debug(("fchs\n"));
-                }
+		}
 	}
 	else if (d.d == 1.0) {
 		OUT(0xD9);
@@ -702,7 +695,7 @@
 			OUT(0xe0);
 
 			debug(("fchs\n"));
-                }
+		}
 	}
 	else if (d.d == 1.0) {
 		OUT(0xD9);
@@ -1259,7 +1252,7 @@
 	
 	OUT(0xD9);
 	OUT(0x18|w);
-	
+
 	debug(("fstp (%s)\n", regname(w)));
 }
 
@@ -1356,9 +1349,8 @@
 
 define_insn(cvt_float_double, cvtfd_RxR)
 {
-	int o;
+	int o = rslot_float(2);
 
-	o = rslot_float(2);
 	wreg_double(0);
 
 	OUT(0xD9);
@@ -1750,7 +1742,7 @@
 	rw = rwreg_int(0);
 
 	OUT(0x81);
-        OUT(0xC0|rw);
+	OUT(0xC0|rw);
 	LOUT(v);
 
 	debug(("addl #%d,%s\n", v, regname(rw)));
@@ -1767,7 +1759,7 @@
 	rw = rwreg_int(0);
 
 	OUT(0x81);
-        OUT(0xE8|rw);
+	OUT(0xE8|rw);
 	LOUT(v);
 
 	debug(("subl #%d,%s\n", v, regname(rw)));
@@ -1897,7 +1889,7 @@
 	int v = const_int(2);
 
 	OUT(0x81);
-        OUT(0xF8|r1);
+	OUT(0xF8|r1);
 	LOUT(v);
 
 	debug(("cmpl #%d,%s\n", v, regname(r1)));
@@ -1924,7 +1916,7 @@
 	v = const_int(2);
 
 	OUT(0xC1);
-        OUT(0xE0|rw);
+	OUT(0xE0|rw);
 	OUT(v);
 
 	debug(("shll #%d,%s\n", v, regname(rw)));
diff -Naur kaffe-snap-040708.orig/config/m68k/jit-m68k.def kaffe-snap-040708/config/m68k/jit-m68k.def
--- kaffe-snap-040708.orig/config/m68k/jit-m68k.def	Fri Mar 12 19:38:44 2004
+++ kaffe-snap-040708/config/m68k/jit-m68k.def	Tue Jul 13 19:35:59 2004
@@ -63,7 +63,7 @@
 
 #ifdef KAFFE_VMDEBUG
 int jit_debug = 0;
-#define	debug(x)	(jit_debug ? printf("%dx:\t", CODEPC), printf x : 0)
+#define	debug(x)	(jit_debug ? printf("%x:\t", (int)CODEPC), printf x : 0)
 #else
 #define	debug(x)	((void)0)
 #endif
@@ -91,8 +91,8 @@
 {
 	debug(("addl #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0xD080 | (dst << 9) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0xD080 | (dst << 9) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -101,7 +101,7 @@
 	debug(("addl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xD080 | (dst << 9) | (MODE_d << 3) | (src & 7);
+	WOUT(0xD080 | (dst << 9) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -110,8 +110,8 @@
 	debug(("addaw #%d, %s\n", imm, regname(dst)));
 	assert_s16(imm);
 	assert_areg(dst);
-	WOUT = 0xD0C0 | ((dst & 7) << 9) | MODE_src_imm;
-	WOUT = imm;
+	WOUT(0xD0C0 | ((dst & 7) << 9) | MODE_src_imm);
+	WOUT(imm);
 }
 
 static inline void
@@ -119,8 +119,8 @@
 {
 	debug(("addal #%d, %s\n", imm, regname(dst)));
 	assert_areg(dst);
-	WOUT = 0xD1C0 | ((dst & 7) << 9) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0xD1C0 | ((dst & 7) << 9) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -129,7 +129,7 @@
 	debug(("addal %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_areg(dst);
-	WOUT = 0xD1C0 | ((dst & 7) << 9) | (MODE_d << 3) | (src & 7);
+	WOUT(0xD1C0 | ((dst & 7) << 9) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -138,7 +138,7 @@
 	debug(("addql #%d, %s\n", imm, regname(dst)));
 	assert(imm >= 1 && imm <= 8);
 	assert_areg(dst);
-	WOUT = 0x5080 | ((imm & 7) << 9) | (MODE_a << 3) | (dst & 7);
+	WOUT(0x5080 | ((imm & 7) << 9) | (MODE_a << 3) | (dst & 7));
 }
 
 static inline void
@@ -147,7 +147,7 @@
 	debug(("addql #%d, %s\n", imm, regname(dst)));
 	assert(imm >= 1 && imm <= 8);
 	assert_dreg(dst);
-	WOUT = 0x5080 | ((imm & 7) << 9) | (MODE_d << 3) | (dst & 7);
+	WOUT(0x5080 | ((imm & 7) << 9) | (MODE_d << 3) | (dst & 7));
 }
 
 static inline void
@@ -156,7 +156,7 @@
 	debug(("addxl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xD180 | (dst << 9) | src;
+	WOUT(0xD180 | (dst << 9) | src);
 }
 
 static inline void
@@ -164,8 +164,8 @@
 {
 	debug(("andl #0x%x, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0xC080 | (dst << 9) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0xC080 | (dst << 9) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -174,7 +174,7 @@
 	debug(("andl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xC080 | (dst << 9) | (MODE_d << 3) | (src & 7);
+	WOUT(0xC080 | (dst << 9) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -183,7 +183,7 @@
 	debug(("asr #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
 	assert(imm >= 1 && imm <= 8);
-	WOUT = 0xE080 | ((imm & 7) << 9) | dst;
+	WOUT(0xE080 | ((imm & 7) << 9) | dst);
 }
 
 static inline void
@@ -192,79 +192,79 @@
 	debug(("asr %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xE0A0 | ((src & 7) << 9) | dst;
+	WOUT(0xE0A0 | ((src & 7) << 9) | dst);
 }
 
 static inline void
 op_beq_32(int disp)
 {
 	debug(("beq %+d\n", disp));
-	WOUT = 0x67FF;
-	LOUT = disp;
+	WOUT(0x67FF);
+	LOUT(disp);
 }
 
 static inline void
 op_bne_32(int disp)
 {
 	debug(("bne %+d\n", disp));
-	WOUT = 0x66FF;
-	LOUT = disp;
+	WOUT(0x66FF);
+	LOUT(disp);
 }
 
 static inline void
 op_blt_32(int disp)
 {
 	debug(("blt %+d\n", disp));
-	WOUT = 0x6DFF;
-	LOUT = disp;
+	WOUT(0x6DFF);
+	LOUT(disp);
 }
 
 static inline void
 op_ble_32(int disp)
 {
 	debug(("ble %+d\n", disp));
-	WOUT = 0x6FFF;
-	LOUT = disp;
+	WOUT(0x6FFF);
+	LOUT(disp);
 }
 
 static inline void
 op_bgt_32(int disp)
 {
 	debug(("bgt %+d\n", disp));
-	WOUT = 0x6EFF;
-	LOUT = disp;
+	WOUT(0x6EFF);
+	LOUT(disp);
 }
 
 static inline void
 op_bge_32(int disp)
 {
 	debug(("bge %+d\n", disp));
-	WOUT = 0x6CFF;
-	LOUT = disp;
+	WOUT(0x6CFF);
+	LOUT(disp);
 }
 
 static inline void
 op_blo_32(int disp)
 {
 	debug(("blo %+d\n", disp));
-	WOUT = 0x65FF;
-	LOUT = disp;
+	WOUT(0x65FF);
+	LOUT(disp);
 }
 
 static inline void
 op_bra_32(int disp)
 {
 	debug(("bra %+d\n", disp));
-	WOUT = 0x60FF;
-	LOUT = disp;
+	WOUT(0x60FF);
+	LOUT(disp);
 }
 
 static inline void
 op_bsr_32(int disp)
 {
 	debug(("bsr %+d\n", disp));
-	WOUT = 0x61FF;
-	LOUT = disp;
+	WOUT(0x61FF);
+	LOUT(disp);
 }
 
 static inline void
@@ -272,7 +272,7 @@
 {
 	debug(("clrl %s\n", regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x4280 | (MODE_d << 3) | (dst & 7);
+	WOUT(0x4280 | (MODE_d << 3) | (dst & 7));
 }
 
 static inline void
@@ -281,7 +281,7 @@
 	debug(("cmpl %s, %s\n", regname(src1), regname(src2)));
 	assert_dreg(src1);
 	assert_dreg(src2);
-	WOUT = 0xB080 | (src2 << 9) | (MODE_d << 7) | (src1 & 7);
+	WOUT(0xB080 | (src2 << 9) | (MODE_d << 7) | (src1 & 7));
 }
 
 static inline void
@@ -290,7 +290,7 @@
 	debug(("cmpl %s, %s\n", regname(src1), regname(src2)));
 	assert_areg(src1);
 	assert_areg(src2);
-	WOUT = 0xB1C0 | (src2 << 9) | (MODE_a << 3) | (src1 & 7);
+	WOUT(0xB1C0 | (src2 << 9) | (MODE_a << 3) | (src1 & 7));
 }
 
 static inline void
@@ -298,8 +298,8 @@
 {
 	debug(("cmpil #%d, %s\n", imm, regname(src2)));
 	assert_areg(src2);
-	WOUT = 0x0C80 | (MODE_a << 3) | (src2 & 7);
-	LOUT = imm;
+	WOUT(0x0C80 | (MODE_a << 3) | (src2 & 7));
+	LOUT(imm);
 }
 
 static inline void
@@ -307,8 +307,8 @@
 {
 	debug(("cmpil #%d, %s\n", imm, regname(src2)));
 	assert_dreg(src2);
-	WOUT = 0x0C80 | (MODE_d << 3) | (src2 & 7);
-	LOUT = imm;
+	WOUT(0x0C80 | (MODE_d << 3) | (src2 & 7));
+	LOUT(imm);
 }
 
 static inline void
@@ -318,8 +318,8 @@
 	assert_dreg(src);
 	assert_dreg(r);
 	assert_dreg(q);
-	WOUT = 0x4C40 | (MODE_d << 3) | (src & 7);
-	WOUT = 0x0800 | (q << 12) | r;
+	WOUT(0x4C40 | (MODE_d << 3) | (src & 7));
+	WOUT(0x0800 | (q << 12) | r);
 }
 
 static inline void
@@ -328,7 +328,7 @@
 	debug(("eorl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xB180 | ((src & 7) << 9) | (MODE_d << 3) | (dst & 7);
+	WOUT(0xB180 | ((src & 7) << 9) | (MODE_d << 3) | (dst & 7));
 }
 
 static inline void
@@ -336,7 +336,7 @@
 {
 	debug(("extbl %s\n", regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x49C0 | dst;
+	WOUT(0x49C0 | dst);
 }
 
 static inline void
@@ -344,7 +344,7 @@
 {
 	debug(("extwl %s\n", regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x48C0 | dst;
+	WOUT(0x48C0 | dst);
 }
 
 static inline void
@@ -353,7 +353,7 @@
 	debug(("exg %s, %s\n", regname(r1), regname(r2)));
 	assert_areg(r1);
 	assert_areg(r2);
-	WOUT = 0xC148 | ((r1 & 7) << 9) | (r2 & 7);
+	WOUT(0xC148 | ((r1 & 7) << 9) | (r2 & 7));
 }
 
 static inline void
@@ -362,7 +362,7 @@
 	debug(("exg %s, %s\n", regname(r1), regname(r2)));
 	assert_dreg(r1);
 	assert_areg(r2);
-	WOUT = 0xC188 | (r1 << 9) | (r2 & 7);
+	WOUT(0xC188 | (r1 << 9) | (r2 & 7));
 }
 
 static inline void
@@ -371,7 +371,7 @@
 	debug(("exg %s, %s\n", regname(r1), regname(r2)));
 	assert_dreg(r1);
 	assert_dreg(r2);
-	WOUT = 0xC140 | (r1 << 9) | r2;
+	WOUT(0xC140 | (r1 << 9) | r2);
 }
 
 static inline void
@@ -379,7 +379,7 @@
 {
 	debug(("jmp (%s)\n", regname(dst)));
 	assert_areg(dst);
-	WOUT = 0x4EC0 | (MODE_ind << 3) | (dst & 7);
+	WOUT(0x4EC0 | (MODE_ind << 3) | (dst & 7));
 }
 
 static inline void
@@ -387,7 +387,7 @@
 {
 	debug(("jsr (%s)\n", regname(dst)));
 	assert_areg(dst);
-	WOUT = 0x4E80 | (MODE_ind << 3) | (dst & 7);
+	WOUT(0x4E80 | (MODE_ind << 3) | (dst & 7));
 }
 
 static inline void
@@ -396,8 +396,8 @@
 	debug(("linkw %s, #%d\n", regname(areg), disp));
 	assert_s16(disp);
 	assert_areg(areg);
-	WOUT = 0x4E50 | (areg & 7);
-	WOUT = disp;
+	WOUT(0x4E50 | (areg & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -406,7 +406,7 @@
 	debug(("lsl #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
 	assert(imm >= 1 && imm <= 8);
-	WOUT = 0xE188 | ((imm & 7) << 9) | dst;
+	WOUT(0xE188 | ((imm & 7) << 9) | dst);
 }
 
 static inline void
@@ -415,7 +415,7 @@
 	debug(("lsl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xE1A8 | ((src & 7) << 9) | dst;
+	WOUT(0xE1A8 | ((src & 7) << 9) | dst);
 }
 
 static inline void
@@ -424,7 +424,7 @@
 	debug(("lsr #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
 	assert(imm >= 1 && imm <= 8);
-	WOUT = 0xE088 | ((imm & 7) << 9) | dst;
+	WOUT(0xE088 | ((imm & 7) << 9) | dst);
 }
 
 static inline void
@@ -433,7 +433,7 @@
 	debug(("lsr %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0xE0A8 | ((src & 7) << 9) | dst;
+	WOUT(0xE0A8 | ((src & 7) << 9) | dst);
 }
 
 static inline void
@@ -442,8 +442,7 @@
 	debug(("moveb (%s), %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_dreg(dst);
-	WOUT = (0x1000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_ind << 3) | (src & 7));
+	WOUT(0x1000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_ind << 3) | (src & 7));
 }
 
 static inline void
@@ -452,8 +451,7 @@
 	debug(("moveb %s, (%s)\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_areg(dst);
-	WOUT = (0x1000 | ((dst & 7) << 9) | (MODE_ind << 6)
-		| (MODE_d << 3) | (src & 7));
+	WOUT(0x1000 | ((dst & 7) << 9) | (MODE_ind << 6) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -462,8 +460,7 @@
 	debug(("movew (%s), %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_dreg(dst);
-	WOUT = (0x3000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_ind << 3) | (src & 7));
+	WOUT(0x3000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_ind << 3) | (src & 7));
 }
 
 static inline void
@@ -472,8 +469,7 @@
 	debug(("movew %s, (%s)\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_areg(dst);
-	WOUT = (0x3000 | ((dst & 7) << 9) | (MODE_ind << 6)
-		| (MODE_d << 3) | (src & 7));
+	WOUT(0x3000 | ((dst & 7) << 9) | (MODE_ind << 6) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -483,9 +479,8 @@
 	assert_areg(src);
 	assert_areg(base);
 	assert_s16(disp);
-	WOUT = (0x2000 | ((base & 7) << 9) | (MODE_inddisp << 6)
-		| (MODE_a << 3) | (src & 7));
-	WOUT = disp;
+	WOUT(0x2000 | ((base & 7) << 9) | (MODE_inddisp << 6) | (MODE_a << 3) | (src & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -494,8 +489,7 @@
 	debug(("movel %s, %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_dreg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_a << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_a << 3) | (src & 7));
 }
 
 static inline void
@@ -504,8 +498,7 @@
 	debug(("movel %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_d << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -515,9 +508,8 @@
 	assert_dreg(src);
 	assert_areg(base);
 	assert_s16(disp);
-	WOUT = (0x2000 | ((base & 7) << 9) | (MODE_inddisp << 6)
-		| (MODE_d << 3) | (src & 7));
-	WOUT = disp;
+	WOUT(0x2000 | ((base & 7) << 9) | (MODE_inddisp << 6) | (MODE_d << 3) | (src & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -525,8 +517,8 @@
 {
 	debug(("movel #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -535,8 +527,7 @@
 	debug(("movel (%s), %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_dreg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_ind << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_ind << 3) | (src & 7));
 }
 
 static inline void
@@ -545,8 +536,7 @@
 	debug(("movel %s, (%s)\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_areg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_ind << 6)
-		| (MODE_a << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_ind << 6) | (MODE_a << 3) | (src & 7));
 }
 
 static inline void
@@ -555,8 +545,7 @@
 	debug(("movel %s, (%s)\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_areg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_ind << 6)
-		| (MODE_d << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_ind << 6) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -564,8 +553,8 @@
 {
 	debug(("movel #%d, -(%s)\n", imm, regname(dst)));
 	assert_areg(dst);
-	WOUT = 0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -574,8 +563,7 @@
 	debug(("movel %s, -(%s)\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_areg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_predec << 6)
-		| (MODE_a << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) | (MODE_a << 3) | (src & 7));
 }
 
 static inline void
@@ -584,8 +572,7 @@
 	debug(("movel %s, -(%s)\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_areg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) 
-		| (MODE_d << 3) | (src & 7));
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -595,9 +582,8 @@
 	assert_areg(base);
 	assert_s16(disp);
 	assert_areg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) 
-		| (MODE_inddisp << 3) | (base & 7));
-	WOUT = disp;
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_predec << 6) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -607,9 +593,8 @@
 	assert_areg(base);
 	assert_s16(disp);
 	assert_dreg(dst);
-	WOUT = (0x2000 | ((dst & 7) << 9) | (MODE_d << 6)
-		| (MODE_inddisp << 3) | (base & 7));
-	WOUT = disp;
+	WOUT(0x2000 | ((dst & 7) << 9) | (MODE_d << 6) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -618,7 +603,7 @@
 	debug(("moveal %s, %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_areg(dst);
-	WOUT = 0x2040 | ((dst & 7) << 9) | (MODE_a << 3) | (src & 7);
+	WOUT(0x2040 | ((dst & 7) << 9) | (MODE_a << 3) | (src & 7));
 }
 
 static inline void
@@ -627,7 +612,7 @@
 	debug(("moveal (%s), %s\n", regname(src), regname(dst)));
 	assert_areg(src);
 	assert_areg(dst);
-	WOUT = 0x2040 | ((dst & 7) << 9) | (MODE_ind << 3) | (src & 7);
+	WOUT(0x2040 | ((dst & 7) << 9) | (MODE_ind << 3) | (src & 7));
 }
 
 static inline void
@@ -637,8 +622,8 @@
 	assert_areg(base);
 	assert_s16(disp);
 	assert_areg(dst);
-	WOUT = 0x2040 | ((dst & 7) << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = disp;
+	WOUT(0x2040 | ((dst & 7) << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -646,8 +631,8 @@
 {
 	debug(("moveal #0x%x, %s\n", imm, regname(dst)));
 	assert_areg(dst);
-	WOUT = 0x2040 | ((dst & 7) << 9) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0x2040 | ((dst & 7) << 9) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -656,8 +641,8 @@
 	debug(("moveml 0x%04x, %d(%s)\n", mask, disp, regname(areg)));
 	assert_s16(disp);
 	assert_areg(areg);
-	WOUT = 0x48C0 | (MODE_inddisp << 3) | (areg & 7);
-	WOUT = mask;
+	WOUT(0x48C0 | (MODE_inddisp << 3) | (areg & 7));
+	WOUT(mask);
 }
 
 static inline void
@@ -666,8 +651,8 @@
 	debug(("moveml %d(%s), 0x%04x\n", disp, regname(areg), mask));
 	assert_s16(disp);
 	assert_areg(areg);
-	WOUT = 0x4CC0 | (MODE_inddisp << 3) | (areg & 7);
-	WOUT = mask;
+	WOUT(0x4CC0 | (MODE_inddisp << 3) | (areg & 7));
+	WOUT(mask);
 }
 
 static inline void
@@ -676,7 +661,7 @@
 	debug(("moveq #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
 	assert_s8(imm);
-	WOUT = 0x7000 | (dst << 9) | (imm & 0xFF);
+	WOUT(0x7000 | (dst << 9) | (imm & 0xFF));
 }
 
 static inline void
@@ -684,9 +669,9 @@
 {
 	debug(("mulsl #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x4C00 | MODE_src_imm;
-	WOUT = 0x0800 | (dst << 12);
-	LOUT = imm;
+	WOUT(0x4C00 | MODE_src_imm);
+	WOUT(0x0800 | (dst << 12));
+	LOUT(imm);
 }
 
 static inline void
@@ -695,8 +680,8 @@
 	debug(("mulsl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0x4C00 | (MODE_d << 3) | src;
-	WOUT = 0x0800 | (dst << 12);
+	WOUT(0x4C00 | (MODE_d << 3) | src);
+	WOUT(0x0800 | (dst << 12));
 }
 
 static inline void
@@ -704,7 +689,7 @@
 {
 	debug(("negl %s\n", regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x4480 | (MODE_d << 3) | dst;
+	WOUT(0x4480 | (MODE_d << 3) | dst);
 }
 
 static inline void
@@ -712,14 +697,14 @@
 {
 	debug(("negxl %s\n", regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x4080 | (MODE_d << 3) | dst;
+	WOUT(0x4080 | (MODE_d << 3) | dst);
 }
 
 static inline void
 op_nop(void)
 {
 	debug(("nop\n"));
-	WOUT = 0x4E71;
+	WOUT(0x4E71);
 }
 
 static inline void
@@ -728,22 +713,22 @@
 	debug(("orl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0x8080 | (dst << 9) | (MODE_d << 3) | src;
+	WOUT(0x8080 | (dst << 9) | (MODE_d << 3) | src);
 }
 
 static inline void
 op_pea_l(int addr)
 {
 	debug(("pea 0x%08x\n", addr));
-	WOUT = 0x4840 | MODE_src_absl;
-	LOUT = addr;
+	WOUT(0x4840 | MODE_src_absl);
+	LOUT(addr);
 }
 
 static inline void
 op_rts(void)
 {
 	debug(("rts\n"));
-	WOUT = 0x4E75;
+	WOUT(0x4E75);
 }
 
 static inline void
@@ -751,8 +736,8 @@
 {
 	debug(("subl #%d, %s\n", imm, regname(dst)));
 	assert_dreg(dst);
-	WOUT = 0x9080 | (dst << 9) | MODE_src_imm;
-	LOUT = imm;
+	WOUT(0x9080 | (dst << 9) | MODE_src_imm);
+	LOUT(imm);
 }
 
 static inline void
@@ -761,7 +746,7 @@
 	debug(("subl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0x9080 | (dst << 9) | (MODE_d << 3) | src;
+	WOUT(0x9080 | (dst << 9) | (MODE_d << 3) | src);
 }
 
 static inline void
@@ -770,8 +755,8 @@
 	debug(("subaw #%d, %s\n", disp, regname(dst)));
 	assert_s16(disp);
 	assert_areg(dst);
-	WOUT = 0x90C0 | ((dst & 7) << 9) | MODE_src_imm;
-	WOUT = disp;
+	WOUT(0x90C0 | ((dst & 7) << 9) | MODE_src_imm);
+	WOUT(disp);
 }
 
 static inline void
@@ -780,7 +765,7 @@
 	debug(("subql #%d, %s\n", imm, regname(dst)));
 	assert(imm >= 1 && imm <= 8);
 	assert_dreg(dst);
-	WOUT = 0x5180 | ((imm & 7) << 9) | (MODE_d << 3) | dst;
+	WOUT(0x5180 | ((imm & 7) << 9) | (MODE_d << 3) | dst);
 }
 
 static inline void
@@ -789,7 +774,7 @@
 	debug(("subxl %s, %s\n", regname(src), regname(dst)));
 	assert_dreg(src);
 	assert_dreg(dst);
-	WOUT = 0x9180 | (dst << 9) | src;
+	WOUT(0x9180 | (dst << 9) | src);
 }
 
 static inline void
@@ -797,7 +782,7 @@
 {
 	debug(("tst %s\n", regname(src)));
 	assert_areg(src);
-	WOUT = 0x4A80 | (MODE_a << 3) | (src & 7);
+	WOUT(0x4A80 | (MODE_a << 3) | (src & 7));
 }
 
 static inline void
@@ -805,7 +790,7 @@
 {
 	debug(("tst %s\n", regname(src)));
 	assert_dreg(src);
-	WOUT = 0x4A80 | (MODE_d << 3) | (src & 7);
+	WOUT(0x4A80 | (MODE_d << 3) | (src & 7));
 }
 
 static inline void
@@ -813,7 +798,7 @@
 {
 	debug(("unlk %s\n", regname(areg)));
 	assert_areg(areg);
-	WOUT = 0x4E58 | (areg & 7);
+	WOUT(0x4E58 | (areg & 7));
 }
 
 /* --------------------------------------------------------------------- */
@@ -823,8 +808,8 @@
 {
 	assert_freg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9);
-	WOUT = ((src & 7) << 10) | ((dst & 7) << 7) | opmode;
+	WOUT(0xF000 | (COPROCID << 9));
+	WOUT(((src & 7) << 10) | ((dst & 7) << 7) | opmode);
 }
 
 static inline void
@@ -861,8 +846,8 @@
 	debug(("fmoves %s, (%s)\n", regname(src), regname(base)));
 	assert_freg(src);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7);
-	WOUT = 0x6400 | ((src & 7) << 7);
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7));
+	WOUT(0x6400 | ((src & 7) << 7));
 }
 
 static inline void
@@ -871,8 +856,8 @@
 	debug(("fmoves %s, -(%s)\n", regname(src), regname(base)));
 	assert_freg(src);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_predec << 3) | (base & 7);
-	WOUT = 0x6400 | ((src & 7) << 7);
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_predec << 3) | (base & 7));
+	WOUT(0x6400 | ((src & 7) << 7));
 }
 
 static inline void
@@ -882,9 +867,9 @@
 	assert_freg(src);
 	assert_areg(base);
 	assert_s16(disp);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0x6400 | ((src & 7) << 7);
-	WOUT = disp;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0x6400 | ((src & 7) << 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -893,8 +878,8 @@
 	debug(("fmoves %s, %s\n", regname(src), regname(dst)));
 	assert_freg(src);
 	assert_dreg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_d << 3) | (dst & 7);
-	WOUT = 0x6400 | ((src & 7) << 7);
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_d << 3) | (dst & 7));
+	WOUT(0x6400 | ((src & 7) << 7));
 }
 
 static inline void
@@ -903,8 +888,8 @@
 	debug(("fmoved %s, (%s)\n", regname(src), regname(base)));
 	assert_freg(src);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7);
-	WOUT = 0x7400 | ((src & 7) << 7);
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7));
+	WOUT(0x7400 | ((src & 7) << 7));
 }
 
 static inline void
@@ -913,8 +898,8 @@
 	debug(("fmoved %s, -(%s)\n", regname(src), regname(base)));
 	assert_freg(src);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_predec << 3) | (base & 7);
-	WOUT = 0x7400 | ((src & 7) << 7);
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_predec << 3) | (base & 7));
+	WOUT(0x7400 | ((src & 7) << 7));
 }
 
 static inline void
@@ -924,9 +909,9 @@
 	assert_freg(src);
 	assert_areg(base);
 	assert_s16(disp);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0x7400 | ((src & 7) << 7);
-	WOUT = disp;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0x7400 | ((src & 7) << 7));
+	WOUT(disp);
 }
 
 static inline void
@@ -935,8 +920,8 @@
 	debug(("fsmoves %s, %s\n", regname(src), regname(dst)));
  	assert_dreg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7);
-	WOUT = 0x4400 | ((dst & 7) << 7) | OPMODE_s;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7));
+	WOUT(0x4400 | ((dst & 7) << 7) | OPMODE_s);
 }
 
 static inline void
@@ -945,8 +930,8 @@
 	debug(("fsmoves (%s), %s\n", regname(base), regname(dst)));
  	assert_areg(base);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7);
-	WOUT = 0x4400 | ((dst & 7) << 7) | OPMODE_s;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7));
+	WOUT(0x4400 | ((dst & 7) << 7) | OPMODE_s);
 }
 
 static inline void
@@ -955,8 +940,8 @@
 	debug(("fdmoved (%s), %s\n", regname(base), regname(dst)));
  	assert_areg(base);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7);
-	WOUT = 0x5400 | ((dst & 7) << 7) | OPMODE_d;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_ind << 3) | (base & 7));
+	WOUT(0x5400 | ((dst & 7) << 7) | OPMODE_d);
 }
 
 static inline void
@@ -966,9 +951,9 @@
  	assert_areg(base);
 	assert_s16(disp);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0x4400 | ((dst & 7) << 7) | OPMODE_s;
-	WOUT = disp;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0x4400 | ((dst & 7) << 7) | OPMODE_s);
+	WOUT(disp);
 }
 
 static inline void
@@ -978,9 +963,9 @@
  	assert_areg(base);
 	assert_s16(disp);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0x5400 | ((dst & 7) << 7) | OPMODE_d;
-	WOUT = disp;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0x5400 | ((dst & 7) << 7) | OPMODE_d);
+	WOUT(disp);
 }
 
 static inline void
@@ -989,8 +974,8 @@
 	debug(("fsmovel %s, %s\n", regname(src), regname(dst)));
  	assert_dreg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7);
-	WOUT = 0x4000 | ((dst & 7) << 7) | OPMODE_s;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7));
+	WOUT(0x4000 | ((dst & 7) << 7) | OPMODE_s);
 }
 
 static inline void
@@ -999,8 +984,8 @@
 	debug(("fdmovel %s, %s\n", regname(src), regname(dst)));
  	assert_dreg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7);
-	WOUT = 0x4000 | ((dst & 7) << 7) | OPMODE_d;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_d << 3) | (src & 7));
+	WOUT(0x4000 | ((dst & 7) << 7) | OPMODE_d);
 }
 
 static inline void
@@ -1009,8 +994,8 @@
 	debug(("fsmovex %s, %s\n", regname(src), regname(dst)));
 	assert_freg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9); 
-	WOUT = ((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_s;
+	WOUT(0xF000 | (COPROCID << 9));
+	WOUT(((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_s);
 }
 
 static inline void
@@ -1019,8 +1004,8 @@
 	debug(("fdmovex %s, %s\n", regname(src), regname(dst)));
 	assert_freg(src);
 	assert_freg(dst);
-	WOUT = 0xF000 | (COPROCID << 9); 
-	WOUT = ((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_d;
+	WOUT(0xF000 | (COPROCID << 9));
+	WOUT(((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_d);
 }
 
 static inline void
@@ -1029,8 +1014,8 @@
 	debug(("fmovemx 0x%02x, %d(%s)\n", mask, disp, regname(base)));
 	assert_s16(disp);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0xD000 | mask;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0xD000 | mask);
 }
 
 static inline void
@@ -1039,8 +1024,8 @@
 	debug(("fmovemx %d(%s), 0x%02x\n", disp, regname(base), mask));
 	assert_s16(disp);
 	assert_areg(base);
-	WOUT = 0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7);
-	WOUT = 0xE000 | mask;
+	WOUT(0xF000 | (COPROCID << 9) | (MODE_inddisp << 3) | (base & 7));
+	WOUT(0xE000 | mask);
 }
 
 static inline void
@@ -1993,7 +1978,7 @@
 	jint val = const_int(2);
 
 	debug((".long %08x\n", val));
-	LOUT = val;
+	LOUT(val);
 }
 
 define_insn(build_code_ref, set_wordpc_xxC)
@@ -2005,7 +1990,7 @@
 	l->from = 0;
 
 	debug((".long ?\n"));
-	LOUT = 0;
+	LOUT(0);
 }
 
 /* --------------------------------------------------------------------- */
diff -Naur kaffe-snap-040708.orig/config/m68k/jit3-m68k.def kaffe-snap-040708/config/m68k/jit3-m68k.def
--- kaffe-snap-040708.orig/config/m68k/jit3-m68k.def	Tue Jun  1 02:15:10 2004
+++ kaffe-snap-040708/config/m68k/jit3-m68k.def	Tue Jul 13 19:35:19 2004
@@ -1126,7 +1126,7 @@
 	debug(("fsmovex %s, %s\n", regname(src), regname(dst)));
 	assert_freg(src);
 	assert_freg(dst);
-	WOUT(0xF000 | (COPROCID << 9)); 
+	WOUT(0xF000 | (COPROCID << 9));
 	WOUT(((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_s);
 }
 
@@ -1136,7 +1136,7 @@
 	debug(("fdmovex %s, %s\n", regname(src), regname(dst)));
 	assert_freg(src);
 	assert_freg(dst);
-	WOUT(0xF000 | (COPROCID << 9)); 
+	WOUT(0xF000 | (COPROCID << 9));
 	WOUT(((src & 7) << 10) | ((dst & 7) << 7) | OPMODE_d);
 }
 
diff -Naur kaffe-snap-040708.orig/kaffe/kaffevm/jit/funcs.c kaffe-snap-040708/kaffe/kaffevm/jit/funcs.c
--- kaffe-snap-040708.orig/kaffe/kaffevm/jit/funcs.c	Mon Jun 14 09:12:37 1999
+++ kaffe-snap-040708/kaffe/kaffevm/jit/funcs.c	Tue Jul 13 16:32:20 2004
@@ -8,7 +8,6 @@
  */
 
 #include "config.h"
-#include "debug.h"
 #include "config-std.h"
 #include "gtypes.h"
 #include "seq.h"
@@ -20,14 +19,14 @@
 #include "errors.h"
 #include "machine.h"
 #include "md.h"
+#include "debug.h"
 
 /* XXX: HUGE name clash: machine.h defines a define_insn for use in 
  * kaffe.def.  The define_insn below, however, is used in jit.def
  *
  * We must rename one or the other!
  */
-#undef define_insn
-
+#undef	define_insn
 #define	define_insn(n, i) void i (sequence* s)
 
 #define ALIGN(byte)							\
@@ -35,11 +34,34 @@
 		   ? CODEPC + (byte) - (CODEPC % (byte))		\
 		   : CODEPC))
 
-#define	OUT	(codeblock[CODEPC++])
-#define	BOUT	(*(uint8*)&codeblock[CODEPC++])
-#define	WOUT	(*(uint16*)&codeblock[(CODEPC += 2) - 2])
-#define	LOUT	(*(uint32*)&codeblock[(CODEPC += 4) - 4])
-#define	QOUT	(*(uint64*)&codeblock[(CODEPC += 8) - 8])
+#if defined(KAFFE_VMDEBUG)
+/*
+ * Print any labels that refer to the current address.
+ */
+static
+void printCodeLabels(void)
+{
+	label *il, *curr = 0;
+
+	while( (il = getInternalLabel(&curr, CODEPC)) )
+	{
+		kaffe_dprintf("%s:\n", il->name);
+	}
+}
+#undef OUT
+#define	OUT(v)	do { DBGEXPR(JIT,(void)printCodeLabels(),0),codeblock[CODEPC] = v; CODEPC++; } while (0)
+#define	BOUT(v)	do { DBGEXPR(JIT,(void)printCodeLabels(),0),*(uint8*)&codeblock[CODEPC] = v; CODEPC++; } while (0)
+#define	WOUT(v)	do { DBGEXPR(JIT,(void)printCodeLabels(),0),*(uint16*)&codeblock[CODEPC] = v; CODEPC += 2; } while (0)
+#define	LOUT(v)	do { DBGEXPR(JIT,(void)printCodeLabels(),0),*(uint32*)&codeblock[CODEPC] = v; CODEPC += 4; } while (0)
+#define	QOUT(v)	do { DBGEXPR(JIT,(void)printCodeLabels(),0),*(uint64*)&codeblock[CODEPC] = v; CODEPC += 8; } while (0)
+#else
+#undef OUT
+#define	OUT(v)	do { codeblock[CODEPC] = v; CODEPC++; } while (0)
+#define	BOUT(v)	do { *(uint8*)&codeblock[CODEPC] = v; CODEPC++; } while (0)
+#define	WOUT(v)	do { *(uint16*)&codeblock[CODEPC] = v; CODEPC += 2; } while (0)
+#define	LOUT(v)	do { *(uint32*)&codeblock[CODEPC] = v; CODEPC += 4; } while (0)
+#define	QOUT(v)	do { *(uint64*)&codeblock[CODEPC] = v; CODEPC += 8; } while (0)
+#endif
 
 #include "jit.def"
 #include "trampolines.c"




More information about the kaffe mailing list