| 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */
|
| 2 | /*
|
| 3 | * test helper assembly functions
|
| 4 | *
|
| 5 | * Copyright (C) 2016 Simon Guo, IBM Corporation.
|
| 6 | */
|
| 7 | |
| 8 | |
| 9 |
|
| 10 |
|
| 11 | /* Non volatile GPR - unsigned long buf[18] */
|
| 12 | FUNC_START(load_gpr)
|
| 13 | ld 14, 0*8(3)
|
| 14 | ld 15, 1*8(3)
|
| 15 | ld 16, 2*8(3)
|
| 16 | ld 17, 3*8(3)
|
| 17 | ld 18, 4*8(3)
|
| 18 | ld 19, 5*8(3)
|
| 19 | ld 20, 6*8(3)
|
| 20 | ld 21, 7*8(3)
|
| 21 | ld 22, 8*8(3)
|
| 22 | ld 23, 9*8(3)
|
| 23 | ld 24, 10*8(3)
|
| 24 | ld 25, 11*8(3)
|
| 25 | ld 26, 12*8(3)
|
| 26 | ld 27, 13*8(3)
|
| 27 | ld 28, 14*8(3)
|
| 28 | ld 29, 15*8(3)
|
| 29 | ld 30, 16*8(3)
|
| 30 | ld 31, 17*8(3)
|
| 31 | blr
|
| 32 | FUNC_END(load_gpr)
|
| 33 |
|
| 34 | FUNC_START(store_gpr)
|
| 35 | std 14, 0*8(3)
|
| 36 | std 15, 1*8(3)
|
| 37 | std 16, 2*8(3)
|
| 38 | std 17, 3*8(3)
|
| 39 | std 18, 4*8(3)
|
| 40 | std 19, 5*8(3)
|
| 41 | std 20, 6*8(3)
|
| 42 | std 21, 7*8(3)
|
| 43 | std 22, 8*8(3)
|
| 44 | std 23, 9*8(3)
|
| 45 | std 24, 10*8(3)
|
| 46 | std 25, 11*8(3)
|
| 47 | std 26, 12*8(3)
|
| 48 | std 27, 13*8(3)
|
| 49 | std 28, 14*8(3)
|
| 50 | std 29, 15*8(3)
|
| 51 | std 30, 16*8(3)
|
| 52 | std 31, 17*8(3)
|
| 53 | blr
|
| 54 | FUNC_END(store_gpr)
|
| 55 |
|
| 56 | /* Double Precision Float - double buf[32] */
|
| 57 | FUNC_START(store_fpr)
|
| 58 | stfd 0, 0*8(3)
|
| 59 | stfd 1, 1*8(3)
|
| 60 | stfd 2, 2*8(3)
|
| 61 | stfd 3, 3*8(3)
|
| 62 | stfd 4, 4*8(3)
|
| 63 | stfd 5, 5*8(3)
|
| 64 | stfd 6, 6*8(3)
|
| 65 | stfd 7, 7*8(3)
|
| 66 | stfd 8, 8*8(3)
|
| 67 | stfd 9, 9*8(3)
|
| 68 | stfd 10, 10*8(3)
|
| 69 | stfd 11, 11*8(3)
|
| 70 | stfd 12, 12*8(3)
|
| 71 | stfd 13, 13*8(3)
|
| 72 | stfd 14, 14*8(3)
|
| 73 | stfd 15, 15*8(3)
|
| 74 | stfd 16, 16*8(3)
|
| 75 | stfd 17, 17*8(3)
|
| 76 | stfd 18, 18*8(3)
|
| 77 | stfd 19, 19*8(3)
|
| 78 | stfd 20, 20*8(3)
|
| 79 | stfd 21, 21*8(3)
|
| 80 | stfd 22, 22*8(3)
|
| 81 | stfd 23, 23*8(3)
|
| 82 | stfd 24, 24*8(3)
|
| 83 | stfd 25, 25*8(3)
|
| 84 | stfd 26, 26*8(3)
|
| 85 | stfd 27, 27*8(3)
|
| 86 | stfd 28, 28*8(3)
|
| 87 | stfd 29, 29*8(3)
|
| 88 | stfd 30, 30*8(3)
|
| 89 | stfd 31, 31*8(3)
|
| 90 | blr
|
| 91 | FUNC_END(store_fpr)
|
| 92 |
|
| 93 | /* VMX/VSX registers - unsigned long buf[128] */
|
| 94 | FUNC_START(loadvsx)
|
| 95 | lis 4, 0
|
| 96 | LXVD2X (0,(4),(3))
|
| 97 | addi 4, 4, 16
|
| 98 | LXVD2X (1,(4),(3))
|
| 99 | addi 4, 4, 16
|
| 100 | LXVD2X (2,(4),(3))
|
| 101 | addi 4, 4, 16
|
| 102 | LXVD2X (3,(4),(3))
|
| 103 | addi 4, 4, 16
|
| 104 | LXVD2X (4,(4),(3))
|
| 105 | addi 4, 4, 16
|
| 106 | LXVD2X (5,(4),(3))
|
| 107 | addi 4, 4, 16
|
| 108 | LXVD2X (6,(4),(3))
|
| 109 | addi 4, 4, 16
|
| 110 | LXVD2X (7,(4),(3))
|
| 111 | addi 4, 4, 16
|
| 112 | LXVD2X (8,(4),(3))
|
| 113 | addi 4, 4, 16
|
| 114 | LXVD2X (9,(4),(3))
|
| 115 | addi 4, 4, 16
|
| 116 | LXVD2X (10,(4),(3))
|
| 117 | addi 4, 4, 16
|
| 118 | LXVD2X (11,(4),(3))
|
| 119 | addi 4, 4, 16
|
| 120 | LXVD2X (12,(4),(3))
|
| 121 | addi 4, 4, 16
|
| 122 | LXVD2X (13,(4),(3))
|
| 123 | addi 4, 4, 16
|
| 124 | LXVD2X (14,(4),(3))
|
| 125 | addi 4, 4, 16
|
| 126 | LXVD2X (15,(4),(3))
|
| 127 | addi 4, 4, 16
|
| 128 | LXVD2X (16,(4),(3))
|
| 129 | addi 4, 4, 16
|
| 130 | LXVD2X (17,(4),(3))
|
| 131 | addi 4, 4, 16
|
| 132 | LXVD2X (18,(4),(3))
|
| 133 | addi 4, 4, 16
|
| 134 | LXVD2X (19,(4),(3))
|
| 135 | addi 4, 4, 16
|
| 136 | LXVD2X (20,(4),(3))
|
| 137 | addi 4, 4, 16
|
| 138 | LXVD2X (21,(4),(3))
|
| 139 | addi 4, 4, 16
|
| 140 | LXVD2X (22,(4),(3))
|
| 141 | addi 4, 4, 16
|
| 142 | LXVD2X (23,(4),(3))
|
| 143 | addi 4, 4, 16
|
| 144 | LXVD2X (24,(4),(3))
|
| 145 | addi 4, 4, 16
|
| 146 | LXVD2X (25,(4),(3))
|
| 147 | addi 4, 4, 16
|
| 148 | LXVD2X (26,(4),(3))
|
| 149 | addi 4, 4, 16
|
| 150 | LXVD2X (27,(4),(3))
|
| 151 | addi 4, 4, 16
|
| 152 | LXVD2X (28,(4),(3))
|
| 153 | addi 4, 4, 16
|
| 154 | LXVD2X (29,(4),(3))
|
| 155 | addi 4, 4, 16
|
| 156 | LXVD2X (30,(4),(3))
|
| 157 | addi 4, 4, 16
|
| 158 | LXVD2X (31,(4),(3))
|
| 159 | addi 4, 4, 16
|
| 160 | LXVD2X (32,(4),(3))
|
| 161 | addi 4, 4, 16
|
| 162 | LXVD2X (33,(4),(3))
|
| 163 | addi 4, 4, 16
|
| 164 | LXVD2X (34,(4),(3))
|
| 165 | addi 4, 4, 16
|
| 166 | LXVD2X (35,(4),(3))
|
| 167 | addi 4, 4, 16
|
| 168 | LXVD2X (36,(4),(3))
|
| 169 | addi 4, 4, 16
|
| 170 | LXVD2X (37,(4),(3))
|
| 171 | addi 4, 4, 16
|
| 172 | LXVD2X (38,(4),(3))
|
| 173 | addi 4, 4, 16
|
| 174 | LXVD2X (39,(4),(3))
|
| 175 | addi 4, 4, 16
|
| 176 | LXVD2X (40,(4),(3))
|
| 177 | addi 4, 4, 16
|
| 178 | LXVD2X (41,(4),(3))
|
| 179 | addi 4, 4, 16
|
| 180 | LXVD2X (42,(4),(3))
|
| 181 | addi 4, 4, 16
|
| 182 | LXVD2X (43,(4),(3))
|
| 183 | addi 4, 4, 16
|
| 184 | LXVD2X (44,(4),(3))
|
| 185 | addi 4, 4, 16
|
| 186 | LXVD2X (45,(4),(3))
|
| 187 | addi 4, 4, 16
|
| 188 | LXVD2X (46,(4),(3))
|
| 189 | addi 4, 4, 16
|
| 190 | LXVD2X (47,(4),(3))
|
| 191 | addi 4, 4, 16
|
| 192 | LXVD2X (48,(4),(3))
|
| 193 | addi 4, 4, 16
|
| 194 | LXVD2X (49,(4),(3))
|
| 195 | addi 4, 4, 16
|
| 196 | LXVD2X (50,(4),(3))
|
| 197 | addi 4, 4, 16
|
| 198 | LXVD2X (51,(4),(3))
|
| 199 | addi 4, 4, 16
|
| 200 | LXVD2X (52,(4),(3))
|
| 201 | addi 4, 4, 16
|
| 202 | LXVD2X (53,(4),(3))
|
| 203 | addi 4, 4, 16
|
| 204 | LXVD2X (54,(4),(3))
|
| 205 | addi 4, 4, 16
|
| 206 | LXVD2X (55,(4),(3))
|
| 207 | addi 4, 4, 16
|
| 208 | LXVD2X (56,(4),(3))
|
| 209 | addi 4, 4, 16
|
| 210 | LXVD2X (57,(4),(3))
|
| 211 | addi 4, 4, 16
|
| 212 | LXVD2X (58,(4),(3))
|
| 213 | addi 4, 4, 16
|
| 214 | LXVD2X (59,(4),(3))
|
| 215 | addi 4, 4, 16
|
| 216 | LXVD2X (60,(4),(3))
|
| 217 | addi 4, 4, 16
|
| 218 | LXVD2X (61,(4),(3))
|
| 219 | addi 4, 4, 16
|
| 220 | LXVD2X (62,(4),(3))
|
| 221 | addi 4, 4, 16
|
| 222 | LXVD2X (63,(4),(3))
|
| 223 | blr
|
| 224 | FUNC_END(loadvsx)
|
| 225 |
|
| 226 | FUNC_START(storevsx)
|
| 227 | lis 4, 0
|
| 228 | STXVD2X (0,(4),(3))
|
| 229 | addi 4, 4, 16
|
| 230 | STXVD2X (1,(4),(3))
|
| 231 | addi 4, 4, 16
|
| 232 | STXVD2X (2,(4),(3))
|
| 233 | addi 4, 4, 16
|
| 234 | STXVD2X (3,(4),(3))
|
| 235 | addi 4, 4, 16
|
| 236 | STXVD2X (4,(4),(3))
|
| 237 | addi 4, 4, 16
|
| 238 | STXVD2X (5,(4),(3))
|
| 239 | addi 4, 4, 16
|
| 240 | STXVD2X (6,(4),(3))
|
| 241 | addi 4, 4, 16
|
| 242 | STXVD2X (7,(4),(3))
|
| 243 | addi 4, 4, 16
|
| 244 | STXVD2X (8,(4),(3))
|
| 245 | addi 4, 4, 16
|
| 246 | STXVD2X (9,(4),(3))
|
| 247 | addi 4, 4, 16
|
| 248 | STXVD2X (10,(4),(3))
|
| 249 | addi 4, 4, 16
|
| 250 | STXVD2X (11,(4),(3))
|
| 251 | addi 4, 4, 16
|
| 252 | STXVD2X (12,(4),(3))
|
| 253 | addi 4, 4, 16
|
| 254 | STXVD2X (13,(4),(3))
|
| 255 | addi 4, 4, 16
|
| 256 | STXVD2X (14,(4),(3))
|
| 257 | addi 4, 4, 16
|
| 258 | STXVD2X (15,(4),(3))
|
| 259 | addi 4, 4, 16
|
| 260 | STXVD2X (16,(4),(3))
|
| 261 | addi 4, 4, 16
|
| 262 | STXVD2X (17,(4),(3))
|
| 263 | addi 4, 4, 16
|
| 264 | STXVD2X (18,(4),(3))
|
| 265 | addi 4, 4, 16
|
| 266 | STXVD2X (19,(4),(3))
|
| 267 | addi 4, 4, 16
|
| 268 | STXVD2X (20,(4),(3))
|
| 269 | addi 4, 4, 16
|
| 270 | STXVD2X (21,(4),(3))
|
| 271 | addi 4, 4, 16
|
| 272 | STXVD2X (22,(4),(3))
|
| 273 | addi 4, 4, 16
|
| 274 | STXVD2X (23,(4),(3))
|
| 275 | addi 4, 4, 16
|
| 276 | STXVD2X (24,(4),(3))
|
| 277 | addi 4, 4, 16
|
| 278 | STXVD2X (25,(4),(3))
|
| 279 | addi 4, 4, 16
|
| 280 | STXVD2X (26,(4),(3))
|
| 281 | addi 4, 4, 16
|
| 282 | STXVD2X (27,(4),(3))
|
| 283 | addi 4, 4, 16
|
| 284 | STXVD2X (28,(4),(3))
|
| 285 | addi 4, 4, 16
|
| 286 | STXVD2X (29,(4),(3))
|
| 287 | addi 4, 4, 16
|
| 288 | STXVD2X (30,(4),(3))
|
| 289 | addi 4, 4, 16
|
| 290 | STXVD2X (31,(4),(3))
|
| 291 | addi 4, 4, 16
|
| 292 | STXVD2X (32,(4),(3))
|
| 293 | addi 4, 4, 16
|
| 294 | STXVD2X (33,(4),(3))
|
| 295 | addi 4, 4, 16
|
| 296 | STXVD2X (34,(4),(3))
|
| 297 | addi 4, 4, 16
|
| 298 | STXVD2X (35,(4),(3))
|
| 299 | addi 4, 4, 16
|
| 300 | STXVD2X (36,(4),(3))
|
| 301 | addi 4, 4, 16
|
| 302 | STXVD2X (37,(4),(3))
|
| 303 | addi 4, 4, 16
|
| 304 | STXVD2X (38,(4),(3))
|
| 305 | addi 4, 4, 16
|
| 306 | STXVD2X (39,(4),(3))
|
| 307 | addi 4, 4, 16
|
| 308 | STXVD2X (40,(4),(3))
|
| 309 | addi 4, 4, 16
|
| 310 | STXVD2X (41,(4),(3))
|
| 311 | addi 4, 4, 16
|
| 312 | STXVD2X (42,(4),(3))
|
| 313 | addi 4, 4, 16
|
| 314 | STXVD2X (43,(4),(3))
|
| 315 | addi 4, 4, 16
|
| 316 | STXVD2X (44,(4),(3))
|
| 317 | addi 4, 4, 16
|
| 318 | STXVD2X (45,(4),(3))
|
| 319 | addi 4, 4, 16
|
| 320 | STXVD2X (46,(4),(3))
|
| 321 | addi 4, 4, 16
|
| 322 | STXVD2X (47,(4),(3))
|
| 323 | addi 4, 4, 16
|
| 324 | STXVD2X (48,(4),(3))
|
| 325 | addi 4, 4, 16
|
| 326 | STXVD2X (49,(4),(3))
|
| 327 | addi 4, 4, 16
|
| 328 | STXVD2X (50,(4),(3))
|
| 329 | addi 4, 4, 16
|
| 330 | STXVD2X (51,(4),(3))
|
| 331 | addi 4, 4, 16
|
| 332 | STXVD2X (52,(4),(3))
|
| 333 | addi 4, 4, 16
|
| 334 | STXVD2X (53,(4),(3))
|
| 335 | addi 4, 4, 16
|
| 336 | STXVD2X (54,(4),(3))
|
| 337 | addi 4, 4, 16
|
| 338 | STXVD2X (55,(4),(3))
|
| 339 | addi 4, 4, 16
|
| 340 | STXVD2X (56,(4),(3))
|
| 341 | addi 4, 4, 16
|
| 342 | STXVD2X (57,(4),(3))
|
| 343 | addi 4, 4, 16
|
| 344 | STXVD2X (58,(4),(3))
|
| 345 | addi 4, 4, 16
|
| 346 | STXVD2X (59,(4),(3))
|
| 347 | addi 4, 4, 16
|
| 348 | STXVD2X (60,(4),(3))
|
| 349 | addi 4, 4, 16
|
| 350 | STXVD2X (61,(4),(3))
|
| 351 | addi 4, 4, 16
|
| 352 | STXVD2X (62,(4),(3))
|
| 353 | addi 4, 4, 16
|
| 354 | STXVD2X (63,(4),(3))
|
| 355 | blr
|
| 356 | FUNC_END(storevsx)
|