248 lines · plain
1 2# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s3# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s4 5# Cache management instruction6 7# CHECK-BE: icbi 2, 3 # encoding: [0x7c,0x02,0x1f,0xac]8# CHECK-LE: icbi 2, 3 # encoding: [0xac,0x1f,0x02,0x7c]9 icbi 2, 310 11# CHECK-BE: icbt 0, 5, 31 # encoding: [0x7c,0x05,0xf8,0x2c]12# CHECK-LE: icbt 0, 5, 31 # encoding: [0x2c,0xf8,0x05,0x7c]13 icbt 0, 5, 3114 15# CHECK-BE: dcbt 2, 3, 10 # encoding: [0x7d,0x42,0x1a,0x2c]16# CHECK-LE: dcbt 2, 3, 10 # encoding: [0x2c,0x1a,0x42,0x7d]17 dcbt 2, 3, 1018# CHECK-BE: dcbt 2, 3, 10 # encoding: [0x7d,0x42,0x1a,0x2c]19# CHECK-LE: dcbt 2, 3, 10 # encoding: [0x2c,0x1a,0x42,0x7d]20 dcbtct 2, 3, 1021# CHECK-BE: dcbt 2, 3, 10 # encoding: [0x7d,0x42,0x1a,0x2c]22# CHECK-LE: dcbt 2, 3, 10 # encoding: [0x2c,0x1a,0x42,0x7d]23 dcbtds 2, 3, 1024# CHECK-BE: dcbt 2, 3 # encoding: [0x7c,0x02,0x1a,0x2c]25# CHECK-LE: dcbt 2, 3 # encoding: [0x2c,0x1a,0x02,0x7c]26 dcbt 2, 327# CHECK-BE: dcbt 2, 3 # encoding: [0x7c,0x02,0x1a,0x2c]28# CHECK-LE: dcbt 2, 3 # encoding: [0x2c,0x1a,0x02,0x7c]29 dcbt 2, 3, 030# CHECK-BE: dcbtt 2, 3 # encoding: [0x7e,0x02,0x1a,0x2c]31# CHECK-LE: dcbtt 2, 3 # encoding: [0x2c,0x1a,0x02,0x7e]32 dcbtt 2, 333# CHECK-BE: dcbtt 2, 3 # encoding: [0x7e,0x02,0x1a,0x2c]34# CHECK-LE: dcbtt 2, 3 # encoding: [0x2c,0x1a,0x02,0x7e]35 dcbt 2, 3, 1636# CHECK-BE: dcbtst 2, 3, 10 # encoding: [0x7d,0x42,0x19,0xec]37# CHECK-LE: dcbtst 2, 3, 10 # encoding: [0xec,0x19,0x42,0x7d]38 dcbtst 2, 3, 1039# CHECK-BE: dcbtst 2, 3, 10 # encoding: [0x7d,0x42,0x19,0xec]40# CHECK-LE: dcbtst 2, 3, 10 # encoding: [0xec,0x19,0x42,0x7d]41 dcbtstct 2, 3, 1042# CHECK-BE: dcbtst 2, 3, 10 # encoding: [0x7d,0x42,0x19,0xec]43# CHECK-LE: dcbtst 2, 3, 10 # encoding: [0xec,0x19,0x42,0x7d]44 dcbtstds 2, 3, 1045# CHECK-BE: dcbtst 2, 3 # encoding: [0x7c,0x02,0x19,0xec]46# CHECK-LE: dcbtst 2, 3 # encoding: [0xec,0x19,0x02,0x7c]47 dcbtst 2, 348# CHECK-BE: dcbtst 2, 3 # encoding: [0x7c,0x02,0x19,0xec]49# CHECK-LE: dcbtst 2, 3 # encoding: [0xec,0x19,0x02,0x7c]50 dcbtst 2, 3, 051# CHECK-BE: dcbtstt 2, 3 # encoding: [0x7e,0x02,0x19,0xec]52# CHECK-LE: dcbtstt 2, 3 # encoding: [0xec,0x19,0x02,0x7e]53 dcbtstt 2, 354# CHECK-BE: dcbtstt 2, 3 # encoding: [0x7e,0x02,0x19,0xec]55# CHECK-LE: dcbtstt 2, 3 # encoding: [0xec,0x19,0x02,0x7e]56 dcbtst 2, 3, 1657# CHECK-BE: dcbz 2, 3 # encoding: [0x7c,0x02,0x1f,0xec]58# CHECK-LE: dcbz 2, 3 # encoding: [0xec,0x1f,0x02,0x7c]59 dcbz 2, 360# CHECK-BE: dcbst 2, 3 # encoding: [0x7c,0x02,0x18,0x6c]61# CHECK-LE: dcbst 2, 3 # encoding: [0x6c,0x18,0x02,0x7c]62 dcbst 2, 363# CHECK-BE: dcbfl 2, 3 # encoding: [0x7c,0x22,0x18,0xac]64# CHECK-LE: dcbfl 2, 3 # encoding: [0xac,0x18,0x22,0x7c]65 dcbf 2, 3, 166# CHECK-BE: dcbflp 2, 3 # encoding: [0x7c,0x62,0x18,0xac]67# CHECK-LE: dcbflp 2, 3 # encoding: [0xac,0x18,0x62,0x7c]68 dcbf 2, 3, 369 70# Synchronization instructions71 72# CHECK-BE: isync # encoding: [0x4c,0x00,0x01,0x2c]73# CHECK-LE: isync # encoding: [0x2c,0x01,0x00,0x4c]74 isync75 76# FIXME: stbcx. 2, 3, 477# FIXME: sthcx. 2, 3, 478# CHECK-BE: stwcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x2d]79# CHECK-LE: stwcx. 2, 3, 4 # encoding: [0x2d,0x21,0x43,0x7c]80 stwcx. 2, 3, 481 82# CHECK-BE: stdcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xad]83# CHECK-LE: stdcx. 2, 3, 4 # encoding: [0xad,0x21,0x43,0x7c]84 stdcx. 2, 3, 485 86# CHECK-BE: stqcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x6d]87# CHECK-LE: stqcx. 2, 3, 4 # encoding: [0x6d,0x21,0x43,0x7c]88 stqcx. 2, 3, 489 90# CHECK-BE: stqcx. 28, 30, 31 # encoding: [0x7f,0x9e,0xf9,0x6d]91# CHECK-LE: stqcx. 28, 30, 31 # encoding: [0x6d,0xf9,0x9e,0x7f]92 stqcx. 28, 30, 3193 94# CHECK-BE: stwat 2, 3, 28 # encoding: [0x7c,0x43,0xe5,0x8c]95# CHECK-LE: stwat 2, 3, 28 # encoding: [0x8c,0xe5,0x43,0x7c]96 stwat 2, 3, 2897 98# CHECK-BE: stdat 2, 3, 28 # encoding: [0x7c,0x43,0xe5,0xcc]99# CHECK-LE: stdat 2, 3, 28 # encoding: [0xcc,0xe5,0x43,0x7c]100 stdat 2, 3, 28101 102# CHECK-BE: ptesync # encoding: [0x7c,0x40,0x04,0xac]103# CHECK-LE: ptesync # encoding: [0xac,0x04,0x40,0x7c]104 sync 2105# CHECK-BE: eieio # encoding: [0x7c,0x00,0x06,0xac]106# CHECK-LE: eieio # encoding: [0xac,0x06,0x00,0x7c]107 eieio108# CHECK-BE: waitimpl # encoding: [0x7c,0x40,0x00,0x3c]109# CHECK-LE: waitimpl # encoding: [0x3c,0x00,0x40,0x7c]110 wait 2111# CHECK-BE: mbar 1 # encoding: [0x7c,0x20,0x06,0xac]112# CHECK-LE: mbar 1 # encoding: [0xac,0x06,0x20,0x7c]113 mbar 1114# CHECK-BE: mbar # encoding: [0x7c,0x00,0x06,0xac]115 mbar116 117# Extended mnemonics118 119# CHECK-BE: dcbf 2, 3 # encoding: [0x7c,0x02,0x18,0xac]120# CHECK-LE: dcbf 2, 3 # encoding: [0xac,0x18,0x02,0x7c]121 dcbf 2, 3122# CHECK-BE: dcbfl 2, 3 # encoding: [0x7c,0x22,0x18,0xac]123# CHECK-LE: dcbfl 2, 3 # encoding: [0xac,0x18,0x22,0x7c]124 dcbfl 2, 3125# CHECK-BE: dcbflp 2, 3 # encoding: [0x7c,0x62,0x18,0xac]126# CHECK-LE: dcbflp 2, 3 # encoding: [0xac,0x18,0x62,0x7c]127 dcbflp 2, 3128 129# CHECK-BE: lbarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x68]130# CHECK-LE: lbarx 2, 3, 4 # encoding: [0x68,0x20,0x43,0x7c]131 lbarx 2, 3, 4132 133# CHECK-BE: lbarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x68]134# CHECK-LE: lbarx 2, 3, 4 # encoding: [0x68,0x20,0x43,0x7c]135 lbarx 2, 3, 4, 0136 137# CHECK-BE: lharx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xe8]138# CHECK-LE: lharx 2, 3, 4 # encoding: [0xe8,0x20,0x43,0x7c]139 lharx 2, 3, 4140 141# CHECK-BE: lharx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xe8]142# CHECK-LE: lharx 2, 3, 4 # encoding: [0xe8,0x20,0x43,0x7c]143 lharx 2, 3, 4, 0144 145# CHECK-BE: lwarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x28]146# CHECK-LE: lwarx 2, 3, 4 # encoding: [0x28,0x20,0x43,0x7c]147 lwarx 2, 3, 4148 149# CHECK-BE: lwarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x28]150# CHECK-LE: lwarx 2, 3, 4 # encoding: [0x28,0x20,0x43,0x7c]151 lwarx 2, 3, 4, 0152 153# CHECK-BE: ldarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xa8]154# CHECK-LE: ldarx 2, 3, 4 # encoding: [0xa8,0x20,0x43,0x7c]155 ldarx 2, 3, 4156 157# CHECK-BE: ldarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xa8]158# CHECK-LE: ldarx 2, 3, 4 # encoding: [0xa8,0x20,0x43,0x7c]159 ldarx 2, 3, 4, 0160 161# CHECK-BE: lqarx 2, 3, 4 # encoding: [0x7c,0x43,0x22,0x28]162# CHECK-LE: lqarx 2, 3, 4 # encoding: [0x28,0x22,0x43,0x7c]163 lqarx 2, 3, 4164 165# CHECK-BE: lqarx 28, 30, 31 # encoding: [0x7f,0x9e,0xfa,0x28]166# CHECK-LE: lqarx 28, 30, 31 # encoding: [0x28,0xfa,0x9e,0x7f]167 lqarx 28, 30, 31168 169# CHECK-BE: lbarx 2, 3, 4, 1 # encoding: [0x7c,0x43,0x20,0x69]170# CHECK-LE: lbarx 2, 3, 4, 1 # encoding: [0x69,0x20,0x43,0x7c]171 lbarx 2, 3, 4, 1172 173# CHECK-BE: lharx 2, 3, 4, 1 # encoding: [0x7c,0x43,0x20,0xe9]174# CHECK-LE: lharx 2, 3, 4, 1 # encoding: [0xe9,0x20,0x43,0x7c]175 lharx 2, 3, 4, 1176 177# CHECK-BE: lwarx 2, 3, 4, 1 # encoding: [0x7c,0x43,0x20,0x29]178# CHECK-LE: lwarx 2, 3, 4, 1 # encoding: [0x29,0x20,0x43,0x7c]179 lwarx 2, 3, 4, 1180 181# CHECK-BE: ldarx 2, 3, 4, 1 # encoding: [0x7c,0x43,0x20,0xa9]182# CHECK-LE: ldarx 2, 3, 4, 1 # encoding: [0xa9,0x20,0x43,0x7c]183 ldarx 2, 3, 4, 1184 185# CHECK-BE: lqarx 2, 3, 4, 1 # encoding: [0x7c,0x43,0x22,0x29]186# CHECK-LE: lqarx 2, 3, 4, 1 # encoding: [0x29,0x22,0x43,0x7c]187 lqarx 2, 3, 4, 1188 189# CHECK-BE: lqarx 28, 30, 31, 1 # encoding: [0x7f,0x9e,0xfa,0x29]190# CHECK-LE: lqarx 28, 30, 31, 1 # encoding: [0x29,0xfa,0x9e,0x7f]191 lqarx 28, 30, 31, 1192 193# CHECK-BE: lwat 2, 3, 28 # encoding: [0x7c,0x43,0xe4,0x8c]194# CHECK-LE: lwat 2, 3, 28 # encoding: [0x8c,0xe4,0x43,0x7c]195 lwat 2, 3, 28196 197# CHECK-BE: ldat 2, 3, 28 # encoding: [0x7c,0x43,0xe4,0xcc]198# CHECK-LE: ldat 2, 3, 28 # encoding: [0xcc,0xe4,0x43,0x7c]199 ldat 2, 3, 28200 201# CHECK-BE: sync # encoding: [0x7c,0x00,0x04,0xac]202# CHECK-LE: sync # encoding: [0xac,0x04,0x00,0x7c]203 sync204# CHECK-BE: sync # encoding: [0x7c,0x00,0x04,0xac]205# CHECK-LE: sync # encoding: [0xac,0x04,0x00,0x7c]206 msync207# CHECK-BE: lwsync # encoding: [0x7c,0x20,0x04,0xac]208# CHECK-LE: lwsync # encoding: [0xac,0x04,0x20,0x7c]209 lwsync210# CHECK-BE: sync # encoding: [0x7c,0x00,0x04,0xac]211# CHECK-LE: sync # encoding: [0xac,0x04,0x00,0x7c]212 hwsync213# CHECK-BE: ptesync # encoding: [0x7c,0x40,0x04,0xac]214# CHECK-LE: ptesync # encoding: [0xac,0x04,0x40,0x7c]215 ptesync216 217# CHECK-BE: wait # encoding: [0x7c,0x00,0x00,0x3c]218# CHECK-LE: wait # encoding: [0x3c,0x00,0x00,0x7c]219 wait220# CHECK-BE: waitrsv # encoding: [0x7c,0x20,0x00,0x3c]221# CHECK-LE: waitrsv # encoding: [0x3c,0x00,0x20,0x7c]222 waitrsv223# CHECK-BE: waitimpl # encoding: [0x7c,0x40,0x00,0x3c]224# CHECK-LE: waitimpl # encoding: [0x3c,0x00,0x40,0x7c]225 waitimpl226 227# Time base instructions228 229# CHECK-BE: mftb 2, 123 # encoding: [0x7c,0x5b,0x1a,0xe6]230# CHECK-LE: mftb 2, 123 # encoding: [0xe6,0x1a,0x5b,0x7c]231 mftb 2, 123232# CHECK-BE: mftb 2, 268 # encoding: [0x7c,0x4c,0x42,0xe6]233# CHECK-LE: mftb 2, 268 # encoding: [0xe6,0x42,0x4c,0x7c]234 mftb 2235# CHECK-BE: mftb 2, 268 # encoding: [0x7c,0x4c,0x42,0xe6]236# CHECK-LE: mftb 2, 268 # encoding: [0xe6,0x42,0x4c,0x7c]237 mftbl 2238# CHECK-BE: mftbu 2 # encoding: [0x7c,0x4d,0x42,0xe6]239# CHECK-LE: mftbu 2 # encoding: [0xe6,0x42,0x4d,0x7c]240 mftbu 2241 242# CHECK-BE: mttbl 3 # encoding: [0x7c,0x7c,0x43,0xa6]243# CHECK-LE: mttbl 3 # encoding: [0xa6,0x43,0x7c,0x7c]244 mttbl 3245# CHECK-BE: mttbu 3 # encoding: [0x7c,0x7d,0x43,0xa6]246# CHECK-LE: mttbu 3 # encoding: [0xa6,0x43,0x7d,0x7c]247 mttbu 3248