Mercurial > projects > ldc
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 } |