241 lines · plain
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s2# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR3 4# ERROR-COUNT-56: error:5# ERROR-NOT: error:6## R bit7 8# CHECK: leal (%rax), %r16d9# CHECK: encoding: [0xd5,0x40,0x8d,0x00]10 leal (%rax), %r16d11 12# CHECK: leal (%rax), %r17d13# CHECK: encoding: [0xd5,0x40,0x8d,0x08]14 leal (%rax), %r17d15 16# CHECK: leal (%rax), %r18d17# CHECK: encoding: [0xd5,0x40,0x8d,0x10]18 leal (%rax), %r18d19 20# CHECK: leal (%rax), %r19d21# CHECK: encoding: [0xd5,0x40,0x8d,0x18]22 leal (%rax), %r19d23 24# CHECK: leal (%rax), %r20d25# CHECK: encoding: [0xd5,0x40,0x8d,0x20]26 leal (%rax), %r20d27 28# CHECK: leal (%rax), %r21d29# CHECK: encoding: [0xd5,0x40,0x8d,0x28]30 leal (%rax), %r21d31 32# CHECK: leal (%rax), %r22d33# CHECK: encoding: [0xd5,0x40,0x8d,0x30]34 leal (%rax), %r22d35 36# CHECK: leal (%rax), %r23d37# CHECK: encoding: [0xd5,0x40,0x8d,0x38]38 leal (%rax), %r23d39 40# CHECK: leal (%rax), %r24d41# CHECK: encoding: [0xd5,0x44,0x8d,0x00]42 leal (%rax), %r24d43 44# CHECK: leal (%rax), %r25d45# CHECK: encoding: [0xd5,0x44,0x8d,0x08]46 leal (%rax), %r25d47 48# CHECK: leal (%rax), %r26d49# CHECK: encoding: [0xd5,0x44,0x8d,0x10]50 leal (%rax), %r26d51 52# CHECK: leal (%rax), %r27d53# CHECK: encoding: [0xd5,0x44,0x8d,0x18]54 leal (%rax), %r27d55 56# CHECK: leal (%rax), %r28d57# CHECK: encoding: [0xd5,0x44,0x8d,0x20]58 leal (%rax), %r28d59 60# CHECK: leal (%rax), %r29d61# CHECK: encoding: [0xd5,0x44,0x8d,0x28]62 leal (%rax), %r29d63 64# CHECK: leal (%rax), %r30d65# CHECK: encoding: [0xd5,0x44,0x8d,0x30]66 leal (%rax), %r30d67 68# CHECK: leal (%rax), %r31d69# CHECK: encoding: [0xd5,0x44,0x8d,0x38]70 leal (%rax), %r31d71 72## X bit73 74# CHECK: leal (,%r16), %eax75# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]76 leal (,%r16), %eax77 78# CHECK: leal (,%r17), %eax79# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00]80 leal (,%r17), %eax81 82# CHECK: leal (,%r18), %eax83# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x15,0x00,0x00,0x00,0x00]84 leal (,%r18), %eax85 86# CHECK: leal (,%r19), %eax87# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00]88 leal (,%r19), %eax89 90# CHECK: leal (,%r20), %eax91# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x25,0x00,0x00,0x00,0x00]92 leal (,%r20), %eax93 94# CHECK: leal (,%r21), %eax95# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00]96 leal (,%r21), %eax97 98# CHECK: leal (,%r22), %eax99# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x35,0x00,0x00,0x00,0x00]100 leal (,%r22), %eax101 102# CHECK: leal (,%r23), %eax103# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]104 leal (,%r23), %eax105 106# CHECK: leal (,%r24), %eax107# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]108 leal (,%r24), %eax109 110# CHECK: leal (,%r25), %eax111# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00]112 leal (,%r25), %eax113 114# CHECK: leal (,%r26), %eax115# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x15,0x00,0x00,0x00,0x00]116 leal (,%r26), %eax117 118# CHECK: leal (,%r27), %eax119# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00]120 leal (,%r27), %eax121 122# CHECK: leal (,%r28), %eax123# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x25,0x00,0x00,0x00,0x00]124 leal (,%r28), %eax125 126# CHECK: leal (,%r29), %eax127# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00]128 leal (,%r29), %eax129 130# CHECK: leal (,%r30), %eax131# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x35,0x00,0x00,0x00,0x00]132 leal (,%r30), %eax133 134# CHECK: leal (,%r31), %eax135# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]136 leal (,%r31), %eax137 138## B bit139 140# CHECK: leal (%r16), %eax141# CHECK: encoding: [0xd5,0x10,0x8d,0x00]142 leal (%r16), %eax143 144# CHECK: leal (%r17), %eax145# CHECK: encoding: [0xd5,0x10,0x8d,0x01]146 leal (%r17), %eax147 148# CHECK: leal (%r18), %eax149# CHECK: encoding: [0xd5,0x10,0x8d,0x02]150 leal (%r18), %eax151 152# CHECK: leal (%r19), %eax153# CHECK: encoding: [0xd5,0x10,0x8d,0x03]154 leal (%r19), %eax155 156# CHECK: leal (%r20), %eax157# CHECK: encoding: [0xd5,0x10,0x8d,0x04,0x24]158 leal (%r20), %eax159 160# CHECK: leal (%r21), %eax161# CHECK: encoding: [0xd5,0x10,0x8d,0x45,0x00]162 leal (%r21), %eax163 164# CHECK: leal (%r22), %eax165# CHECK: encoding: [0xd5,0x10,0x8d,0x06]166 leal (%r22), %eax167 168# CHECK: leal (%r23), %eax169# CHECK: encoding: [0xd5,0x10,0x8d,0x07]170 leal (%r23), %eax171 172# CHECK: leal (%r24), %eax173# CHECK: encoding: [0xd5,0x11,0x8d,0x00]174 leal (%r24), %eax175 176# CHECK: leal (%r25), %eax177# CHECK: encoding: [0xd5,0x11,0x8d,0x01]178 leal (%r25), %eax179 180# CHECK: leal (%r26), %eax181# CHECK: encoding: [0xd5,0x11,0x8d,0x02]182 leal (%r26), %eax183 184# CHECK: leal (%r27), %eax185# CHECK: encoding: [0xd5,0x11,0x8d,0x03]186 leal (%r27), %eax187 188# CHECK: leal (%r28), %eax189# CHECK: encoding: [0xd5,0x11,0x8d,0x04,0x24]190 leal (%r28), %eax191 192# CHECK: leal (%r29), %eax193# CHECK: encoding: [0xd5,0x11,0x8d,0x45,0x00]194 leal (%r29), %eax195 196# CHECK: leal (%r30), %eax197# CHECK: encoding: [0xd5,0x11,0x8d,0x06]198 leal (%r30), %eax199 200# CHECK: leal (%r31), %eax201# CHECK: encoding: [0xd5,0x11,0x8d,0x07]202 leal (%r31), %eax203 204## SIB205 206# CHECK: leal 1(%r20), %eax207# CHECK: encoding: [0xd5,0x10,0x8d,0x44,0x24,0x01]208 leal 1(%r20), %eax209 210# CHECK: leal 1(%r28), %eax211# CHECK: encoding: [0xd5,0x11,0x8d,0x44,0x24,0x01]212 leal 1(%r28), %eax213 214# CHECK: leal 129(%r20), %eax215# CHECK: encoding: [0xd5,0x10,0x8d,0x84,0x24,0x81,0x00,0x00,0x00]216 leal 129(%r20), %eax217 218# CHECK: leal 129(%r28), %eax219# CHECK: encoding: [0xd5,0x11,0x8d,0x84,0x24,0x81,0x00,0x00,0x00]220 leal 129(%r28), %eax221 222## W bit223 224# CHECK: leaq (%rax), %r16225# CHECK: encoding: [0xd5,0x48,0x8d,0x00]226 leaq (%rax), %r16227 228# CHECK: leaq (%r16), %rax229# CHECK: encoding: [0xd5,0x18,0x8d,0x00]230 leaq (%r16), %rax231 232# CHECK: leaq (,%r16), %rax233# CHECK: encoding: [0xd5,0x28,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]234 leaq (,%r16), %rax235 236## M bit237 238# CHECK: imull %eax, %r16d239# CHECK: encoding: [0xd5,0xc0,0xaf,0xc0]240 imull %eax, %r16d241