.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * arch/arm/kernel/kprobes-test-arm.c |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or modify |
---|
7 | | - * it under the terms of the GNU General Public License version 2 as |
---|
8 | | - * published by the Free Software Foundation. |
---|
9 | 6 | */ |
---|
10 | 7 | |
---|
11 | 8 | #include <linux/kernel.h> |
---|
.. | .. |
---|
58 | 55 | TEST_GROUP("Data-processing (register), (register-shifted register), (immediate)") |
---|
59 | 56 | |
---|
60 | 57 | #define _DATA_PROCESSING_DNM(op,s,val) \ |
---|
61 | | - TEST_RR( op "eq" s " r0, r",1, VAL1,", r",2, val, "") \ |
---|
62 | | - TEST_RR( op "ne" s " r1, r",1, VAL1,", r",2, val, ", lsl #3") \ |
---|
63 | | - TEST_RR( op "cs" s " r2, r",3, VAL1,", r",2, val, ", lsr #4") \ |
---|
64 | | - TEST_RR( op "cc" s " r3, r",3, VAL1,", r",2, val, ", asr #5") \ |
---|
65 | | - TEST_RR( op "mi" s " r4, r",5, VAL1,", r",2, N(val),", asr #6") \ |
---|
66 | | - TEST_RR( op "pl" s " r5, r",5, VAL1,", r",2, val, ", ror #7") \ |
---|
67 | | - TEST_RR( op "vs" s " r6, r",7, VAL1,", r",2, val, ", rrx") \ |
---|
68 | | - TEST_R( op "vc" s " r6, r",7, VAL1,", pc, lsl #3") \ |
---|
69 | | - TEST_R( op "vc" s " r6, r",7, VAL1,", sp, lsr #4") \ |
---|
70 | | - TEST_R( op "vc" s " r6, pc, r",7, VAL1,", asr #5") \ |
---|
71 | | - TEST_R( op "vc" s " r6, sp, r",7, VAL1,", ror #6") \ |
---|
72 | | - TEST_RRR( op "hi" s " r8, r",9, VAL1,", r",14,val, ", lsl r",0, 3,"")\ |
---|
73 | | - TEST_RRR( op "ls" s " r9, r",9, VAL1,", r",14,val, ", lsr r",7, 4,"")\ |
---|
74 | | - TEST_RRR( op "ge" s " r10, r",11,VAL1,", r",14,val, ", asr r",7, 5,"")\ |
---|
75 | | - TEST_RRR( op "lt" s " r11, r",11,VAL1,", r",14,N(val),", asr r",7, 6,"")\ |
---|
76 | | - TEST_RR( op "gt" s " r12, r13" ", r",14,val, ", ror r",14,7,"")\ |
---|
77 | | - TEST_RR( op "le" s " r14, r",0, val, ", r13" ", lsl r",14,8,"")\ |
---|
78 | | - TEST_R( op "eq" s " r0, r",11,VAL1,", #0xf5") \ |
---|
79 | | - TEST_R( op "ne" s " r11, r",0, VAL1,", #0xf5000000") \ |
---|
| 58 | + TEST_RR( op s "eq r0, r",1, VAL1,", r",2, val, "") \ |
---|
| 59 | + TEST_RR( op s "ne r1, r",1, VAL1,", r",2, val, ", lsl #3") \ |
---|
| 60 | + TEST_RR( op s "cs r2, r",3, VAL1,", r",2, val, ", lsr #4") \ |
---|
| 61 | + TEST_RR( op s "cc r3, r",3, VAL1,", r",2, val, ", asr #5") \ |
---|
| 62 | + TEST_RR( op s "mi r4, r",5, VAL1,", r",2, N(val),", asr #6") \ |
---|
| 63 | + TEST_RR( op s "pl r5, r",5, VAL1,", r",2, val, ", ror #7") \ |
---|
| 64 | + TEST_RR( op s "vs r6, r",7, VAL1,", r",2, val, ", rrx") \ |
---|
| 65 | + TEST_R( op s "vc r6, r",7, VAL1,", pc, lsl #3") \ |
---|
| 66 | + TEST_R( op s "vc r6, r",7, VAL1,", sp, lsr #4") \ |
---|
| 67 | + TEST_R( op s "vc r6, pc, r",7, VAL1,", asr #5") \ |
---|
| 68 | + TEST_R( op s "vc r6, sp, r",7, VAL1,", ror #6") \ |
---|
| 69 | + TEST_RRR( op s "hi r8, r",9, VAL1,", r",14,val, ", lsl r",0, 3,"")\ |
---|
| 70 | + TEST_RRR( op s "ls r9, r",9, VAL1,", r",14,val, ", lsr r",7, 4,"")\ |
---|
| 71 | + TEST_RRR( op s "ge r10, r",11,VAL1,", r",14,val, ", asr r",7, 5,"")\ |
---|
| 72 | + TEST_RRR( op s "lt r11, r",11,VAL1,", r",14,N(val),", asr r",7, 6,"")\ |
---|
| 73 | + TEST_RR( op s "gt r12, r13" ", r",14,val, ", ror r",14,7,"")\ |
---|
| 74 | + TEST_RR( op s "le r14, r",0, val, ", r13" ", lsl r",14,8,"")\ |
---|
| 75 | + TEST_R( op s "eq r0, r",11,VAL1,", #0xf5") \ |
---|
| 76 | + TEST_R( op s "ne r11, r",0, VAL1,", #0xf5000000") \ |
---|
80 | 77 | TEST_R( op s " r7, r",8, VAL2,", #0x000af000") \ |
---|
81 | 78 | TEST( op s " r4, pc" ", #0x00005a00") |
---|
82 | 79 | |
---|
.. | .. |
---|
107 | 104 | TEST_R( op " r",8, VAL2,", #0x000af000") |
---|
108 | 105 | |
---|
109 | 106 | #define _DATA_PROCESSING_DM(op,s,val) \ |
---|
110 | | - TEST_R( op "eq" s " r0, r",1, val, "") \ |
---|
111 | | - TEST_R( op "ne" s " r1, r",1, val, ", lsl #3") \ |
---|
112 | | - TEST_R( op "cs" s " r2, r",3, val, ", lsr #4") \ |
---|
113 | | - TEST_R( op "cc" s " r3, r",3, val, ", asr #5") \ |
---|
114 | | - TEST_R( op "mi" s " r4, r",5, N(val),", asr #6") \ |
---|
115 | | - TEST_R( op "pl" s " r5, r",5, val, ", ror #7") \ |
---|
116 | | - TEST_R( op "vs" s " r6, r",10,val, ", rrx") \ |
---|
117 | | - TEST( op "vs" s " r7, pc, lsl #3") \ |
---|
118 | | - TEST( op "vs" s " r7, sp, lsr #4") \ |
---|
119 | | - TEST_RR( op "vc" s " r8, r",7, val, ", lsl r",0, 3,"") \ |
---|
120 | | - TEST_RR( op "hi" s " r9, r",9, val, ", lsr r",7, 4,"") \ |
---|
121 | | - TEST_RR( op "ls" s " r10, r",9, val, ", asr r",7, 5,"") \ |
---|
122 | | - TEST_RR( op "ge" s " r11, r",11,N(val),", asr r",7, 6,"") \ |
---|
123 | | - TEST_RR( op "lt" s " r12, r",11,val, ", ror r",14,7,"") \ |
---|
124 | | - TEST_R( op "gt" s " r14, r13" ", lsl r",14,8,"") \ |
---|
125 | | - TEST( op "eq" s " r0, #0xf5") \ |
---|
126 | | - TEST( op "ne" s " r11, #0xf5000000") \ |
---|
| 107 | + TEST_R( op s "eq r0, r",1, val, "") \ |
---|
| 108 | + TEST_R( op s "ne r1, r",1, val, ", lsl #3") \ |
---|
| 109 | + TEST_R( op s "cs r2, r",3, val, ", lsr #4") \ |
---|
| 110 | + TEST_R( op s "cc r3, r",3, val, ", asr #5") \ |
---|
| 111 | + TEST_R( op s "mi r4, r",5, N(val),", asr #6") \ |
---|
| 112 | + TEST_R( op s "pl r5, r",5, val, ", ror #7") \ |
---|
| 113 | + TEST_R( op s "vs r6, r",10,val, ", rrx") \ |
---|
| 114 | + TEST( op s "vs r7, pc, lsl #3") \ |
---|
| 115 | + TEST( op s "vs r7, sp, lsr #4") \ |
---|
| 116 | + TEST_RR( op s "vc r8, r",7, val, ", lsl r",0, 3,"") \ |
---|
| 117 | + TEST_RR( op s "hi r9, r",9, val, ", lsr r",7, 4,"") \ |
---|
| 118 | + TEST_RR( op s "ls r10, r",9, val, ", asr r",7, 5,"") \ |
---|
| 119 | + TEST_RR( op s "ge r11, r",11,N(val),", asr r",7, 6,"") \ |
---|
| 120 | + TEST_RR( op s "lt r12, r",11,val, ", ror r",14,7,"") \ |
---|
| 121 | + TEST_R( op s "gt r14, r13" ", lsl r",14,8,"") \ |
---|
| 122 | + TEST( op s "eq r0, #0xf5") \ |
---|
| 123 | + TEST( op s "ne r11, #0xf5000000") \ |
---|
127 | 124 | TEST( op s " r7, #0x000af000") \ |
---|
128 | 125 | TEST( op s " r4, #0x00005a00") |
---|
129 | 126 | |
---|
.. | .. |
---|
169 | 166 | |
---|
170 | 167 | /* Data-processing with PC as a target and status registers updated */ |
---|
171 | 168 | TEST_UNSUPPORTED("movs pc, r1") |
---|
172 | | - TEST_UNSUPPORTED("movs pc, r1, lsl r2") |
---|
| 169 | + TEST_UNSUPPORTED(__inst_arm(0xe1b0f211) " @movs pc, r1, lsl r2") |
---|
173 | 170 | TEST_UNSUPPORTED("movs pc, #0x10000") |
---|
174 | 171 | TEST_UNSUPPORTED("adds pc, lr, r1") |
---|
175 | | - TEST_UNSUPPORTED("adds pc, lr, r1, lsl r2") |
---|
| 172 | + TEST_UNSUPPORTED(__inst_arm(0xe09ef211) " @adds pc, lr, r1, lsl r2") |
---|
176 | 173 | TEST_UNSUPPORTED("adds pc, lr, #4") |
---|
177 | 174 | |
---|
178 | 175 | /* Data-processing with SP as target */ |
---|
.. | .. |
---|
355 | 352 | TEST_UNSUPPORTED(__inst_arm(0xe000029f) " @ mul r0, pc, r2") |
---|
356 | 353 | TEST_UNSUPPORTED(__inst_arm(0xe0000f91) " @ mul r0, r1, pc") |
---|
357 | 354 | TEST_RR( "muls r0, r",1, VAL1,", r",2, VAL2,"") |
---|
358 | | - TEST_RR( "mullss r7, r",8, VAL2,", r",9, VAL2,"") |
---|
| 355 | + TEST_RR( "mulsls r7, r",8, VAL2,", r",9, VAL2,"") |
---|
359 | 356 | TEST_R( "muls lr, r",4, VAL3,", r13") |
---|
360 | 357 | TEST_UNSUPPORTED(__inst_arm(0xe01f0291) " @ muls pc, r1, r2") |
---|
361 | 358 | |
---|
.. | .. |
---|
364 | 361 | TEST_RR( "mla lr, r",1, VAL2,", r",2, VAL3,", r13") |
---|
365 | 362 | TEST_UNSUPPORTED(__inst_arm(0xe02f3291) " @ mla pc, r1, r2, r3") |
---|
366 | 363 | TEST_RRR( "mlas r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") |
---|
367 | | - TEST_RRR( "mlahis r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") |
---|
| 364 | + TEST_RRR( "mlashi r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") |
---|
368 | 365 | TEST_RR( "mlas lr, r",1, VAL2,", r",2, VAL3,", r13") |
---|
369 | 366 | TEST_UNSUPPORTED(__inst_arm(0xe03f3291) " @ mlas pc, r1, r2, r3") |
---|
370 | 367 | |
---|
.. | .. |
---|
397 | 394 | TEST_UNSUPPORTED(__inst_arm(0xe081f392) " @ umull pc, r1, r2, r3") |
---|
398 | 395 | TEST_UNSUPPORTED(__inst_arm(0xe08f1392) " @ umull r1, pc, r2, r3") |
---|
399 | 396 | TEST_RR( "umulls r0, r1, r",2, VAL1,", r",3, VAL2,"") |
---|
400 | | - TEST_RR( "umulllss r7, r8, r",9, VAL2,", r",10, VAL1,"") |
---|
| 397 | + TEST_RR( "umullsls r7, r8, r",9, VAL2,", r",10, VAL1,"") |
---|
401 | 398 | TEST_R( "umulls lr, r12, r",11,VAL3,", r13") |
---|
402 | 399 | TEST_UNSUPPORTED(__inst_arm(0xe091f392) " @ umulls pc, r1, r2, r3") |
---|
403 | 400 | TEST_UNSUPPORTED(__inst_arm(0xe09f1392) " @ umulls r1, pc, r2, r3") |
---|
.. | .. |
---|
408 | 405 | TEST_UNSUPPORTED(__inst_arm(0xe0af1392) " @ umlal pc, r1, r2, r3") |
---|
409 | 406 | TEST_UNSUPPORTED(__inst_arm(0xe0a1f392) " @ umlal r1, pc, r2, r3") |
---|
410 | 407 | TEST_RRRR( "umlals r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) |
---|
411 | | - TEST_RRRR( "umlalles r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) |
---|
| 408 | + TEST_RRRR( "umlalsle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) |
---|
412 | 409 | TEST_RRR( "umlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") |
---|
413 | 410 | TEST_UNSUPPORTED(__inst_arm(0xe0bf1392) " @ umlals pc, r1, r2, r3") |
---|
414 | 411 | TEST_UNSUPPORTED(__inst_arm(0xe0b1f392) " @ umlals r1, pc, r2, r3") |
---|
.. | .. |
---|
419 | 416 | TEST_UNSUPPORTED(__inst_arm(0xe0c1f392) " @ smull pc, r1, r2, r3") |
---|
420 | 417 | TEST_UNSUPPORTED(__inst_arm(0xe0cf1392) " @ smull r1, pc, r2, r3") |
---|
421 | 418 | TEST_RR( "smulls r0, r1, r",2, VAL1,", r",3, VAL2,"") |
---|
422 | | - TEST_RR( "smulllss r7, r8, r",9, VAL2,", r",10, VAL1,"") |
---|
| 419 | + TEST_RR( "smullsls r7, r8, r",9, VAL2,", r",10, VAL1,"") |
---|
423 | 420 | TEST_R( "smulls lr, r12, r",11,VAL3,", r13") |
---|
424 | 421 | TEST_UNSUPPORTED(__inst_arm(0xe0d1f392) " @ smulls pc, r1, r2, r3") |
---|
425 | 422 | TEST_UNSUPPORTED(__inst_arm(0xe0df1392) " @ smulls r1, pc, r2, r3") |
---|
.. | .. |
---|
430 | 427 | TEST_UNSUPPORTED(__inst_arm(0xe0ef1392) " @ smlal pc, r1, r2, r3") |
---|
431 | 428 | TEST_UNSUPPORTED(__inst_arm(0xe0e1f392) " @ smlal r1, pc, r2, r3") |
---|
432 | 429 | TEST_RRRR( "smlals r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) |
---|
433 | | - TEST_RRRR( "smlalles r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) |
---|
| 430 | + TEST_RRRR( "smlalsle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) |
---|
434 | 431 | TEST_RRR( "smlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") |
---|
435 | 432 | TEST_UNSUPPORTED(__inst_arm(0xe0ff1392) " @ smlals pc, r1, r2, r3") |
---|
436 | 433 | TEST_UNSUPPORTED(__inst_arm(0xe0f0f392) " @ smlals r0, pc, r2, r3") |
---|
.. | .. |
---|
453 | 450 | TEST_UNSUPPORTED(__inst_arm(0xe10f0091) " @ swp r0, r1, [pc]") |
---|
454 | 451 | #if __LINUX_ARM_ARCH__ < 6 |
---|
455 | 452 | TEST_RP("swpb lr, r",7,VAL2,", [r",8,0,"]") |
---|
456 | | - TEST_R( "swpvsb r0, r",1,VAL1,", [sp]") |
---|
| 453 | + TEST_R( "swpbvs r0, r",1,VAL1,", [sp]") |
---|
457 | 454 | #else |
---|
458 | 455 | TEST_UNSUPPORTED(__inst_arm(0xe148e097) " @ swpb lr, r7, [r8]") |
---|
459 | 456 | TEST_UNSUPPORTED(__inst_arm(0x614d0091) " @ swpvsb r0, r1, [sp]") |
---|
.. | .. |
---|
480 | 477 | TEST_GROUP("Extra load/store instructions") |
---|
481 | 478 | |
---|
482 | 479 | TEST_RPR( "strh r",0, VAL1,", [r",1, 48,", -r",2, 24,"]") |
---|
483 | | - TEST_RPR( "streqh r",14,VAL2,", [r",11,0, ", r",12, 48,"]") |
---|
484 | | - TEST_UNSUPPORTED( "streqh r14, [r13, r12]") |
---|
485 | | - TEST_UNSUPPORTED( "streqh r14, [r12, r13]") |
---|
| 480 | + TEST_RPR( "strheq r",14,VAL2,", [r",11,0, ", r",12, 48,"]") |
---|
| 481 | + TEST_UNSUPPORTED( "strheq r14, [r13, r12]") |
---|
| 482 | + TEST_UNSUPPORTED( "strheq r14, [r12, r13]") |
---|
486 | 483 | TEST_RPR( "strh r",1, VAL1,", [r",2, 24,", r",3, 48,"]!") |
---|
487 | | - TEST_RPR( "strneh r",12,VAL2,", [r",11,48,", -r",10,24,"]!") |
---|
| 484 | + TEST_RPR( "strhne r",12,VAL2,", [r",11,48,", -r",10,24,"]!") |
---|
488 | 485 | TEST_RPR( "strh r",2, VAL1,", [r",3, 24,"], r",4, 48,"") |
---|
489 | 486 | TEST_RPR( "strh r",10,VAL2,", [r",9, 48,"], -r",11,24,"") |
---|
490 | 487 | TEST_UNSUPPORTED(__inst_arm(0xe1afc0ba) " @ strh r12, [pc, r10]!") |
---|
.. | .. |
---|
492 | 489 | TEST_UNSUPPORTED(__inst_arm(0xe089a0bf) " @ strh r10, [r9], pc") |
---|
493 | 490 | |
---|
494 | 491 | TEST_PR( "ldrh r0, [r",0, 48,", -r",2, 24,"]") |
---|
495 | | - TEST_PR( "ldrcsh r14, [r",13,0, ", r",12, 48,"]") |
---|
| 492 | + TEST_PR( "ldrhcs r14, [r",13,0, ", r",12, 48,"]") |
---|
496 | 493 | TEST_PR( "ldrh r1, [r",2, 24,", r",3, 48,"]!") |
---|
497 | | - TEST_PR( "ldrcch r12, [r",11,48,", -r",10,24,"]!") |
---|
| 494 | + TEST_PR( "ldrhcc r12, [r",11,48,", -r",10,24,"]!") |
---|
498 | 495 | TEST_PR( "ldrh r2, [r",3, 24,"], r",4, 48,"") |
---|
499 | 496 | TEST_PR( "ldrh r10, [r",9, 48,"], -r",11,24,"") |
---|
500 | 497 | TEST_UNSUPPORTED(__inst_arm(0xe1bfc0ba) " @ ldrh r12, [pc, r10]!") |
---|
.. | .. |
---|
502 | 499 | TEST_UNSUPPORTED(__inst_arm(0xe099a0bf) " @ ldrh r10, [r9], pc") |
---|
503 | 500 | |
---|
504 | 501 | TEST_RP( "strh r",0, VAL1,", [r",1, 24,", #-2]") |
---|
505 | | - TEST_RP( "strmih r",14,VAL2,", [r",13,0, ", #2]") |
---|
| 502 | + TEST_RP( "strhmi r",14,VAL2,", [r",13,0, ", #2]") |
---|
506 | 503 | TEST_RP( "strh r",1, VAL1,", [r",2, 24,", #4]!") |
---|
507 | | - TEST_RP( "strplh r",12,VAL2,", [r",11,24,", #-4]!") |
---|
| 504 | + TEST_RP( "strhpl r",12,VAL2,", [r",11,24,", #-4]!") |
---|
508 | 505 | TEST_RP( "strh r",2, VAL1,", [r",3, 24,"], #48") |
---|
509 | 506 | TEST_RP( "strh r",10,VAL2,", [r",9, 64,"], #-48") |
---|
510 | 507 | TEST_RP( "strh r",3, VAL1,", [r",13,TEST_MEMORY_SIZE,", #-"__stringify(MAX_STACK_SIZE)"]!") |
---|
.. | .. |
---|
514 | 511 | TEST_UNSUPPORTED(__inst_arm(0xe0c9f3b0) " @ strh pc, [r9], #48") |
---|
515 | 512 | |
---|
516 | 513 | TEST_P( "ldrh r0, [r",0, 24,", #-2]") |
---|
517 | | - TEST_P( "ldrvsh r14, [r",13,0, ", #2]") |
---|
| 514 | + TEST_P( "ldrhvs r14, [r",13,0, ", #2]") |
---|
518 | 515 | TEST_P( "ldrh r1, [r",2, 24,", #4]!") |
---|
519 | | - TEST_P( "ldrvch r12, [r",11,24,", #-4]!") |
---|
| 516 | + TEST_P( "ldrhvc r12, [r",11,24,", #-4]!") |
---|
520 | 517 | TEST_P( "ldrh r2, [r",3, 24,"], #48") |
---|
521 | 518 | TEST_P( "ldrh r10, [r",9, 64,"], #-48") |
---|
522 | 519 | TEST( "ldrh r0, [pc, #0]") |
---|
.. | .. |
---|
524 | 521 | TEST_UNSUPPORTED(__inst_arm(0xe0d9f3b0) " @ ldrh pc, [r9], #48") |
---|
525 | 522 | |
---|
526 | 523 | TEST_PR( "ldrsb r0, [r",0, 48,", -r",2, 24,"]") |
---|
527 | | - TEST_PR( "ldrhisb r14, [r",13,0,", r",12, 48,"]") |
---|
| 524 | + TEST_PR( "ldrsbhi r14, [r",13,0,", r",12, 48,"]") |
---|
528 | 525 | TEST_PR( "ldrsb r1, [r",2, 24,", r",3, 48,"]!") |
---|
529 | | - TEST_PR( "ldrlssb r12, [r",11,48,", -r",10,24,"]!") |
---|
| 526 | + TEST_PR( "ldrsbls r12, [r",11,48,", -r",10,24,"]!") |
---|
530 | 527 | TEST_PR( "ldrsb r2, [r",3, 24,"], r",4, 48,"") |
---|
531 | 528 | TEST_PR( "ldrsb r10, [r",9, 48,"], -r",11,24,"") |
---|
532 | 529 | TEST_UNSUPPORTED(__inst_arm(0xe1bfc0da) " @ ldrsb r12, [pc, r10]!") |
---|
533 | 530 | TEST_UNSUPPORTED(__inst_arm(0xe099f0db) " @ ldrsb pc, [r9], r11") |
---|
534 | 531 | |
---|
535 | 532 | TEST_P( "ldrsb r0, [r",0, 24,", #-1]") |
---|
536 | | - TEST_P( "ldrgesb r14, [r",13,0, ", #1]") |
---|
| 533 | + TEST_P( "ldrsbge r14, [r",13,0, ", #1]") |
---|
537 | 534 | TEST_P( "ldrsb r1, [r",2, 24,", #4]!") |
---|
538 | | - TEST_P( "ldrltsb r12, [r",11,24,", #-4]!") |
---|
| 535 | + TEST_P( "ldrsblt r12, [r",11,24,", #-4]!") |
---|
539 | 536 | TEST_P( "ldrsb r2, [r",3, 24,"], #48") |
---|
540 | 537 | TEST_P( "ldrsb r10, [r",9, 64,"], #-48") |
---|
541 | 538 | TEST( "ldrsb r0, [pc, #0]") |
---|
.. | .. |
---|
543 | 540 | TEST_UNSUPPORTED(__inst_arm(0xe0d9f3d0) " @ ldrsb pc, [r9], #48") |
---|
544 | 541 | |
---|
545 | 542 | TEST_PR( "ldrsh r0, [r",0, 48,", -r",2, 24,"]") |
---|
546 | | - TEST_PR( "ldrgtsh r14, [r",13,0, ", r",12, 48,"]") |
---|
| 543 | + TEST_PR( "ldrshgt r14, [r",13,0, ", r",12, 48,"]") |
---|
547 | 544 | TEST_PR( "ldrsh r1, [r",2, 24,", r",3, 48,"]!") |
---|
548 | | - TEST_PR( "ldrlesh r12, [r",11,48,", -r",10,24,"]!") |
---|
| 545 | + TEST_PR( "ldrshle r12, [r",11,48,", -r",10,24,"]!") |
---|
549 | 546 | TEST_PR( "ldrsh r2, [r",3, 24,"], r",4, 48,"") |
---|
550 | 547 | TEST_PR( "ldrsh r10, [r",9, 48,"], -r",11,24,"") |
---|
551 | 548 | TEST_UNSUPPORTED(__inst_arm(0xe1bfc0fa) " @ ldrsh r12, [pc, r10]!") |
---|
552 | 549 | TEST_UNSUPPORTED(__inst_arm(0xe099f0fb) " @ ldrsh pc, [r9], r11") |
---|
553 | 550 | |
---|
554 | 551 | TEST_P( "ldrsh r0, [r",0, 24,", #-1]") |
---|
555 | | - TEST_P( "ldreqsh r14, [r",13,0 ,", #1]") |
---|
| 552 | + TEST_P( "ldrsheq r14, [r",13,0 ,", #1]") |
---|
556 | 553 | TEST_P( "ldrsh r1, [r",2, 24,", #4]!") |
---|
557 | | - TEST_P( "ldrnesh r12, [r",11,24,", #-4]!") |
---|
| 554 | + TEST_P( "ldrshne r12, [r",11,24,", #-4]!") |
---|
558 | 555 | TEST_P( "ldrsh r2, [r",3, 24,"], #48") |
---|
559 | 556 | TEST_P( "ldrsh r10, [r",9, 64,"], #-48") |
---|
560 | 557 | TEST( "ldrsh r0, [pc, #0]") |
---|
.. | .. |
---|
574 | 571 | |
---|
575 | 572 | #if __LINUX_ARM_ARCH__ >= 5 |
---|
576 | 573 | TEST_RPR( "strd r",0, VAL1,", [r",1, 48,", -r",2,24,"]") |
---|
577 | | - TEST_RPR( "strccd r",8, VAL2,", [r",11,0, ", r",12,48,"]") |
---|
578 | | - TEST_UNSUPPORTED( "strccd r8, [r13, r12]") |
---|
579 | | - TEST_UNSUPPORTED( "strccd r8, [r12, r13]") |
---|
| 574 | + TEST_RPR( "strdcc r",8, VAL2,", [r",11,0, ", r",12,48,"]") |
---|
| 575 | + TEST_UNSUPPORTED( "strdcc r8, [r13, r12]") |
---|
| 576 | + TEST_UNSUPPORTED( "strdcc r8, [r12, r13]") |
---|
580 | 577 | TEST_RPR( "strd r",4, VAL1,", [r",2, 24,", r",3, 48,"]!") |
---|
581 | | - TEST_RPR( "strcsd r",12,VAL2,", [r",11,48,", -r",10,24,"]!") |
---|
582 | | - TEST_RPR( "strd r",2, VAL1,", [r",5, 24,"], r",4,48,"") |
---|
583 | | - TEST_RPR( "strd r",10,VAL2,", [r",9, 48,"], -r",7,24,"") |
---|
| 578 | + TEST_RPR( "strdcs r",12,VAL2,", r13, [r",11,48,", -r",10,24,"]!") |
---|
| 579 | + TEST_RPR( "strd r",2, VAL1,", r3, [r",5, 24,"], r",4,48,"") |
---|
| 580 | + TEST_RPR( "strd r",10,VAL2,", r11, [r",9, 48,"], -r",7,24,"") |
---|
584 | 581 | TEST_UNSUPPORTED(__inst_arm(0xe1afc0fa) " @ strd r12, [pc, r10]!") |
---|
585 | 582 | |
---|
586 | 583 | TEST_PR( "ldrd r0, [r",0, 48,", -r",2,24,"]") |
---|
587 | | - TEST_PR( "ldrmid r8, [r",13,0, ", r",12,48,"]") |
---|
| 584 | + TEST_PR( "ldrdmi r8, [r",13,0, ", r",12,48,"]") |
---|
588 | 585 | TEST_PR( "ldrd r4, [r",2, 24,", r",3, 48,"]!") |
---|
589 | | - TEST_PR( "ldrpld r6, [r",11,48,", -r",10,24,"]!") |
---|
590 | | - TEST_PR( "ldrd r2, [r",5, 24,"], r",4,48,"") |
---|
591 | | - TEST_PR( "ldrd r10, [r",9,48,"], -r",7,24,"") |
---|
| 586 | + TEST_PR( "ldrdpl r6, [r",11,48,", -r",10,24,"]!") |
---|
| 587 | + TEST_PR( "ldrd r2, r3, [r",5, 24,"], r",4,48,"") |
---|
| 588 | + TEST_PR( "ldrd r10, r11, [r",9,48,"], -r",7,24,"") |
---|
592 | 589 | TEST_UNSUPPORTED(__inst_arm(0xe1afc0da) " @ ldrd r12, [pc, r10]!") |
---|
593 | 590 | TEST_UNSUPPORTED(__inst_arm(0xe089f0db) " @ ldrd pc, [r9], r11") |
---|
594 | 591 | TEST_UNSUPPORTED(__inst_arm(0xe089e0db) " @ ldrd lr, [r9], r11") |
---|
595 | 592 | TEST_UNSUPPORTED(__inst_arm(0xe089c0df) " @ ldrd r12, [r9], pc") |
---|
596 | 593 | |
---|
597 | 594 | TEST_RP( "strd r",0, VAL1,", [r",1, 24,", #-8]") |
---|
598 | | - TEST_RP( "strvsd r",8, VAL2,", [r",13,0, ", #8]") |
---|
| 595 | + TEST_RP( "strdvs r",8, VAL2,", [r",13,0, ", #8]") |
---|
599 | 596 | TEST_RP( "strd r",4, VAL1,", [r",2, 24,", #16]!") |
---|
600 | | - TEST_RP( "strvcd r",12,VAL2,", [r",11,24,", #-16]!") |
---|
| 597 | + TEST_RP( "strdvc r",12,VAL2,", r13, [r",11,24,", #-16]!") |
---|
601 | 598 | TEST_RP( "strd r",2, VAL1,", [r",4, 24,"], #48") |
---|
602 | 599 | TEST_RP( "strd r",10,VAL2,", [r",9, 64,"], #-48") |
---|
603 | 600 | TEST_RP( "strd r",6, VAL1,", [r",13,TEST_MEMORY_SIZE,", #-"__stringify(MAX_STACK_SIZE)"]!") |
---|
.. | .. |
---|
606 | 603 | TEST_UNSUPPORTED(__inst_arm(0xe1efc3f0) " @ strd r12, [pc, #48]!") |
---|
607 | 604 | |
---|
608 | 605 | TEST_P( "ldrd r0, [r",0, 24,", #-8]") |
---|
609 | | - TEST_P( "ldrhid r8, [r",13,0, ", #8]") |
---|
| 606 | + TEST_P( "ldrdhi r8, [r",13,0, ", #8]") |
---|
610 | 607 | TEST_P( "ldrd r4, [r",2, 24,", #16]!") |
---|
611 | | - TEST_P( "ldrlsd r6, [r",11,24,", #-16]!") |
---|
| 608 | + TEST_P( "ldrdls r6, [r",11,24,", #-16]!") |
---|
612 | 609 | TEST_P( "ldrd r2, [r",5, 24,"], #48") |
---|
613 | 610 | TEST_P( "ldrd r10, [r",9,6,"], #-48") |
---|
614 | 611 | TEST_UNSUPPORTED(__inst_arm(0xe1efc3d0) " @ ldrd r12, [pc, #48]!") |
---|
.. | .. |
---|
1087 | 1084 | TEST_GROUP("Branch, branch with link, and block data transfer") |
---|
1088 | 1085 | |
---|
1089 | 1086 | TEST_P( "stmda r",0, 16*4,", {r0}") |
---|
1090 | | - TEST_P( "stmeqda r",4, 16*4,", {r0-r15}") |
---|
1091 | | - TEST_P( "stmneda r",8, 16*4,"!, {r8-r15}") |
---|
| 1087 | + TEST_P( "stmdaeq r",4, 16*4,", {r0-r15}") |
---|
| 1088 | + TEST_P( "stmdane r",8, 16*4,"!, {r8-r15}") |
---|
1092 | 1089 | TEST_P( "stmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1093 | 1090 | TEST_P( "stmda r",13,0, "!, {pc}") |
---|
1094 | 1091 | |
---|
1095 | 1092 | TEST_P( "ldmda r",0, 16*4,", {r0}") |
---|
1096 | | - TEST_BF_P("ldmcsda r",4, 15*4,", {r0-r15}") |
---|
1097 | | - TEST_BF_P("ldmccda r",7, 15*4,"!, {r8-r15}") |
---|
| 1093 | + TEST_BF_P("ldmdacs r",4, 15*4,", {r0-r15}") |
---|
| 1094 | + TEST_BF_P("ldmdacc r",7, 15*4,"!, {r8-r15}") |
---|
1098 | 1095 | TEST_P( "ldmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1099 | 1096 | TEST_BF_P("ldmda r",14,15*4,"!, {pc}") |
---|
1100 | 1097 | |
---|
1101 | 1098 | TEST_P( "stmia r",0, 16*4,", {r0}") |
---|
1102 | | - TEST_P( "stmmiia r",4, 16*4,", {r0-r15}") |
---|
1103 | | - TEST_P( "stmplia r",8, 16*4,"!, {r8-r15}") |
---|
| 1099 | + TEST_P( "stmiami r",4, 16*4,", {r0-r15}") |
---|
| 1100 | + TEST_P( "stmiapl r",8, 16*4,"!, {r8-r15}") |
---|
1104 | 1101 | TEST_P( "stmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1105 | 1102 | TEST_P( "stmia r",14,0, "!, {pc}") |
---|
1106 | 1103 | |
---|
1107 | 1104 | TEST_P( "ldmia r",0, 16*4,", {r0}") |
---|
1108 | | - TEST_BF_P("ldmvsia r",4, 0, ", {r0-r15}") |
---|
1109 | | - TEST_BF_P("ldmvcia r",7, 8*4, "!, {r8-r15}") |
---|
| 1105 | + TEST_BF_P("ldmiavs r",4, 0, ", {r0-r15}") |
---|
| 1106 | + TEST_BF_P("ldmiavc r",7, 8*4, "!, {r8-r15}") |
---|
1110 | 1107 | TEST_P( "ldmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1111 | 1108 | TEST_BF_P("ldmia r",14,15*4,"!, {pc}") |
---|
1112 | 1109 | |
---|
1113 | 1110 | TEST_P( "stmdb r",0, 16*4,", {r0}") |
---|
1114 | | - TEST_P( "stmhidb r",4, 16*4,", {r0-r15}") |
---|
1115 | | - TEST_P( "stmlsdb r",8, 16*4,"!, {r8-r15}") |
---|
| 1111 | + TEST_P( "stmdbhi r",4, 16*4,", {r0-r15}") |
---|
| 1112 | + TEST_P( "stmdbls r",8, 16*4,"!, {r8-r15}") |
---|
1116 | 1113 | TEST_P( "stmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1117 | 1114 | TEST_P( "stmdb r",13,4, "!, {pc}") |
---|
1118 | 1115 | |
---|
1119 | 1116 | TEST_P( "ldmdb r",0, 16*4,", {r0}") |
---|
1120 | | - TEST_BF_P("ldmgedb r",4, 16*4,", {r0-r15}") |
---|
1121 | | - TEST_BF_P("ldmltdb r",7, 16*4,"!, {r8-r15}") |
---|
| 1117 | + TEST_BF_P("ldmdbge r",4, 16*4,", {r0-r15}") |
---|
| 1118 | + TEST_BF_P("ldmdblt r",7, 16*4,"!, {r8-r15}") |
---|
1122 | 1119 | TEST_P( "ldmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1123 | 1120 | TEST_BF_P("ldmdb r",14,16*4,"!, {pc}") |
---|
1124 | 1121 | |
---|
1125 | 1122 | TEST_P( "stmib r",0, 16*4,", {r0}") |
---|
1126 | | - TEST_P( "stmgtib r",4, 16*4,", {r0-r15}") |
---|
1127 | | - TEST_P( "stmleib r",8, 16*4,"!, {r8-r15}") |
---|
| 1123 | + TEST_P( "stmibgt r",4, 16*4,", {r0-r15}") |
---|
| 1124 | + TEST_P( "stmible r",8, 16*4,"!, {r8-r15}") |
---|
1128 | 1125 | TEST_P( "stmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1129 | 1126 | TEST_P( "stmib r",13,-4, "!, {pc}") |
---|
1130 | 1127 | |
---|
1131 | 1128 | TEST_P( "ldmib r",0, 16*4,", {r0}") |
---|
1132 | | - TEST_BF_P("ldmeqib r",4, -4,", {r0-r15}") |
---|
1133 | | - TEST_BF_P("ldmneib r",7, 7*4,"!, {r8-r15}") |
---|
| 1129 | + TEST_BF_P("ldmibeq r",4, -4,", {r0-r15}") |
---|
| 1130 | + TEST_BF_P("ldmibne r",7, 7*4,"!, {r8-r15}") |
---|
1134 | 1131 | TEST_P( "ldmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") |
---|
1135 | 1132 | TEST_BF_P("ldmib r",14,14*4,"!, {pc}") |
---|
1136 | 1133 | |
---|
1137 | 1134 | TEST_P( "stmdb r",13,16*4,"!, {r3-r12,lr}") |
---|
1138 | | - TEST_P( "stmeqdb r",13,16*4,"!, {r3-r12}") |
---|
1139 | | - TEST_P( "stmnedb r",2, 16*4,", {r3-r12,lr}") |
---|
| 1135 | + TEST_P( "stmdbeq r",13,16*4,"!, {r3-r12}") |
---|
| 1136 | + TEST_P( "stmdbne r",2, 16*4,", {r3-r12,lr}") |
---|
1140 | 1137 | TEST_P( "stmdb r",13,16*4,"!, {r2-r12,lr}") |
---|
1141 | 1138 | TEST_P( "stmdb r",0, 16*4,", {r0-r12}") |
---|
1142 | 1139 | TEST_P( "stmdb r",0, 16*4,", {r0-r12,lr}") |
---|
1143 | 1140 | |
---|
1144 | 1141 | TEST_BF_P("ldmia r",13,5*4, "!, {r3-r12,pc}") |
---|
1145 | | - TEST_P( "ldmccia r",13,5*4, "!, {r3-r12}") |
---|
1146 | | - TEST_BF_P("ldmcsia r",2, 5*4, "!, {r3-r12,pc}") |
---|
| 1142 | + TEST_P( "ldmiacc r",13,5*4, "!, {r3-r12}") |
---|
| 1143 | + TEST_BF_P("ldmiacs r",2, 5*4, "!, {r3-r12,pc}") |
---|
1147 | 1144 | TEST_BF_P("ldmia r",13,4*4, "!, {r2-r12,pc}") |
---|
1148 | 1145 | TEST_P( "ldmia r",0, 16*4,", {r0-r12}") |
---|
1149 | 1146 | TEST_P( "ldmia r",0, 16*4,", {r0-r12,lr}") |
---|
.. | .. |
---|
1177 | 1174 | #define TEST_COPROCESSOR(code) TEST_UNSUPPORTED(code) |
---|
1178 | 1175 | |
---|
1179 | 1176 | #define COPROCESSOR_INSTRUCTIONS_ST_LD(two,cc) \ |
---|
1180 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #4]") \ |
---|
1181 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #-4]") \ |
---|
1182 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #4]!") \ |
---|
1183 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #-4]!") \ |
---|
1184 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13], #4") \ |
---|
1185 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13], #-4") \ |
---|
1186 | | - TEST_COPROCESSOR("stc"two" 0, cr0, [r13], {1}") \ |
---|
1187 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #4]") \ |
---|
1188 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #-4]") \ |
---|
1189 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #4]!") \ |
---|
1190 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #-4]!") \ |
---|
1191 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], #4") \ |
---|
1192 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], #-4") \ |
---|
1193 | | - TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], {1}") \ |
---|
1194 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #4]") \ |
---|
1195 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #-4]") \ |
---|
1196 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #4]!") \ |
---|
1197 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #-4]!") \ |
---|
1198 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], #4") \ |
---|
1199 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], #-4") \ |
---|
1200 | | - TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], {1}") \ |
---|
1201 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #4]") \ |
---|
1202 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #-4]") \ |
---|
1203 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #4]!") \ |
---|
1204 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #-4]!") \ |
---|
1205 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], #4") \ |
---|
1206 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], #-4") \ |
---|
1207 | | - TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], {1}") \ |
---|
| 1177 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13, #4]") \ |
---|
| 1178 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13, #-4]") \ |
---|
| 1179 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13, #4]!") \ |
---|
| 1180 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13, #-4]!") \ |
---|
| 1181 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13], #4") \ |
---|
| 1182 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13], #-4") \ |
---|
| 1183 | + TEST_COPROCESSOR("stc"two" p0, cr0, [r13], {1}") \ |
---|
| 1184 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13, #4]") \ |
---|
| 1185 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13, #-4]") \ |
---|
| 1186 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13, #4]!") \ |
---|
| 1187 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13, #-4]!") \ |
---|
| 1188 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13], #4") \ |
---|
| 1189 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13], #-4") \ |
---|
| 1190 | + TEST_COPROCESSOR("stc"two"l p0, cr0, [r13], {1}") \ |
---|
| 1191 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13, #4]") \ |
---|
| 1192 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13, #-4]") \ |
---|
| 1193 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13, #4]!") \ |
---|
| 1194 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13, #-4]!") \ |
---|
| 1195 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13], #4") \ |
---|
| 1196 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13], #-4") \ |
---|
| 1197 | + TEST_COPROCESSOR("ldc"two" p0, cr0, [r13], {1}") \ |
---|
| 1198 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13, #4]") \ |
---|
| 1199 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13, #-4]") \ |
---|
| 1200 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13, #4]!") \ |
---|
| 1201 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13, #-4]!") \ |
---|
| 1202 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13], #4") \ |
---|
| 1203 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13], #-4") \ |
---|
| 1204 | + TEST_COPROCESSOR("ldc"two"l p0, cr0, [r13], {1}") \ |
---|
1208 | 1205 | \ |
---|
1209 | | - TEST_COPROCESSOR( "stc"two" 0, cr0, [r15, #4]") \ |
---|
1210 | | - TEST_COPROCESSOR( "stc"two" 0, cr0, [r15, #-4]") \ |
---|
| 1206 | + TEST_COPROCESSOR( "stc"two" p0, cr0, [r15, #4]") \ |
---|
| 1207 | + TEST_COPROCESSOR( "stc"two" p0, cr0, [r15, #-4]") \ |
---|
1211 | 1208 | TEST_UNSUPPORTED(__inst_arm(0x##cc##daf0001) " @ stc"two" 0, cr0, [r15, #4]!") \ |
---|
1212 | 1209 | TEST_UNSUPPORTED(__inst_arm(0x##cc##d2f0001) " @ stc"two" 0, cr0, [r15, #-4]!") \ |
---|
1213 | 1210 | TEST_UNSUPPORTED(__inst_arm(0x##cc##caf0001) " @ stc"two" 0, cr0, [r15], #4") \ |
---|
1214 | 1211 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c2f0001) " @ stc"two" 0, cr0, [r15], #-4") \ |
---|
1215 | | - TEST_COPROCESSOR( "stc"two" 0, cr0, [r15], {1}") \ |
---|
1216 | | - TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15, #4]") \ |
---|
1217 | | - TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15, #-4]") \ |
---|
| 1212 | + TEST_COPROCESSOR( "stc"two" p0, cr0, [r15], {1}") \ |
---|
| 1213 | + TEST_COPROCESSOR( "stc"two"l p0, cr0, [r15, #4]") \ |
---|
| 1214 | + TEST_COPROCESSOR( "stc"two"l p0, cr0, [r15, #-4]") \ |
---|
1218 | 1215 | TEST_UNSUPPORTED(__inst_arm(0x##cc##def0001) " @ stc"two"l 0, cr0, [r15, #4]!") \ |
---|
1219 | 1216 | TEST_UNSUPPORTED(__inst_arm(0x##cc##d6f0001) " @ stc"two"l 0, cr0, [r15, #-4]!") \ |
---|
1220 | 1217 | TEST_UNSUPPORTED(__inst_arm(0x##cc##cef0001) " @ stc"two"l 0, cr0, [r15], #4") \ |
---|
1221 | 1218 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c6f0001) " @ stc"two"l 0, cr0, [r15], #-4") \ |
---|
1222 | | - TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15], {1}") \ |
---|
1223 | | - TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15, #4]") \ |
---|
1224 | | - TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15, #-4]") \ |
---|
| 1219 | + TEST_COPROCESSOR( "stc"two"l p0, cr0, [r15], {1}") \ |
---|
| 1220 | + TEST_COPROCESSOR( "ldc"two" p0, cr0, [r15, #4]") \ |
---|
| 1221 | + TEST_COPROCESSOR( "ldc"two" p0, cr0, [r15, #-4]") \ |
---|
1225 | 1222 | TEST_UNSUPPORTED(__inst_arm(0x##cc##dbf0001) " @ ldc"two" 0, cr0, [r15, #4]!") \ |
---|
1226 | 1223 | TEST_UNSUPPORTED(__inst_arm(0x##cc##d3f0001) " @ ldc"two" 0, cr0, [r15, #-4]!") \ |
---|
1227 | 1224 | TEST_UNSUPPORTED(__inst_arm(0x##cc##cbf0001) " @ ldc"two" 0, cr0, [r15], #4") \ |
---|
1228 | 1225 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c3f0001) " @ ldc"two" 0, cr0, [r15], #-4") \ |
---|
1229 | | - TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15], {1}") \ |
---|
1230 | | - TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15, #4]") \ |
---|
1231 | | - TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15, #-4]") \ |
---|
| 1226 | + TEST_COPROCESSOR( "ldc"two" p0, cr0, [r15], {1}") \ |
---|
| 1227 | + TEST_COPROCESSOR( "ldc"two"l p0, cr0, [r15, #4]") \ |
---|
| 1228 | + TEST_COPROCESSOR( "ldc"two"l p0, cr0, [r15, #-4]") \ |
---|
1232 | 1229 | TEST_UNSUPPORTED(__inst_arm(0x##cc##dff0001) " @ ldc"two"l 0, cr0, [r15, #4]!") \ |
---|
1233 | 1230 | TEST_UNSUPPORTED(__inst_arm(0x##cc##d7f0001) " @ ldc"two"l 0, cr0, [r15, #-4]!") \ |
---|
1234 | 1231 | TEST_UNSUPPORTED(__inst_arm(0x##cc##cff0001) " @ ldc"two"l 0, cr0, [r15], #4") \ |
---|
1235 | 1232 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c7f0001) " @ ldc"two"l 0, cr0, [r15], #-4") \ |
---|
1236 | | - TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15], {1}") |
---|
| 1233 | + TEST_COPROCESSOR( "ldc"two"l p0, cr0, [r15], {1}") |
---|
1237 | 1234 | |
---|
1238 | 1235 | #define COPROCESSOR_INSTRUCTIONS_MC_MR(two,cc) \ |
---|
1239 | 1236 | \ |
---|
1240 | | - TEST_COPROCESSOR( "mcrr"two" 0, 15, r0, r14, cr0") \ |
---|
1241 | | - TEST_COPROCESSOR( "mcrr"two" 15, 0, r14, r0, cr15") \ |
---|
| 1237 | + TEST_COPROCESSOR( "mcrr"two" p0, 15, r0, r14, cr0") \ |
---|
| 1238 | + TEST_COPROCESSOR( "mcrr"two" p15, 0, r14, r0, cr15") \ |
---|
1242 | 1239 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c4f00f0) " @ mcrr"two" 0, 15, r0, r15, cr0") \ |
---|
1243 | 1240 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c40ff0f) " @ mcrr"two" 15, 0, r15, r0, cr15") \ |
---|
1244 | | - TEST_COPROCESSOR( "mrrc"two" 0, 15, r0, r14, cr0") \ |
---|
1245 | | - TEST_COPROCESSOR( "mrrc"two" 15, 0, r14, r0, cr15") \ |
---|
| 1241 | + TEST_COPROCESSOR( "mrrc"two" p0, 15, r0, r14, cr0") \ |
---|
| 1242 | + TEST_COPROCESSOR( "mrrc"two" p15, 0, r14, r0, cr15") \ |
---|
1246 | 1243 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c5f00f0) " @ mrrc"two" 0, 15, r0, r15, cr0") \ |
---|
1247 | 1244 | TEST_UNSUPPORTED(__inst_arm(0x##cc##c50ff0f) " @ mrrc"two" 15, 0, r15, r0, cr15") \ |
---|
1248 | | - TEST_COPROCESSOR( "cdp"two" 15, 15, cr15, cr15, cr15, 7") \ |
---|
1249 | | - TEST_COPROCESSOR( "cdp"two" 0, 0, cr0, cr0, cr0, 0") \ |
---|
1250 | | - TEST_COPROCESSOR( "mcr"two" 15, 7, r15, cr15, cr15, 7") \ |
---|
1251 | | - TEST_COPROCESSOR( "mcr"two" 0, 0, r0, cr0, cr0, 0") \ |
---|
1252 | | - TEST_COPROCESSOR( "mrc"two" 15, 7, r15, cr15, cr15, 7") \ |
---|
1253 | | - TEST_COPROCESSOR( "mrc"two" 0, 0, r0, cr0, cr0, 0") |
---|
| 1245 | + TEST_COPROCESSOR( "cdp"two" p15, 15, cr15, cr15, cr15, 7") \ |
---|
| 1246 | + TEST_COPROCESSOR( "cdp"two" p0, 0, cr0, cr0, cr0, 0") \ |
---|
| 1247 | + TEST_COPROCESSOR( "mcr"two" p15, 7, r15, cr15, cr15, 7") \ |
---|
| 1248 | + TEST_COPROCESSOR( "mcr"two" p0, 0, r0, cr0, cr0, 0") \ |
---|
| 1249 | + TEST_COPROCESSOR( "mrc"two" p15, 7, r14, cr15, cr15, 7") \ |
---|
| 1250 | + TEST_COPROCESSOR( "mrc"two" p0, 0, r0, cr0, cr0, 0") |
---|
1254 | 1251 | |
---|
1255 | 1252 | COPROCESSOR_INSTRUCTIONS_ST_LD("",e) |
---|
1256 | 1253 | #if __LINUX_ARM_ARCH__ >= 5 |
---|