Changeset 996

Show
Ignore:
Timestamp:
03/04/07 13:28:49 (2 years ago)
Author:
dp
Message:

libemu

  • fix sib byte parsing, base was short one bit
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libemu/trunk/include/emu/emu_cpu_data.h

    r989 r996  
    8989#define SIB_SCALE(x) (((x) >> 6) & 3) 
    9090#define SIB_INDEX(x) (((x) >> 3) & 7) 
    91 #define SIB_BASE(x) ((x) & 3
     91#define SIB_BASE(x) ((x) & 7
    9292 
    9393#define PREFIX_ADSIZE (1 << 0) 
  • libemu/trunk/testsuite/instrtest.c

    r995 r996  
    3232        int nasm_force; 
    3333        int steps; 
     34        int testnumber; 
    3435} opts; 
    3536 
     
    868869                .instr = "mov eax, 0xffffffff", 
    869870                .out_state.reg = {0xffffffff,0,0,0,0,0,0,0}, 
     871        }, 
     872        { 
     873                .instr = "mov eax, [esp+0x24]", 
     874                .in_state.mem_state = {0xffffff24, 0xfefefefe}, 
     875                .in_state.reg = {0,0,0,0,0xffffff00,0,0,0}, 
     876                .out_state.mem_state = {0xffffff24, 0xfefefefe}, 
     877                .out_state.reg = {0xfefefefe,0,0,0,0xffffff00,0,0,0}, 
    870878        }, 
    871879}; 
     
    29762984"\xEE\xFE\xEE\xFE\xEE\xFE\xEE\xFE\xEE\xFE\xEE\xFE\xEE\xFE\xEE\xFE"; 
    29772985 
    2978 int test(
     2986int test(int n
    29792987{ 
    29802988        int i=0; 
     
    29852993        for (i=0;i<sizeof(tests)/sizeof(struct instr_test);i++) 
    29862994        { 
     2995                if( n != -1 && i != n ) 
     2996                        continue; 
     2997                         
    29872998                int failed = 0; 
    29882999 
    29893000 
    2990                 printf("testing '%s' \t",tests[i].instr); 
     3001                printf("testing (#%d) '%s' \t", i, tests[i].instr); 
    29913002                int j=0; 
    29923003 
     
    31833194 
    31843195        opts.steps = 1; 
     3196        opts.testnumber = -1; 
    31853197 
    31863198        while ( 1 ) 
     
    31923204                        {"nasm-force"           , 0, 0, 'n'}, 
    31933205                        {"steps"                        , 1, 0, 's'}, 
     3206                        {"testnumber"           , 1, 0, 't'}, 
    31943207                        {0, 0, 0, 0} 
    31953208                }; 
     
    32133226                        break; 
    32143227 
     3228                case 't': 
     3229                        opts.testnumber = atoi(optarg); 
     3230                        break; 
     3231 
    32153232 
    32163233                default: 
     
    32253242                return -1; 
    32263243 
    3227         if ( test() != 0 ) 
     3244        if ( test(opts.testnumber) != 0 ) 
    32283245                return -1; 
    32293246