Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Changeset 1304:b995c146366e

Show
Ignore:
Timestamp:
05/06/09 13:56:33 (3 years ago)
Author:
Christian Kamm <kamm incasoftware de>
Children:

1308:316e9ecfeb7d 1310:85b80c4fe48a

branch:
default
Message:

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

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gen/asm-x86-32.h

    r1303 r1304  
    14201420                    nextToken(); 
    14211421                } 
    1422         else if ( token->value == TOKint16 || token->value == TOKint32 ) 
    1423                 { 
    1424             //throw away the 'short' in "jle short label;". Works for 'long' also. 
    1425             operands[0] = operands[1]; 
    1426                     return; 
    1427                 } 
    14281422                else if ( token->value != TOKeof ) 
    14291423                { 
     
    27412735            Expression * e; 
    27422736            Identifier * ident = NULL; 
     2737 
     2738            // get rid of short/long prefixes for branches 
     2739            if (opTakesLabel() && (token->value == TOKint16 || token->value == TOKint64)) 
     2740                nextToken(); 
    27432741 
    27442742            switch ( token->value ) 
     
    28882886                    goto do_dollar; 
    28892887                    break; 
    2890             case TOKint16: 
    2891             case TOKint32: 
    2892             //This if for the 'short' in "jle short Label;" 
    2893             return Handled; 
    28942888                default: 
    28952889                    if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath ) 
  • gen/asm-x86-64.h

    r1303 r1304  
    15421542                    nextToken(); 
    15431543                } 
    1544                 else if ( token->value == TOKint16 || token->value == TOKint32 || token->value == TOKint64 ) 
    1545                 { 
    1546                     //throw away the 'short' in "jle short Label;". Works for long also. 
    1547                     operands[0] = operands[1]; 
    1548                     return; 
    1549                 } 
    15501544                else if ( token->value != TOKeof ) 
    15511545                { 
     
    28642858            Expression * e; 
    28652859            Identifier * ident = NULL; 
     2860 
     2861            // get rid of short/long prefixes for branches 
     2862            if (opTakesLabel() && (token->value == TOKint16 || token->value == TOKint64)) 
     2863                nextToken(); 
    28662864 
    28672865            switch ( token->value ) 
     
    30113009                    goto do_dollar; 
    30123010                    break; 
    3013                 case TOKint16: 
    3014                 case TOKint32: 
    3015                 case TOKint64: 
    3016                     //This is for the 'short' in "jle short Label;" 
    3017                     return Handled; 
    3018                     break; 
    30193011                default: 
    30203012                    if ( op == Op_FMath0 || op == Op_FdST0ST1 || op == Op_FMath ) 
Copyright © 2008, LDC Development Team.