hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/arch/arm/probes/kprobes/test-arm.c
....@@ -1,11 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * arch/arm/kernel/kprobes-test-arm.c
34 *
45 * 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.
96 */
107
118 #include <linux/kernel.h>
....@@ -58,25 +55,25 @@
5855 TEST_GROUP("Data-processing (register), (register-shifted register), (immediate)")
5956
6057 #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") \
8077 TEST_R( op s " r7, r",8, VAL2,", #0x000af000") \
8178 TEST( op s " r4, pc" ", #0x00005a00")
8279
....@@ -107,23 +104,23 @@
107104 TEST_R( op " r",8, VAL2,", #0x000af000")
108105
109106 #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") \
127124 TEST( op s " r7, #0x000af000") \
128125 TEST( op s " r4, #0x00005a00")
129126
....@@ -169,10 +166,10 @@
169166
170167 /* Data-processing with PC as a target and status registers updated */
171168 TEST_UNSUPPORTED("movs pc, r1")
172
- TEST_UNSUPPORTED("movs pc, r1, lsl r2")
169
+ TEST_UNSUPPORTED(__inst_arm(0xe1b0f211) " @movs pc, r1, lsl r2")
173170 TEST_UNSUPPORTED("movs pc, #0x10000")
174171 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")
176173 TEST_UNSUPPORTED("adds pc, lr, #4")
177174
178175 /* Data-processing with SP as target */
....@@ -355,7 +352,7 @@
355352 TEST_UNSUPPORTED(__inst_arm(0xe000029f) " @ mul r0, pc, r2")
356353 TEST_UNSUPPORTED(__inst_arm(0xe0000f91) " @ mul r0, r1, pc")
357354 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,"")
359356 TEST_R( "muls lr, r",4, VAL3,", r13")
360357 TEST_UNSUPPORTED(__inst_arm(0xe01f0291) " @ muls pc, r1, r2")
361358
....@@ -364,7 +361,7 @@
364361 TEST_RR( "mla lr, r",1, VAL2,", r",2, VAL3,", r13")
365362 TEST_UNSUPPORTED(__inst_arm(0xe02f3291) " @ mla pc, r1, r2, r3")
366363 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,"")
368365 TEST_RR( "mlas lr, r",1, VAL2,", r",2, VAL3,", r13")
369366 TEST_UNSUPPORTED(__inst_arm(0xe03f3291) " @ mlas pc, r1, r2, r3")
370367
....@@ -397,7 +394,7 @@
397394 TEST_UNSUPPORTED(__inst_arm(0xe081f392) " @ umull pc, r1, r2, r3")
398395 TEST_UNSUPPORTED(__inst_arm(0xe08f1392) " @ umull r1, pc, r2, r3")
399396 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,"")
401398 TEST_R( "umulls lr, r12, r",11,VAL3,", r13")
402399 TEST_UNSUPPORTED(__inst_arm(0xe091f392) " @ umulls pc, r1, r2, r3")
403400 TEST_UNSUPPORTED(__inst_arm(0xe09f1392) " @ umulls r1, pc, r2, r3")
....@@ -408,7 +405,7 @@
408405 TEST_UNSUPPORTED(__inst_arm(0xe0af1392) " @ umlal pc, r1, r2, r3")
409406 TEST_UNSUPPORTED(__inst_arm(0xe0a1f392) " @ umlal r1, pc, r2, r3")
410407 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)
412409 TEST_RRR( "umlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13")
413410 TEST_UNSUPPORTED(__inst_arm(0xe0bf1392) " @ umlals pc, r1, r2, r3")
414411 TEST_UNSUPPORTED(__inst_arm(0xe0b1f392) " @ umlals r1, pc, r2, r3")
....@@ -419,7 +416,7 @@
419416 TEST_UNSUPPORTED(__inst_arm(0xe0c1f392) " @ smull pc, r1, r2, r3")
420417 TEST_UNSUPPORTED(__inst_arm(0xe0cf1392) " @ smull r1, pc, r2, r3")
421418 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,"")
423420 TEST_R( "smulls lr, r12, r",11,VAL3,", r13")
424421 TEST_UNSUPPORTED(__inst_arm(0xe0d1f392) " @ smulls pc, r1, r2, r3")
425422 TEST_UNSUPPORTED(__inst_arm(0xe0df1392) " @ smulls r1, pc, r2, r3")
....@@ -430,7 +427,7 @@
430427 TEST_UNSUPPORTED(__inst_arm(0xe0ef1392) " @ smlal pc, r1, r2, r3")
431428 TEST_UNSUPPORTED(__inst_arm(0xe0e1f392) " @ smlal r1, pc, r2, r3")
432429 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)
434431 TEST_RRR( "smlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13")
435432 TEST_UNSUPPORTED(__inst_arm(0xe0ff1392) " @ smlals pc, r1, r2, r3")
436433 TEST_UNSUPPORTED(__inst_arm(0xe0f0f392) " @ smlals r0, pc, r2, r3")
....@@ -453,7 +450,7 @@
453450 TEST_UNSUPPORTED(__inst_arm(0xe10f0091) " @ swp r0, r1, [pc]")
454451 #if __LINUX_ARM_ARCH__ < 6
455452 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]")
457454 #else
458455 TEST_UNSUPPORTED(__inst_arm(0xe148e097) " @ swpb lr, r7, [r8]")
459456 TEST_UNSUPPORTED(__inst_arm(0x614d0091) " @ swpvsb r0, r1, [sp]")
....@@ -480,11 +477,11 @@
480477 TEST_GROUP("Extra load/store instructions")
481478
482479 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]")
486483 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,"]!")
488485 TEST_RPR( "strh r",2, VAL1,", [r",3, 24,"], r",4, 48,"")
489486 TEST_RPR( "strh r",10,VAL2,", [r",9, 48,"], -r",11,24,"")
490487 TEST_UNSUPPORTED(__inst_arm(0xe1afc0ba) " @ strh r12, [pc, r10]!")
....@@ -492,9 +489,9 @@
492489 TEST_UNSUPPORTED(__inst_arm(0xe089a0bf) " @ strh r10, [r9], pc")
493490
494491 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,"]")
496493 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,"]!")
498495 TEST_PR( "ldrh r2, [r",3, 24,"], r",4, 48,"")
499496 TEST_PR( "ldrh r10, [r",9, 48,"], -r",11,24,"")
500497 TEST_UNSUPPORTED(__inst_arm(0xe1bfc0ba) " @ ldrh r12, [pc, r10]!")
....@@ -502,9 +499,9 @@
502499 TEST_UNSUPPORTED(__inst_arm(0xe099a0bf) " @ ldrh r10, [r9], pc")
503500
504501 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]")
506503 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]!")
508505 TEST_RP( "strh r",2, VAL1,", [r",3, 24,"], #48")
509506 TEST_RP( "strh r",10,VAL2,", [r",9, 64,"], #-48")
510507 TEST_RP( "strh r",3, VAL1,", [r",13,TEST_MEMORY_SIZE,", #-"__stringify(MAX_STACK_SIZE)"]!")
....@@ -514,9 +511,9 @@
514511 TEST_UNSUPPORTED(__inst_arm(0xe0c9f3b0) " @ strh pc, [r9], #48")
515512
516513 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]")
518515 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]!")
520517 TEST_P( "ldrh r2, [r",3, 24,"], #48")
521518 TEST_P( "ldrh r10, [r",9, 64,"], #-48")
522519 TEST( "ldrh r0, [pc, #0]")
....@@ -524,18 +521,18 @@
524521 TEST_UNSUPPORTED(__inst_arm(0xe0d9f3b0) " @ ldrh pc, [r9], #48")
525522
526523 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,"]")
528525 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,"]!")
530527 TEST_PR( "ldrsb r2, [r",3, 24,"], r",4, 48,"")
531528 TEST_PR( "ldrsb r10, [r",9, 48,"], -r",11,24,"")
532529 TEST_UNSUPPORTED(__inst_arm(0xe1bfc0da) " @ ldrsb r12, [pc, r10]!")
533530 TEST_UNSUPPORTED(__inst_arm(0xe099f0db) " @ ldrsb pc, [r9], r11")
534531
535532 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]")
537534 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]!")
539536 TEST_P( "ldrsb r2, [r",3, 24,"], #48")
540537 TEST_P( "ldrsb r10, [r",9, 64,"], #-48")
541538 TEST( "ldrsb r0, [pc, #0]")
....@@ -543,18 +540,18 @@
543540 TEST_UNSUPPORTED(__inst_arm(0xe0d9f3d0) " @ ldrsb pc, [r9], #48")
544541
545542 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,"]")
547544 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,"]!")
549546 TEST_PR( "ldrsh r2, [r",3, 24,"], r",4, 48,"")
550547 TEST_PR( "ldrsh r10, [r",9, 48,"], -r",11,24,"")
551548 TEST_UNSUPPORTED(__inst_arm(0xe1bfc0fa) " @ ldrsh r12, [pc, r10]!")
552549 TEST_UNSUPPORTED(__inst_arm(0xe099f0fb) " @ ldrsh pc, [r9], r11")
553550
554551 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]")
556553 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]!")
558555 TEST_P( "ldrsh r2, [r",3, 24,"], #48")
559556 TEST_P( "ldrsh r10, [r",9, 64,"], #-48")
560557 TEST( "ldrsh r0, [pc, #0]")
....@@ -574,30 +571,30 @@
574571
575572 #if __LINUX_ARM_ARCH__ >= 5
576573 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]")
580577 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,"")
584581 TEST_UNSUPPORTED(__inst_arm(0xe1afc0fa) " @ strd r12, [pc, r10]!")
585582
586583 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,"]")
588585 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,"")
592589 TEST_UNSUPPORTED(__inst_arm(0xe1afc0da) " @ ldrd r12, [pc, r10]!")
593590 TEST_UNSUPPORTED(__inst_arm(0xe089f0db) " @ ldrd pc, [r9], r11")
594591 TEST_UNSUPPORTED(__inst_arm(0xe089e0db) " @ ldrd lr, [r9], r11")
595592 TEST_UNSUPPORTED(__inst_arm(0xe089c0df) " @ ldrd r12, [r9], pc")
596593
597594 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]")
599596 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]!")
601598 TEST_RP( "strd r",2, VAL1,", [r",4, 24,"], #48")
602599 TEST_RP( "strd r",10,VAL2,", [r",9, 64,"], #-48")
603600 TEST_RP( "strd r",6, VAL1,", [r",13,TEST_MEMORY_SIZE,", #-"__stringify(MAX_STACK_SIZE)"]!")
....@@ -606,9 +603,9 @@
606603 TEST_UNSUPPORTED(__inst_arm(0xe1efc3f0) " @ strd r12, [pc, #48]!")
607604
608605 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]")
610607 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]!")
612609 TEST_P( "ldrd r2, [r",5, 24,"], #48")
613610 TEST_P( "ldrd r10, [r",9,6,"], #-48")
614611 TEST_UNSUPPORTED(__inst_arm(0xe1efc3d0) " @ ldrd r12, [pc, #48]!")
....@@ -1087,63 +1084,63 @@
10871084 TEST_GROUP("Branch, branch with link, and block data transfer")
10881085
10891086 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}")
10921089 TEST_P( "stmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
10931090 TEST_P( "stmda r",13,0, "!, {pc}")
10941091
10951092 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}")
10981095 TEST_P( "ldmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
10991096 TEST_BF_P("ldmda r",14,15*4,"!, {pc}")
11001097
11011098 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}")
11041101 TEST_P( "stmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11051102 TEST_P( "stmia r",14,0, "!, {pc}")
11061103
11071104 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}")
11101107 TEST_P( "ldmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11111108 TEST_BF_P("ldmia r",14,15*4,"!, {pc}")
11121109
11131110 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}")
11161113 TEST_P( "stmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11171114 TEST_P( "stmdb r",13,4, "!, {pc}")
11181115
11191116 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}")
11221119 TEST_P( "ldmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11231120 TEST_BF_P("ldmdb r",14,16*4,"!, {pc}")
11241121
11251122 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}")
11281125 TEST_P( "stmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11291126 TEST_P( "stmib r",13,-4, "!, {pc}")
11301127
11311128 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}")
11341131 TEST_P( "ldmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}")
11351132 TEST_BF_P("ldmib r",14,14*4,"!, {pc}")
11361133
11371134 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}")
11401137 TEST_P( "stmdb r",13,16*4,"!, {r2-r12,lr}")
11411138 TEST_P( "stmdb r",0, 16*4,", {r0-r12}")
11421139 TEST_P( "stmdb r",0, 16*4,", {r0-r12,lr}")
11431140
11441141 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}")
11471144 TEST_BF_P("ldmia r",13,4*4, "!, {r2-r12,pc}")
11481145 TEST_P( "ldmia r",0, 16*4,", {r0-r12}")
11491146 TEST_P( "ldmia r",0, 16*4,", {r0-r12,lr}")
....@@ -1177,80 +1174,80 @@
11771174 #define TEST_COPROCESSOR(code) TEST_UNSUPPORTED(code)
11781175
11791176 #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}") \
12081205 \
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]") \
12111208 TEST_UNSUPPORTED(__inst_arm(0x##cc##daf0001) " @ stc"two" 0, cr0, [r15, #4]!") \
12121209 TEST_UNSUPPORTED(__inst_arm(0x##cc##d2f0001) " @ stc"two" 0, cr0, [r15, #-4]!") \
12131210 TEST_UNSUPPORTED(__inst_arm(0x##cc##caf0001) " @ stc"two" 0, cr0, [r15], #4") \
12141211 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]") \
12181215 TEST_UNSUPPORTED(__inst_arm(0x##cc##def0001) " @ stc"two"l 0, cr0, [r15, #4]!") \
12191216 TEST_UNSUPPORTED(__inst_arm(0x##cc##d6f0001) " @ stc"two"l 0, cr0, [r15, #-4]!") \
12201217 TEST_UNSUPPORTED(__inst_arm(0x##cc##cef0001) " @ stc"two"l 0, cr0, [r15], #4") \
12211218 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]") \
12251222 TEST_UNSUPPORTED(__inst_arm(0x##cc##dbf0001) " @ ldc"two" 0, cr0, [r15, #4]!") \
12261223 TEST_UNSUPPORTED(__inst_arm(0x##cc##d3f0001) " @ ldc"two" 0, cr0, [r15, #-4]!") \
12271224 TEST_UNSUPPORTED(__inst_arm(0x##cc##cbf0001) " @ ldc"two" 0, cr0, [r15], #4") \
12281225 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]") \
12321229 TEST_UNSUPPORTED(__inst_arm(0x##cc##dff0001) " @ ldc"two"l 0, cr0, [r15, #4]!") \
12331230 TEST_UNSUPPORTED(__inst_arm(0x##cc##d7f0001) " @ ldc"two"l 0, cr0, [r15, #-4]!") \
12341231 TEST_UNSUPPORTED(__inst_arm(0x##cc##cff0001) " @ ldc"two"l 0, cr0, [r15], #4") \
12351232 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}")
12371234
12381235 #define COPROCESSOR_INSTRUCTIONS_MC_MR(two,cc) \
12391236 \
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") \
12421239 TEST_UNSUPPORTED(__inst_arm(0x##cc##c4f00f0) " @ mcrr"two" 0, 15, r0, r15, cr0") \
12431240 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") \
12461243 TEST_UNSUPPORTED(__inst_arm(0x##cc##c5f00f0) " @ mrrc"two" 0, 15, r0, r15, cr0") \
12471244 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")
12541251
12551252 COPROCESSOR_INSTRUCTIONS_ST_LD("",e)
12561253 #if __LINUX_ARM_ARCH__ >= 5