comparison gen/asm-x86-64.h @ 1078:9c63438c3207

Fix for asm { jle short Lret; }, used by Tango since dmd accepts the 'short'. We just throw the 'short/long' away right now.
author Kelly Wilson <wilsonk cpsc.ucalgary.ca>
date Mon, 09 Mar 2009 20:11:42 -0600
parents 7f0e5ae75fcc
children c1e9f612e2e2
comparison
equal deleted inserted replaced
1077:bb57632d27ea 1078:9c63438c3207
1497 stmt->error ( "too many operands for instruction" ); 1497 stmt->error ( "too many operands for instruction" );
1498 break; 1498 break;
1499 } 1499 }
1500 1500
1501 if ( token->value == TOKcomma ) 1501 if ( token->value == TOKcomma )
1502 {
1502 nextToken(); 1503 nextToken();
1504 }
1505 else if ( token->value == TOKint16 || token->value == TOKint32 || token->value == TOKint64 )
1506 {
1507 //throw away the 'short' in "jle short Label;". Works for long also.
1508 operands[0] = operands[1];
1509 return;
1510 }
1503 else if ( token->value != TOKeof ) 1511 else if ( token->value != TOKeof )
1504 { 1512 {
1505 ok = false; 1513 ok = false;
1506 stmt->error ( "expected comma after operand" ); 1514 stmt->error ( "expected comma after operand" );
1507 return; 1515 return;
2908 break; 2916 break;
2909 case TOKdollar: 2917 case TOKdollar:
2910 nextToken(); 2918 nextToken();
2911 ident = Id::__dollar; 2919 ident = Id::__dollar;
2912 goto do_dollar; 2920 goto do_dollar;
2921 break;
2922 case TOKint16:
2923 case TOKint32:
2924 case TOKint64:
2925 //This is for the 'short' in "jle short Label;"
2926 return Handled;
2913 break; 2927 break;
2914 default: 2928 default:
2915 invalidExpression(); 2929 invalidExpression();
2916 return Handled; 2930 return Handled;
2917 } 2931 }