OLD | NEW |
(Empty) | |
| 1 BITS: 64 |
| 2 OUTCOME: invalid |
| 3 |
| 4 # Tests that push operand sizes work correctly. |
| 5 |
| 6 # The following tests the default size (which is 4 bytes). |
| 7 asm: pushq $0x6050403 |
| 8 hex: 68 03 04 05 06 |
| 9 |
| 10 |
| 11 # The following tests that rex.w doesn't effect the size. |
| 12 asm: rex.W pushq $0x6050403 |
| 13 hex: 48 68 03 04 05 06 |
| 14 |
| 15 |
| 16 # The following tests that data66 defines the size as 2 bytes. |
| 17 asm: data16; .byte 0x68; .byte 0x3; .byte 0x4 |
| 18 hex: 66 68 03 04 |
| 19 |
| 20 |
| 21 # The following shows that we don't allow rex.w and a data 66 prefix. |
| 22 asm: data16; rex.W; .byte 0x68; .byte 0x3; .byte 0x4 |
| 23 hex: 66 48 68 03 04 |
| 24 nc_out: ERROR: Opcode sequence doesn't define a valid x86 instruction |
| 25 nc_out: ERROR: Use of DATA16 (66) prefix for instruction not allowed by Native C
lient |
| 26 nc_out: [at +3] ERROR: Invalid base register in memory offset |
| 27 |
| 28 |
| 29 asm: nop; nop; nop; nop |
| 30 hex: 90 90 90 90 |
| 31 |
OLD | NEW |