X86: Disassemble primary opcode map's group 2 ModRM.reg == 6 aliases correctly
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-opcode.s
index 8d3de00a8e68881b96f95db651aa77df1f7f815a..5df5d13f7814eb7270292f64f8d6973ccad76fee 100644 (file)
        # Conditionals
 
        # LOOP
+       LOOP .                        #  --  --  -- --   E2 FE                           ; RCX used as counter.
+       LOOPq .                       #  --  --  -- --   E2 FE                           ; RCX used as counter.
+       LOOPl .                       #  --  67  -- --   E2 FD                           ; ECX used as counter.
 
 
        # Jcc
-                                     #  66  --  -- --   77 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
-                                     #  66  --  -- --   0F 87 F9 FF FF FF               ; A16 override: (Addr64) = ZEXT(Addr16)
+                                     #  66  --  -- --   77 FD                           ; O16 override: (Addr64) = ZEXT(Addr16)
+                                     #  66  --  -- --   0F 87 F9 FF FF FF               ; O16 override: (Addr64) = ZEXT(Addr16)
 
        # J*CXZ
-                                     #  66  67  -- --   E3 FC                           ; ECX used as counter. A16 override: (Addr64) = ZEXT(Addr16)
-                                     #  66  --  -- --   E3 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
+       JRCXZ .                       #  --  --  -- --   E3 FE                           ; RCX used as counter.
+       JECXZ .                       #  --  67  -- --   E3 FD                           ; ECX used as counter.
 
 
 
        # SLDT
 #        SLDT (%eax)                 #  --  67  -- --   0F 00 00                        ; A32 override: (Addr64) = ZEXT(Addr32 )
         SLDT %eax                    #  --  --  -- --   0F 00 C0
+        SLDT %rax                    #  --  --  -- 48   0F 00 C0
+        SLDT %ax                     #  66  --  -- --   0F 00 C0
+        SLDT (%rax)                  #  --  --  -- --   0F 00 00
 
        # SWAPGS
 
        xchg %ax,%ax                  # 66  --   -- --   90
        xchg %eax,%eax                # --  --   -- --   87 C0
        xchg %rax,%rax                # --  --   -- --   90
-       rex64 xchg %rax,%rax          # 48  --   -- --   90
+       rex64 xchg %rax,%rax          # --  --   -- 48   90
        xchg %rax,%r8                 # --  --   -- 49   90
-
- .p2align 4,0
+       xchg %eax,%r8d                # --  --   -- 41   90
+       xchg %r8d,%eax                # --  --   -- 41   90
+       xchg %eax,%r9d                # --  --   -- 41   91
+       xchg %r9d,%eax                # --  --   -- 41   91
+       xchg %ebx,%eax                # --  --   -- 93
+       xchg %eax,%ebx                # --  --   -- 93
+       xchg %ax,%r8w                 # --  --   -- 66 41 90
+       xchg %r8w,%ax                 # --  --   -- 66 41 90
+       xchg %ax,%r9w                 # --  --   -- 66 41 91
+       xchg %r9w,%ax                 # --  --   -- 66 41 91
+
+        smsw %rax                    #  --  --  -- 48   0F 01 e0
+        smsw %eax                    #  --  --  -- --   0F 01 e0
+        smsw %ax                     #  66  --  -- --   0F 01 e0
+        smsw (%rax)                  #  --  --  -- --   0F 01 20
+
+        str %rax                     #  --  --  -- 48   0F 00 c8
+        str %eax                     #  --  --  -- --   0F 00 c8
+        str %ax                              #  66  --  -- --   0F 00 c8
+        str (%rax)                   #  --  --  -- --   0F 00 08
+
+        syscall                              #  --  --  -- --   0F 05
+        sysret                       #  --  --  -- --   0F 07
+
+        swapgs                       #  --  --  -- --   0F 01 f8
+
+       pushw $0x2222
+
+       .byte 0xf6, 0xc9, 0x01
+       .byte 0x66, 0xf7, 0xc9, 0x02, 0x00
+       .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00
+       .byte 0x48, 0xf7, 0xc9, 0x08, 0x00, 0x00, 0x00
+       .byte 0xc0, 0xf0, 0x02
+       .byte 0xc1, 0xf0, 0x01
+       .byte 0x48, 0xc1, 0xf0, 0x01
+       .byte 0xd0, 0xf0
+       .byte 0xd1, 0xf0
+       .byte 0x48, 0xd1, 0xf0
+       .byte 0xd2, 0xf0
+       .byte 0xd3, 0xf0
+       .byte 0x48, 0xd3, 0xf0
This page took 0.027626 seconds and 4 git commands to generate.