From dd0e4224c93c1b94b7b9fd06e9ab08105e19845f Mon Sep 17 00:00:00 2001 From: Duncan Smith Date: Fri, 12 Nov 2010 22:34:36 -0800 Subject: Added support for local labels in opcodes I tried to use A68k's local label support, but I believe it was broken. Now I can use it, finally. :) --- opcodes.asm.m4 | 4 ++-- opcodes.inc.m4 | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/opcodes.asm.m4 b/opcodes.asm.m4 index 9f3a3fe..9e22715 100644 --- a/opcodes.asm.m4 +++ b/opcodes.asm.m4 @@ -332,14 +332,14 @@ OPCODE(10,` HOLD_INTS LOHI ebc subq.b #1,ebc - beq.s end_10 ; slooooow + beq.s local(end) ; slooooow FETCHBI d1 move.l epc,a0 bsr underef add.w d1,d0 ; ??? Can I avoid underef/deref cycle? bsr deref move.l a0,epc -end_10: +local(end): HILO ebc CONTINUE_INTS ') ;nok diff --git a/opcodes.inc.m4 b/opcodes.inc.m4 index d7343e8..cbaafb9 100644 --- a/opcodes.inc.m4 +++ b/opcodes.inc.m4 @@ -2,6 +2,10 @@ dnl # change the comments to match the assembler. Prevents/reduces dnl # confusion, since m4 likes to use ' as a quoting character. changecom(;)dnl define(`OPCODE',` START +dnl # This little bit of trickery lets me define a local label. +dnl # Calling local(end) inside of OPCODE(10, ...) will expand to +dnl # end_10, and is undefined everywhere else. +define(`local',$`'1_``$1'')dnl `emu_op_'$1`:' $2 TIME $3 -- cgit v1.2.3