diff gen/asm-x86-32.h @ 1304:b995c146366e

Ignore short/long prefix of labels instead of ignoring the whole branch instruction!
author Christian Kamm <kamm incasoftware de>
date Wed, 06 May 2009 19:56:33 +0200
parents c250e03d8a5b
children 85b80c4fe48a
line wrap: on
line diff
--- a/gen/asm-x86-32.h	Wed May 06 18:54:20 2009 +0200
+++ b/gen/asm-x86-32.h	Wed May 06 19:56:33 2009 +0200
@@ -1419,12 +1419,6 @@
                 {
                     nextToken();
                 }
-		else if ( token->value == TOKint16 || token->value == TOKint32 )
-                {
-		    //throw away the 'short' in "jle short label;". Works for 'long' also.
-		    operands[0] = operands[1];
-                    return;
-                }
                 else if ( token->value != TOKeof )
                 {
                     ok = false;
@@ -2741,6 +2735,10 @@
             Expression * e;
             Identifier * ident = NULL;
 
+            // get rid of short/long prefixes for branches
+            if (opTakesLabel() && (token->value == TOKint16 || token->value == TOKint64))
+                nextToken();
+
             switch ( token->value )
             {
                 case TOKint32v:
@@ -2887,10 +2885,6 @@
                     ident = Id::__dollar;
                     goto do_dollar;
                     break;
-	        case TOKint16:
-	        case TOKint32:
-		    //This if for the 'short' in "jle short Label;"
-		    return Handled;
                 default:
                     if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath )
                         return Handled;