Browse Source
2008-05-02 H.J. Lu <hongjiu.lu@intel.com> * NEWS: Mention XSAVE, EPT and MOVBE. * config/tc-i386.c (cpu_arch): Add .movbe and .ept. (md_show_usage): Add .movbe and .ept. * doc/c-i386.texi: Add movbe and ept to -march=. Document .movbe and .ept. gas/testsuite/ 2008-05-02 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/i386.exp: Run movbe, movbe-intel, inval-movbe, ept, ept-intel, inval-ept, x86-64-movbe, x86-64-movbe-intel, x86-64-inval-movbe. x86-64-ept, x86-64-ept-intel and x86-64-inval-ept. * gas/i386/arch-10.s: Add movbe and invept. * gas/i386/x86-64-arch-2.s: Likewise. * gas/i386/ept.d: New file * gas/i386/ept-intel.d: Likewise. * gas/i386/ept.s: Likewise. * gas/i386/inval-ept.l: Likewise. * gas/i386/inval-ept.s: Likewise. * gas/i386/inval-movbe.l: Likewise. * gas/i386/inval-movbe.s: Likewise. * gas/i386/movbe.d: Likewise. * gas/i386/movbe-intel.d: Likewise. * gas/i386/movbe.s: Likewise. * gas/i386/x86-64-inval-ept.l: Likewise. * gas/i386/x86-64-inval-ept.s: Likewise. * gas/i386/x86-64-inval-movbe.l: Likewise. * gas/i386/x86-64-inval-movbe.s: Likewise. * gas/i386/x86-64-ept.d: Likewise. * gas/i386/x86-64-ept-intel.d: Likewise. * gas/i386/x86-64-ept.s: Likewise. * gas/i386/x86-64-movbe.d: Likewise. * gas/i386/x86-64-movbe-intel.d: Likewise. * gas/i386/x86-64-movbe.s: Likewise. * gas/i386/arch-10.d: Updated. * gas/i386/arch-10-1.l: Likewise. * gas/i386/arch-10-2.l: Likewise. * gas/i386/arch-10-3.l: Likewise. * gas/i386/arch-10-4.l: Likewise. * gas/i386/x86-64-arch-2.d: Likewise. opcodes/ 2008-05-02 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (MOVBE_Fixup): New. (Mo): Likewise. (PREFIX_0F3880): Likewise. (PREFIX_0F3881): Likewise. (PREFIX_0F38F0): Updated. (prefix_table): Add PREFIX_0F3880 and PREFIX_0F3881. Update PREFIX_0F38F0 and PREFIX_0F38F1 for movbe. (three_byte_table): Use PREFIX_0F3880 and PREFIX_0F3881. * i386-gen.c (cpu_flag_init): Add CPU_MOVBE_FLAGS and CPU_EPT_FLAGS. (cpu_flags): Add CpuMovbe and CpuEPT. * i386-opc.h (CpuMovbe): New. (CpuEPT): Likewise. (CpuLM): Updated. (i386_cpu_flags): Add cpumovbe and cpuept. * i386-opc.tbl: Add entries for movbe and EPT instructions. * i386-init.h: Regenerated. * i386-tbl.h: Likewise.msnyder-reverse-20080609-branch
41 changed files with 3246 additions and 2547 deletions
@ -0,0 +1,14 @@ |
|||
#objdump: -dwMintel |
|||
#name: i386 EPT (Intel disassembly) |
|||
#source: ept.s |
|||
|
|||
.*: +file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <_start>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept ebx,OWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid ebx,OWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept ebx,OWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid ebx,OWORD PTR \[ecx\] |
|||
#pass |
|||
@ -0,0 +1,13 @@ |
|||
#objdump: -dw |
|||
#name: i386 EPT |
|||
|
|||
.*: file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <_start>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid \(%ecx\),%ebx |
|||
#pass |
|||
@ -0,0 +1,9 @@ |
|||
# Check EPT instructions |
|||
.text |
|||
_start: |
|||
invept (%ecx), %ebx |
|||
invvpid (%ecx), %ebx |
|||
|
|||
.intel_syntax noprefix |
|||
invept ebx, oword ptr [ecx] |
|||
invvpid ebx, oword ptr [ecx] |
|||
@ -0,0 +1,33 @@ |
|||
.*: Assembler messages: |
|||
.*:4: Error: .* |
|||
.*:5: Error: .* |
|||
.*:6: Error: .* |
|||
.*:7: Error: .* |
|||
.*:8: Error: .* |
|||
.*:9: Error: .* |
|||
.*:12: Error: .* |
|||
.*:13: Error: .* |
|||
.*:14: Error: .* |
|||
.*:15: Error: .* |
|||
.*:16: Error: .* |
|||
.*:17: Error: .* |
|||
GAS LISTING .* |
|||
|
|||
|
|||
[ ]*1[ ]+\# Check illegal EPT instructions |
|||
[ ]*2[ ]+\.text |
|||
[ ]*3[ ]+_start: |
|||
[ ]*4[ ]+invept \(%ecx\), %bx |
|||
[ ]*5[ ]+invept %ebx, \(%ecx\) |
|||
[ ]*6[ ]+invept %ebx, %ecx |
|||
[ ]*7[ ]+invvpid \(%ecx\), %bx |
|||
[ ]*8[ ]+invvpid %ebx, \(%ecx\) |
|||
[ ]*9[ ]+invvpid %ebx, %ecx |
|||
[ ]*10[ ]+ |
|||
[ ]*11[ ]+\.intel_syntax noprefix |
|||
[ ]*12[ ]+invept bx, oword ptr \[ecx\] |
|||
[ ]*13[ ]+invept oword ptr \[ecx\], ebx |
|||
[ ]*14[ ]+invept ecx, ebx |
|||
[ ]*15[ ]+invvpid bx, oword ptr \[ecx\] |
|||
[ ]*16[ ]+invvpid oword ptr \[ecx\], ebx |
|||
[ ]*17[ ]+invvpid ecx, ebx |
|||
@ -0,0 +1,17 @@ |
|||
# Check illegal EPT instructions |
|||
.text |
|||
_start: |
|||
invept (%ecx), %bx |
|||
invept %ebx, (%ecx) |
|||
invept %ebx, %ecx |
|||
invvpid (%ecx), %bx |
|||
invvpid %ebx, (%ecx) |
|||
invvpid %ebx, %ecx |
|||
|
|||
.intel_syntax noprefix |
|||
invept bx, oword ptr [ecx] |
|||
invept oword ptr [ecx], ebx |
|||
invept ecx, ebx |
|||
invvpid bx, oword ptr [ecx] |
|||
invvpid oword ptr [ecx], ebx |
|||
invvpid ecx, ebx |
|||
@ -0,0 +1,25 @@ |
|||
.*: Assembler messages: |
|||
.*:4: Error: .* |
|||
.*:5: Error: .* |
|||
.*:6: Error: .* |
|||
.*:7: Error: .* |
|||
.*:10: Error: .* |
|||
.*:11: Error: .* |
|||
.*:12: Error: .* |
|||
.*:13: Error: .* |
|||
GAS LISTING .* |
|||
|
|||
|
|||
[ ]*1[ ]+\# Check illegal movbe |
|||
[ ]*2[ ]+\.text |
|||
[ ]*3[ ]+foo: |
|||
[ ]*4[ ]+movbe \(%ecx\),%bl |
|||
[ ]*5[ ]+movbe %ecx,%ebx |
|||
[ ]*6[ ]+movbe %bx,%ecx |
|||
[ ]*7[ ]+movbe %bl,\(%ecx\) |
|||
[ ]*8[ ]+ |
|||
[ ]*9[ ]+\.intel_syntax noprefix |
|||
[ ]*10[ ]+movbe bl, byte ptr \[ecx\] |
|||
[ ]*11[ ]+movbe ebx, ecx |
|||
[ ]*12[ ]+movbe ecx, bx |
|||
[ ]*13[ ]+movbe byte ptr \[ecx\], bl |
|||
@ -0,0 +1,13 @@ |
|||
# Check illegal movbe |
|||
.text |
|||
foo: |
|||
movbe (%ecx),%bl |
|||
movbe %ecx,%ebx |
|||
movbe %bx,%ecx |
|||
movbe %bl,(%ecx) |
|||
|
|||
.intel_syntax noprefix |
|||
movbe bl, byte ptr [ecx] |
|||
movbe ebx, ecx |
|||
movbe ecx, bx |
|||
movbe byte ptr [ecx], bl |
|||
@ -0,0 +1,22 @@ |
|||
#objdump: -dwMintel |
|||
#name: i386 movbe (Intel disassembly) |
|||
#source: movbe.s |
|||
|
|||
.*: +file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <foo>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe bx,WORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe ebx,DWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe WORD PTR \[ecx\],bx |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe DWORD PTR \[ecx\],ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe bx,WORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe ebx,DWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe WORD PTR \[ecx\],bx |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe DWORD PTR \[ecx\],ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe bx,WORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe ebx,DWORD PTR \[ecx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe WORD PTR \[ecx\],bx |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe DWORD PTR \[ecx\],ebx |
|||
#pass |
|||
@ -0,0 +1,21 @@ |
|||
#objdump: -dw |
|||
#name: i386 movbe |
|||
|
|||
.*: file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <foo>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe \(%ecx\),%bx |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe %bx,\(%ecx\) |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe %ebx,\(%ecx\) |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe \(%ecx\),%bx |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe %bx,\(%ecx\) |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe %ebx,\(%ecx\) |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe \(%ecx\),%bx |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe %bx,\(%ecx\) |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe %ebx,\(%ecx\) |
|||
#pass |
|||
@ -0,0 +1,17 @@ |
|||
# Check movbe |
|||
.text |
|||
foo: |
|||
movbe (%ecx),%bx |
|||
movbe (%ecx),%ebx |
|||
movbe %bx,(%ecx) |
|||
movbe %ebx,(%ecx) |
|||
movbew (%ecx),%bx |
|||
movbel (%ecx),%ebx |
|||
movbew %bx,(%ecx) |
|||
movbel %ebx,(%ecx) |
|||
|
|||
.intel_syntax noprefix |
|||
movbe bx, word ptr [ecx] |
|||
movbe ebx, dword ptr [ecx] |
|||
movbe word ptr [ecx], bx |
|||
movbe dword ptr [ecx], ebx |
|||
@ -0,0 +1,18 @@ |
|||
#objdump: -drwMintel |
|||
#name: x86-64 EPT (Intel mode) |
|||
#source: x86-64-ept.s |
|||
|
|||
.*: +file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <_start>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept rbx,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 80 19 invept r11,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid rbx,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 81 19 invvpid r11,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept rbx,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 80 19 invept r11,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid rbx,OWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 81 19 invvpid r11,OWORD PTR \[rcx\] |
|||
#pass |
|||
@ -0,0 +1,17 @@ |
|||
#objdump: -dw |
|||
#name: x86-64 EPT |
|||
|
|||
.*: file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <_start>: |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 80 19 invept \(%rcx\),%r11 |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid \(%rcx\),%rbx |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 81 19 invvpid \(%rcx\),%r11 |
|||
[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 80 19 invept \(%rcx\),%r11 |
|||
[ ]*[a-f0-9]+: 66 0f 38 81 19 invvpid \(%rcx\),%rbx |
|||
[ ]*[a-f0-9]+: 66 44 0f 38 81 19 invvpid \(%rcx\),%r11 |
|||
#pass |
|||
@ -0,0 +1,13 @@ |
|||
# Check 64bit EPT instructions |
|||
.text |
|||
_start: |
|||
invept (%rcx), %rbx |
|||
invept (%rcx), %r11 |
|||
invvpid (%rcx), %rbx |
|||
invvpid (%rcx), %r11 |
|||
|
|||
.intel_syntax noprefix |
|||
invept rbx, oword ptr [rcx] |
|||
invept r11, oword ptr [rcx] |
|||
invvpid rbx, oword ptr [rcx] |
|||
invvpid r11, oword ptr [rcx] |
|||
@ -0,0 +1,41 @@ |
|||
.*: Assembler messages: |
|||
.*:4: Error: .* |
|||
.*:5: Error: .* |
|||
.*:6: Error: .* |
|||
.*:7: Error: .* |
|||
.*:8: Error: .* |
|||
.*:9: Error: .* |
|||
.*:10: Error: .* |
|||
.*:11: Error: .* |
|||
.*:14: Error: .* |
|||
.*:15: Error: .* |
|||
.*:16: Error: .* |
|||
.*:17: Error: .* |
|||
.*:18: Error: .* |
|||
.*:19: Error: .* |
|||
.*:20: Error: .* |
|||
.*:21: Error: .* |
|||
GAS LISTING .* |
|||
|
|||
|
|||
[ ]*1[ ]+\# Check illegal EPT instructions in 64bit mode\. |
|||
[ ]*2[ ]+\.text |
|||
[ ]*3[ ]+_start: |
|||
[ ]*4[ ]+invept \(%rcx\), %bx |
|||
[ ]*5[ ]+invept \(%rcx\), %ebx |
|||
[ ]*6[ ]+invept %rbx, \(%rcx\) |
|||
[ ]*7[ ]+invept %rbx, %rcx |
|||
[ ]*8[ ]+invvpid \(%rcx\), %bx |
|||
[ ]*9[ ]+invvpid \(%rcx\), %ebx |
|||
[ ]*10[ ]+invvpid %rbx, \(%rcx\) |
|||
[ ]*11[ ]+invvpid %rbx, %rcx |
|||
[ ]*12[ ]+ |
|||
[ ]*13[ ]+\.intel_syntax noprefix |
|||
[ ]*14[ ]+invept bx, oword ptr \[rcx\] |
|||
[ ]*15[ ]+invept ebx, oword ptr \[rcx\] |
|||
[ ]*16[ ]+invept oword ptr \[rcx\], rbx |
|||
[ ]*17[ ]+invept rcx, rbx |
|||
[ ]*18[ ]+invvpid bx, oword ptr \[rcx\] |
|||
[ ]*19[ ]+invvpid ebx, oword ptr \[rcx\] |
|||
[ ]*20[ ]+invvpid oword ptr \[rcx\], rbx |
|||
[ ]*21[ ]+invvpid rcx, rbx |
|||
@ -0,0 +1,21 @@ |
|||
# Check illegal EPT instructions in 64bit mode. |
|||
.text |
|||
_start: |
|||
invept (%rcx), %bx |
|||
invept (%rcx), %ebx |
|||
invept %rbx, (%rcx) |
|||
invept %rbx, %rcx |
|||
invvpid (%rcx), %bx |
|||
invvpid (%rcx), %ebx |
|||
invvpid %rbx, (%rcx) |
|||
invvpid %rbx, %rcx |
|||
|
|||
.intel_syntax noprefix |
|||
invept bx, oword ptr [rcx] |
|||
invept ebx, oword ptr [rcx] |
|||
invept oword ptr [rcx], rbx |
|||
invept rcx, rbx |
|||
invvpid bx, oword ptr [rcx] |
|||
invvpid ebx, oword ptr [rcx] |
|||
invvpid oword ptr [rcx], rbx |
|||
invvpid rcx, rbx |
|||
@ -0,0 +1,29 @@ |
|||
.*: Assembler messages: |
|||
.*:4: Error: .* |
|||
.*:5: Error: .* |
|||
.*:6: Error: .* |
|||
.*:7: Error: .* |
|||
.*:8: Error: .* |
|||
.*:11: Error: .* |
|||
.*:12: Error: .* |
|||
.*:13: Error: .* |
|||
.*:14: Error: .* |
|||
.*:15: Error: .* |
|||
GAS LISTING .* |
|||
|
|||
|
|||
[ ]*1[ ]+\# Check illegal movbe in 64bit mode\. |
|||
[ ]*2[ ]+\.text |
|||
[ ]*3[ ]+foo: |
|||
[ ]*4[ ]+movbe \(%rcx\),%bl |
|||
[ ]*5[ ]+movbe %ecx,%ebx |
|||
[ ]*6[ ]+movbe %bx,%rcx |
|||
[ ]*7[ ]+movbe %rbx,%rcx |
|||
[ ]*8[ ]+movbe %bl,\(%rcx\) |
|||
[ ]*9[ ]+ |
|||
[ ]*10[ ]+\.intel_syntax noprefix |
|||
[ ]*11[ ]+movbe bl, byte ptr \[rcx\] |
|||
[ ]*12[ ]+movbe ebx, ecx |
|||
[ ]*13[ ]+movbe rcx, bx |
|||
[ ]*14[ ]+movbe rcx, rbx |
|||
[ ]*15[ ]+movbe byte ptr \[rcx\], bl |
|||
@ -0,0 +1,15 @@ |
|||
# Check illegal movbe in 64bit mode. |
|||
.text |
|||
foo: |
|||
movbe (%rcx),%bl |
|||
movbe %ecx,%ebx |
|||
movbe %bx,%rcx |
|||
movbe %rbx,%rcx |
|||
movbe %bl,(%rcx) |
|||
|
|||
.intel_syntax noprefix |
|||
movbe bl, byte ptr [rcx] |
|||
movbe ebx, ecx |
|||
movbe rcx, bx |
|||
movbe rcx, rbx |
|||
movbe byte ptr [rcx], bl |
|||
@ -0,0 +1,28 @@ |
|||
#objdump: -drwMintel |
|||
#name: x86-64 movbe (Intel mode) |
|||
#source: x86-64-movbe.s |
|||
|
|||
.*: +file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <foo>: |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f0 29 movbe r13w,WORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 45 0f 38 f0 29 movbe r13d,DWORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f0 29 movbe r13,QWORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f1 29 movbe WORD PTR \[r9\],r13w |
|||
[ ]*[a-f0-9]+: 45 0f 38 f1 29 movbe DWORD PTR \[r9\],r13d |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f1 29 movbe QWORD PTR \[r9\],r13 |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f0 29 movbe r13w,WORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 45 0f 38 f0 29 movbe r13d,DWORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f0 29 movbe r13,QWORD PTR \[r9\] |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f1 29 movbe WORD PTR \[r9\],r13w |
|||
[ ]*[a-f0-9]+: 45 0f 38 f1 29 movbe DWORD PTR \[r9\],r13d |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f1 29 movbe QWORD PTR \[r9\],r13 |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe bx,WORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe ebx,DWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 48 0f 38 f0 19 movbe rbx,QWORD PTR \[rcx\] |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe WORD PTR \[rcx\],bx |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe DWORD PTR \[rcx\],ebx |
|||
[ ]*[a-f0-9]+: 48 0f 38 f1 19 movbe QWORD PTR \[rcx\],rbx |
|||
#pass |
|||
@ -0,0 +1,27 @@ |
|||
#objdump: -dw |
|||
#name: x86-64 movbe |
|||
|
|||
.*: file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <foo>: |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f0 29 movbe \(%r9\),%r13w |
|||
[ ]*[a-f0-9]+: 45 0f 38 f0 29 movbe \(%r9\),%r13d |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f0 29 movbe \(%r9\),%r13 |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f1 29 movbe %r13w,\(%r9\) |
|||
[ ]*[a-f0-9]+: 45 0f 38 f1 29 movbe %r13d,\(%r9\) |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f1 29 movbe %r13,\(%r9\) |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f0 29 movbe \(%r9\),%r13w |
|||
[ ]*[a-f0-9]+: 45 0f 38 f0 29 movbe \(%r9\),%r13d |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f0 29 movbe \(%r9\),%r13 |
|||
[ ]*[a-f0-9]+: 66 45 0f 38 f1 29 movbe %r13w,\(%r9\) |
|||
[ ]*[a-f0-9]+: 45 0f 38 f1 29 movbe %r13d,\(%r9\) |
|||
[ ]*[a-f0-9]+: 4d 0f 38 f1 29 movbe %r13,\(%r9\) |
|||
[ ]*[a-f0-9]+: 66 0f 38 f0 19 movbe \(%rcx\),%bx |
|||
[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx |
|||
[ ]*[a-f0-9]+: 48 0f 38 f0 19 movbe \(%rcx\),%rbx |
|||
[ ]*[a-f0-9]+: 66 0f 38 f1 19 movbe %bx,\(%rcx\) |
|||
[ ]*[a-f0-9]+: 0f 38 f1 19 movbe %ebx,\(%rcx\) |
|||
[ ]*[a-f0-9]+: 48 0f 38 f1 19 movbe %rbx,\(%rcx\) |
|||
#pass |
|||
@ -0,0 +1,23 @@ |
|||
# Check 64bit movbe |
|||
.text |
|||
foo: |
|||
movbe (%r9),%r13w |
|||
movbe (%r9),%r13d |
|||
movbe (%r9),%r13 |
|||
movbe %r13w,(%r9) |
|||
movbe %r13d,(%r9) |
|||
movbe %r13,(%r9) |
|||
movbew (%r9),%r13w |
|||
movbel (%r9),%r13d |
|||
movbeq (%r9),%r13 |
|||
movbew %r13w,(%r9) |
|||
movbel %r13d,(%r9) |
|||
movbeq %r13,(%r9) |
|||
|
|||
.intel_syntax noprefix |
|||
movbe bx, word ptr [rcx] |
|||
movbe ebx, dword ptr [rcx] |
|||
movbe rbx, qword ptr [rcx] |
|||
movbe word ptr [rcx], bx |
|||
movbe dword ptr [rcx], ebx |
|||
movbe qword ptr [rcx], rbx |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue