| // RUN: not llvm-mc -triple x86_64-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=64 %s | |
| // RUN: FileCheck --check-prefix=ERR64 < %t.err %s | |
| // RUN: not llvm-mc -triple i386-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=32 %s | |
| // RUN: FileCheck --check-prefix=ERR32 < %t.err %s | |
| // RUN: not llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s 2> %t.err | FileCheck --check-prefix=16 %s | |
| // RUN: FileCheck --check-prefix=ERR16 < %t.err %s | |
| ret | |
| // 64: retq | |
| // 64: encoding: [0xc3] | |
| // 32: retl | |
| // 32: encoding: [0xc3] | |
| // 16: retw | |
| // 16: encoding: [0xc3] | |
| retw | |
| // 64: retw | |
| // 64: encoding: [0x66,0xc3] | |
| // 32: retw | |
| // 32: encoding: [0x66,0xc3] | |
| // 16: retw | |
| // 16: encoding: [0xc3] | |
| retl | |
| // ERR64: error: instruction requires: Not 64-bit mode | |
| // 32: retl | |
| // 32: encoding: [0xc3] | |
| // 16: retl | |
| // 16: encoding: [0x66,0xc3] | |
| retq | |
| // 64: retq | |
| // 64: encoding: [0xc3] | |
| // ERR32: error: instruction requires: 64-bit mode | |
| // ERR16: error: instruction requires: 64-bit mode | |
| ret $0 | |
| // 64: retq $0 | |
| // 64: encoding: [0xc2,0x00,0x00] | |
| // 32: retl $0 | |
| // 32: encoding: [0xc2,0x00,0x00] | |
| // 16: retw $0 | |
| // 16: encoding: [0xc2,0x00,0x00] | |
| retw $0 | |
| // 64: retw $0 | |
| // 64: encoding: [0x66,0xc2,0x00,0x00] | |
| // 32: retw $0 | |
| // 32: encoding: [0x66,0xc2,0x00,0x00] | |
| // 16: retw $0 | |
| // 16: encoding: [0xc2,0x00,0x00] | |
| retl $0 | |
| // ERR64: error: instruction requires: Not 64-bit mode | |
| // 32: retl $0 | |
| // 32: encoding: [0xc2,0x00,0x00] | |
| // 16: retl $0 | |
| // 16: encoding: [0x66,0xc2,0x00,0x00] | |
| retq $0 | |
| // 64: retq $0 | |
| // 64: encoding: [0xc2,0x00,0x00] | |
| // ERR32: error: instruction requires: 64-bit mode | |
| // ERR16: error: instruction requires: 64-bit mode | |
| retn | |
| // 64: retq | |
| // 64: encoding: [0xc3] | |
| // 32: retl | |
| // 32: encoding: [0xc3] | |
| // 16: retw | |
| // 16: encoding: [0xc3] | |
| retn $0 | |
| // 64: retq $0 | |
| // 64: encoding: [0xc2,0x00,0x00] | |
| // 32: retl $0 | |
| // 32: encoding: [0xc2,0x00,0x00] | |
| // 16: retw $0 | |
| // 16: encoding: [0xc2,0x00,0x00] | |
| lret | |
| // 64: lretl | |
| // 64: encoding: [0xcb] | |
| // 32: lretl | |
| // 32: encoding: [0xcb] | |
| // 16: lretw | |
| // 16: encoding: [0xcb] | |
| lretw | |
| // 64: lretw | |
| // 64: encoding: [0x66,0xcb] | |
| // 32: lretw | |
| // 32: encoding: [0x66,0xcb] | |
| // 16: lretw | |
| // 16: encoding: [0xcb] | |
| lretl | |
| // 64: lretl | |
| // 64: encoding: [0xcb] | |
| // 32: lretl | |
| // 32: encoding: [0xcb] | |
| // 16: lretl | |
| // 16: encoding: [0x66,0xcb] | |
| lretq | |
| // 64: lretq | |
| // 64: encoding: [0x48,0xcb] | |
| // ERR32: error: instruction requires: 64-bit mode | |
| // ERR16: error: instruction requires: 64-bit mode | |
| lret $0 | |
| // 64: lretl $0 | |
| // 64: encoding: [0xca,0x00,0x00] | |
| // 32: lretl $0 | |
| // 32: encoding: [0xca,0x00,0x00] | |
| // 16: lretw $0 | |
| // 16: encoding: [0xca,0x00,0x00] | |
| lretw $0 | |
| // 64: lretw $0 | |
| // 64: encoding: [0x66,0xca,0x00,0x00] | |
| // 32: lretw $0 | |
| // 32: encoding: [0x66,0xca,0x00,0x00] | |
| // 16: lretw $0 | |
| // 16: encoding: [0xca,0x00,0x00] | |
| lretl $0 | |
| // 64: lretl $0 | |
| // 64: encoding: [0xca,0x00,0x00] | |
| // 32: lretl $0 | |
| // 32: encoding: [0xca,0x00,0x00] | |
| // 16: lretl $0 | |
| // 16: encoding: [0x66,0xca,0x00,0x00] | |
| lretq $0 | |
| // 64: lretq $0 | |
| // 64: encoding: [0x48,0xca,0x00,0x00] | |
| // ERR32: error: instruction requires: 64-bit mode | |
| // ERR16: error: instruction requires: 64-bit mode | |