1! Verify that minimum support is provided as per SH-5/ST50-047-02. 2 3 .text 4 .mode shmedia 5start: 6 7! Both all-upper and all-lower must be supported. PTA/PTB without /L 8! or /U is equivalent to with /L 9 10 ld.l r1,4,r1 11 LD.L r1,4,r1 12 pta/l .L1,tr0 13 PTA/L .L1,tr0 14 pta/u .L1,tr0 15 PTA/U .L1,tr0 16 pta/l .L1,tr0 17 PTA/L .L1,tr0 18 ptb/u .L2,tr0 19 PTB/U .L2,tr0 20 ptb/l .L2,tr0 21 PTB/L .L2,tr0 22 pta .L1,tr0 23 PTA .L1,tr0 24 ptb .L2,tr0 25 PTB .L2,tr0 26.L1: 27 .mode shcompact 28.L2: 29 .align 2 30 .mode shmedia 31 32! All register names accepted, either case. 33 34 or r0,r32,r63 35 GETCON CR0,R0 36 getcon cr63,r0 37 GETTR TR0,R0 38 gettr tr7,r0 39 FMOV.S FR0,FR63 40 fmov.d dr0,dr62 41 FTRV.S MTRX0,FV0,fv0 42 ftrv.s mtrx48,FV60,FV60 43 44! All control register names 45 46 getcon sr,r0 47 getcon ssr,r0 48 getcon pssr,r0 49 getcon intevt,r0 50 getcon expevt,r0 51 getcon pexpevt,r0 52 getcon tra,r0 53 getcon spc,r0 54 getcon pspc,r0 55 getcon resvec,r0 56 getcon vbr,r0 57 getcon tea,r0 58 getcon dcr,r0 59 getcon kcr0,r0 60 getcon kcr1,r0 61 getcon ctc,r0 62 getcon usr,r0 63 64! immediates 65 66 .mode shcompact 67s1: 68 mov #4,r0 69 70 .align 2 71 .mode shmedia 72s2: 73 movi 4,r0 74 75! Scaled operands - user gives scaled value 76 77 .mode shcompact 78s3: 79 mov.l @(8,r0),r0 80 81 .align 2 82 .mode shmedia 83s4: 84 ld.uw r0,2,r0 85 ld.w r0,2,r0 86 st.w r0,2,r0 87 ld.l r0,4,r0 88 st.l r0,4,r0 89 fld.s r0,4,fr0 90 fst.s r0,4,fr0 91 pta .+4,tr0 92 ptb .+7,tr0 93 ld.q r0,8,r0 94 st.q r0,8,r0 95 fld.d r0,8,dr0 96 fst.d r0,8,dr0 97 fld.p r0,8,fp0 98 fst.p r0,8,fp0 99 alloco r0,32 100 icbi r0,32 101 ocbi r0,32 102 ocbp r0,32 103 ocbwb r0,32 104 prefi r0,32 105 106 .mode shcompact 107s5: 108 mov.w @(6,pc),r0 109 mov.w @(2,r0),r0 110 mov.w @(2,gbr),r0 111 mov.w r0,@(2,r0) 112 mov.w r0,@(2,gbr) 113 bf .+6 114 bt .+6 115 bra .+6 116 bsr .+6 117 mov.l @(2,pc),r0 118 mov.l @(4,r0),r0 119 mov.l @(4,gbr),r0 120 mova @(8,pc),r0 121 mov.l r0,@(4,r0) 122 mov.l r0,@(4,gbr) 123 124! branchlabel vs datalabel 125 126 .align 2 127 .mode shmedia 128s6: 129 .long .L3 130 .long .L3 + 4 131 .long datalabel .L3 132 .long DATALABEL .L3 133.L3: 134 .mode shcompact 135 136s7: 137 .long .L4 138 .long .L5 139.L4: 140 141 .align 2 142 .mode shmedia 143s8: 144 145 movi (.L4 >> 16) & 65535,r0 146 shori .L4 & 65535, r0 147 ptabs r0,tr0 148 blink tr0,r18 149 150 movi (.L5 >> 16) & 65535,r0 151 shori .L5 & 65535, r0 152 ptabs r0,tr0 153 blink tr0,r18 154.L5: 155 156 movi (.L4-DATALABEL .L6), r0 157.L6: 158 movi (.L5-DATALABEL .L7), r0 159.L7: 160 161 pt .L5,tr0 162 163! Expressions 164 165! Symbols 166 167abcdefghijklmnopqrstuvwxyz0123456789_: 168 .long abcdefghijklmnopqrstuvwxyz0123456789_ 169_x: 170 .long _x 171 172! program counter 173 174 movi .L7-$,r0 175.L8: movi .L7-.L8,r0 176 177 .mode shcompact 178s9: 179 mova @(litpool-$,pc), r0 180 mov.l @r1,r0 181 add r1,r0 182 bsrf r0 183litpool: 184 .long s10 - DATALABEL $ 185 186! operators 187 188 .align 2 189 .mode shmedia 190s10: 191 movi 8+1,r0 192 movi 8-1,r0 193 movi 8<<1,r0 194 movi 8>>1,r0 195 movi ~1,r0 196 movi 5&3,r0 197 movi 8|1,r0 198 movi 8*3,r0 199 movi 24/3,r0 200