| .. | .. |
|---|
| 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 |
|---|