Ignore short/long prefix of labels instead of ignoring the whole branch

instruction!
This commit is contained in:
Christian Kamm
2009-05-06 19:56:33 +02:00
parent c57f6212a6
commit 108309a579
2 changed files with 8 additions and 22 deletions
+4 -10
View File
@@ -1419,12 +1419,6 @@ namespace AsmParserx8632
{ {
nextToken(); 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 ) else if ( token->value != TOKeof )
{ {
ok = false; ok = false;
@@ -2741,6 +2735,10 @@ namespace AsmParserx8632
Expression * e; Expression * e;
Identifier * ident = NULL; Identifier * ident = NULL;
// get rid of short/long prefixes for branches
if (opTakesLabel() && (token->value == TOKint16 || token->value == TOKint64))
nextToken();
switch ( token->value ) switch ( token->value )
{ {
case TOKint32v: case TOKint32v:
@@ -2887,10 +2885,6 @@ namespace AsmParserx8632
ident = Id::__dollar; ident = Id::__dollar;
goto do_dollar; goto do_dollar;
break; break;
case TOKint16:
case TOKint32:
//This if for the 'short' in "jle short Label;"
return Handled;
default: default:
if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath ) if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath )
return Handled; return Handled;
+4 -12
View File
@@ -1541,12 +1541,6 @@ namespace AsmParserx8664
{ {
nextToken(); nextToken();
} }
else if ( token->value == TOKint16 || token->value == TOKint32 || token->value == TOKint64 )
{
//throw away the 'short' in "jle short Label;". Works for long also.
operands[0] = operands[1];
return;
}
else if ( token->value != TOKeof ) else if ( token->value != TOKeof )
{ {
ok = false; ok = false;
@@ -2864,6 +2858,10 @@ namespace AsmParserx8664
Expression * e; Expression * e;
Identifier * ident = NULL; Identifier * ident = NULL;
// get rid of short/long prefixes for branches
if (opTakesLabel() && (token->value == TOKint16 || token->value == TOKint64))
nextToken();
switch ( token->value ) switch ( token->value )
{ {
case TOKint32v: case TOKint32v:
@@ -3010,12 +3008,6 @@ namespace AsmParserx8664
ident = Id::__dollar; ident = Id::__dollar;
goto do_dollar; goto do_dollar;
break; break;
case TOKint16:
case TOKint32:
case TOKint64:
//This is for the 'short' in "jle short Label;"
return Handled;
break;
default: default:
if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath ) if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath )
return Handled; return Handled;