1# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \ 2# RUN: | extract-section .text \ 3# RUN: | FileCheck %s -check-prefixes=MOV8DK,MOV32RK,MOV8DQ,MOV32RQ,MOV8DF,MOV32RF 4# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \ 5# RUN: | extract-section .text \ 6# RUN: | FileCheck %s -check-prefixes=MOV8DP,MOV32RP,MOV8DJ,MOV32RJ,MOV8DO,MOV32RO 7# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \ 8# RUN: | extract-section .text \ 9# RUN: | FileCheck %s -check-prefixes=MOV8DE,MOV32RE,MOV8DB,MOV32RB 10 11#------------------------------------------------------------------------------ 12# MxMove_RM is used for moving data from memory to register 13#------------------------------------------------------------------------------ 14 15--- # PCI 16# ---------------------------+-----------+-----------+----------- 17# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 18# -------+-------+-----------+-----------+-----------+----------- 19# | | DESTINATION | SOURCE 20# 0 0 | SIZE | REG | MODE | MODE | REG 21# -------+-------+-----------+-----------+-----------+----------- 22# MOV8DK: 0 0 0 1 0 0 0 0 . 0 0 1 1 1 0 1 1 23# MOV8DK-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0 24# --------------------------------------------------------------- 25# MOV8DK-SAME: 0 0 0 1 0 0 0 0 . 0 0 1 1 1 0 1 1 26# MOV8DK-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1 27# --------------------------------------------------------------- 28# MOV32RK-SAME: 0 0 1 0 0 0 0 0 . 0 0 1 1 1 0 1 1 29# MOV32RK-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0 30# --------------------------------------------------------------- 31# MOV32RK-SAME: 0 0 1 0 0 0 1 0 . 0 0 1 1 1 0 1 1 32# MOV32RK-SAME: 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 0 33# ---+-----------+---+-------+---+------------------------------- 34# BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT 35# ---+-----------+---+-------+---+------------------------------- 36name: MxMove_RM_PCI 37body: | 38 bb.0: 39 $bd0 = MOV8dk 0, $d1, implicit-def $ccr 40 $bd0 = MOV8dk -1, $d1, implicit-def $ccr 41 $d0 = MOV32rk 0, $d1, implicit-def $ccr 42 $d1 = MOV32rk 0, $a2, implicit-def $ccr 43 44... 45--- # PCD 46# ---------------------------+-----------+-----------+----------- 47# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 48# -------+-------+-----------+-----------+-----------+----------- 49# | | DESTINATION | SOURCE 50# 0 0 | SIZE | REG | MODE | MODE | REG 51# -------+-------+-----------+-----------+-----------+----------- 52# MOV8DQ-SAME: 0 0 0 1 0 0 0 0 . 0 0 1 1 1 0 1 0 53# MOV8DQ-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 54# --------------------------------------------------------------- 55# MOV32RQ-SAME: 0 0 1 0 0 0 0 0 . 0 0 1 1 1 0 1 0 56# MOV32RQ-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 57# --------------------------------------------------------------- 58# MOV32RQ-SAME: 0 0 1 0 0 0 0 0 . 0 1 1 1 1 0 1 0 59# MOV32RQ-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 60name: MxMove_RM_PCD 61body: | 62 bb.0: 63 $bd0 = MOV8dq 0, implicit-def $ccr 64 $d0 = MOV32rq -1, implicit-def $ccr 65 $a0 = MOV32rq -1, implicit-def $ccr 66 67... 68--- # ARII 69# ---------------------------+-----------+-----------+----------- 70# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 71# -------+-------+-----------+-----------+-----------+----------- 72# | | DESTINATION | SOURCE 73# 0 0 | SIZE | REG | MODE | MODE | REG 74# -------+-------+-----------+-----------+-----------+----------- 75# MOV8DF: 0 0 0 1 0 0 0 0 . 0 0 1 1 0 0 0 0 76# MOV8DF-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0 77# --------------------------------------------------------------- 78# MOV8DF-SAME: 0 0 0 1 0 0 0 0 . 0 0 1 1 0 0 0 0 79# MOV8DF-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1 80# --------------------------------------------------------------- 81# MOV32RF-SAME: 0 0 1 0 0 0 0 0 . 0 0 1 1 0 0 0 1 82# MOV32RF-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0 83# --------------------------------------------------------------- 84# MOV32RF-SAME: 0 0 1 0 0 0 1 0 . 0 0 1 1 0 0 1 0 85# MOV32RF-SAME: 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 0 86# ---+-----------+---+-------+---+------------------------------- 87# BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT 88# ---+-----------+---+-------+---+------------------------------- 89name: MxMove_RM_ARII 90body: | 91 bb.0: 92 $bd0 = MOV8df 0, $a0, $d1, implicit-def $ccr 93 $bd0 = MOV8df -1, $a0, $d1, implicit-def $ccr 94 $d0 = MOV32rf 0, $a1, $d1, implicit-def $ccr 95 $d1 = MOV32rf 0, $a2, $a2, implicit-def $ccr 96 97... 98--- # ARID 99# ---------------------------+-----------+-----------+----------- 100# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 101# -------+-------+-----------+-----------+-----------+----------- 102# | | DESTINATION | SOURCE 103# 0 0 | SIZE | REG | MODE | MODE | REG 104# -------+-------+-----------+-----------+-----------+----------- 105# MOV8DP: 0 0 0 1 0 0 0 0 . 0 0 1 0 1 0 0 0 106# MOV8DP-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 107# --------------------------------------------------------------- 108# MOV32RP-SAME: 0 0 1 0 0 0 0 0 . 0 0 1 0 1 0 0 1 109# MOV32RP-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 110# --------------------------------------------------------------- 111# MOV32RP-SAME: 0 0 1 0 0 0 0 0 . 0 1 1 0 1 0 0 1 112# MOV32RP-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 113name: MxMove_RM_ARID 114body: | 115 bb.0: 116 $bd0 = MOV8dp 0, $a0, implicit-def $ccr 117 $d0 = MOV32rp -1, $a1, implicit-def $ccr 118 $a0 = MOV32rp -1, $a1, implicit-def $ccr 119 120... 121--- # ARIPD 122# ---------------------------+-----------+-----------+----------- 123# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 124# -------+-------+-----------+-----------+-----------+----------- 125# | | DESTINATION | SOURCE 126# 0 0 | SIZE | REG | MODE | MODE | REG 127# -------+-------+-----------+-----------+-----------+----------- 128# MOV8DE: 0 0 0 1 0 0 0 0 . 0 0 1 0 0 0 0 0 129# --------------------------------------------------------------- 130# MOV32RE-SAME: 0 0 1 0 0 1 1 0 . 0 0 1 0 0 0 0 1 131# --------------------------------------------------------------- 132# MOV32RE-SAME: 0 0 1 0 1 0 0 0 . 0 1 1 0 0 0 0 1 133name: MxMove_RM_ARIPD 134body: | 135 bb.0: 136 $bd0 = MOV8de $a0, implicit-def $ccr 137 $d3 = MOV32re $a1, implicit-def $ccr 138 $a4 = MOV32re $a1, implicit-def $ccr 139 140... 141--- # ARIPI 142# ---------------------------+-----------+-----------+----------- 143# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 144# -------+-------+-----------+-----------+-----------+----------- 145# | | DESTINATION | SOURCE 146# 0 0 | SIZE | REG | MODE | MODE | REG 147# -------+-------+-----------+-----------+-----------+----------- 148# MOV8DO-SAME: 0 0 0 1 0 0 0 0 . 0 0 0 1 1 0 0 0 149# --------------------------------------------------------------- 150# MOV32RO-SAME: 0 0 1 0 0 1 1 0 . 0 0 0 1 1 0 0 1 151# --------------------------------------------------------------- 152# MOV32RO-SAME: 0 0 1 0 1 0 0 0 . 0 1 0 1 1 0 0 1 153name: MxMove_RM_ARIPI 154body: | 155 bb.0: 156 $bd0 = MOV8do $a0, implicit-def $ccr 157 $d3 = MOV32ro $a1, implicit-def $ccr 158 $a4 = MOV32ro $a1, implicit-def $ccr 159 160... 161--- # ARI 162# ---------------------------+-----------+-----------+----------- 163# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 164# -------+-------+-----------+-----------+-----------+----------- 165# | | DESTINATION | SOURCE 166# 0 0 | SIZE | REG | MODE | MODE | REG 167# -------+-------+-----------+-----------+-----------+----------- 168# MOV8DJ-SAME: 0 0 0 1 0 0 0 0 . 0 0 0 1 0 0 0 0 169# --------------------------------------------------------------- 170# MOV32RJ-SAME: 0 0 1 0 0 1 1 0 . 0 0 0 1 0 0 0 1 171# --------------------------------------------------------------- 172# MOV32RJ-SAME: 0 0 1 0 1 0 0 0 . 0 1 0 1 0 0 0 1 173name: MxMove_RM_ARI 174body: | 175 bb.0: 176 $bd0 = MOV8dj $a0, implicit-def $ccr 177 $d3 = MOV32rj $a1, implicit-def $ccr 178 $a4 = MOV32rj $a1, implicit-def $ccr 179 180... 181--- # ABS 182# ---------------------------+-----------+-----------+----------- 183# F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0 184# -------+-------+-----------+-----------+-----------+----------- 185# | | DESTINATION | SOURCE 186# 0 0 | SIZE | REG | MODE | MODE | REG 187# -------+-------+-----------+-----------+-----------+----------- 188# MOV8DB-SAME: 0 0 0 1 0 0 0 0 . 0 0 1 1 1 0 0 1 189# MOV8DB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 190# --------------------------------------------------------------- 191# MOV32RB-SAME: 0 0 1 0 0 1 1 0 . 0 0 1 1 1 0 0 1 192# MOV32RB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 193# MOV32RB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 194# --------------------------------------------------------------- 195# MOV32RB-SAME: 0 0 1 0 1 0 0 0 . 0 1 1 1 1 0 0 1 196# MOV32RB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 197# MOV32RB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 198name: MxMove_RM_ABS 199body: | 200 bb.0: 201 $bd0 = MOV8db 0, implicit-def $ccr 202 $d3 = MOV32rb 0, implicit-def $ccr 203 $a4 = MOV32rb 0, implicit-def $ccr 204 205... 206