diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2011-07-08 15:46:33 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2011-07-08 15:46:33 +0000 |
commit | 3f52be4640aafb1186950b780df7ab933332ba06 (patch) | |
tree | 9011d2dc79ccccf027cd713c29261565b72d9328 /none | |
parent | ec82dd9de08eaf9d6d5c6b1ebaec53039e371903 (diff) |
Add regression tests for {ADD,SUB}W reg, reg, #uimm12 (vex r2170)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11863 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'none')
-rw-r--r-- | none/tests/arm/v6intThumb.c | 22 | ||||
-rw-r--r-- | none/tests/arm/v6intThumb.stdout.exp | 50 |
2 files changed, 71 insertions, 1 deletions
diff --git a/none/tests/arm/v6intThumb.c b/none/tests/arm/v6intThumb.c index 99215f2e..6e3ff5f3 100644 --- a/none/tests/arm/v6intThumb.c +++ b/none/tests/arm/v6intThumb.c @@ -1,6 +1,6 @@ /* How to compile: - gcc -O -g -Wall -mcpu=cortex-a8 -o testarmv6int testarmv6int.c + gcc -O -g -Wall -mcpu=cortex-a8 -o v6intThumb none/tests/arm/v6intThumb.c */ #include <stdio.h> @@ -1375,6 +1375,16 @@ int main ( void ) TESTINST2("add.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv); TESTCARRYEND + printf("(T4) ADDW Rd, Rn, #uimm12\n"); + TESTCARRY + TESTINST2("addw r1, r2, #0x000", 0x31415927, r1, r2, cv); + TESTINST2("addw r1, r2, #0x000", 0x91415927, r1, r2, cv); + TESTINST2("addw r1, r2, #0xABC", 0x31415927, r1, r2, cv); + TESTINST2("addw r1, r2, #0xABC", 0x91415927, r1, r2, cv); + TESTINST2("addw r1, r2, #0xFFF", 0x31415927, r1, r2, cv); + TESTINST2("addw r1, r2, #0xFFF", 0x91415927, r1, r2, cv); + TESTCARRYEND + printf("(T3) CMP.W Rn, #constT [allegedly]\n"); TESTCARRY TESTINST1x("cmp.w r1, #0xffffffff", 0x31415927, r1, cv); @@ -1473,6 +1483,16 @@ int main ( void ) TESTINST2("sub.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv); TESTCARRYEND + printf("(T4) SUBW Rd, Rn, #uimm12\n"); + TESTCARRY + TESTINST2("subw r1, r2, #0x000", 0x31415927, r1, r2, cv); + TESTINST2("subw r1, r2, #0x000", 0x91415927, r1, r2, cv); + TESTINST2("subw r1, r2, #0xABC", 0x31415927, r1, r2, cv); + TESTINST2("subw r1, r2, #0xABC", 0x91415927, r1, r2, cv); + TESTINST2("subw r1, r2, #0xFFF", 0x31415927, r1, r2, cv); + TESTINST2("subw r1, r2, #0xFFF", 0x91415927, r1, r2, cv); + TESTCARRYEND + printf("(T3) RSB{S}.W Rd, Rn, #constT [allegedly]\n"); TESTCARRY TESTINST2("rsbs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv); diff --git a/none/tests/arm/v6intThumb.stdout.exp b/none/tests/arm/v6intThumb.stdout.exp index dfb0acb5..f18fd66d 100644 --- a/none/tests/arm/v6intThumb.stdout.exp +++ b/none/tests/arm/v6intThumb.stdout.exp @@ -934,6 +934,31 @@ add.w r1, r2, #0x80000000 :: rd 0x00000000 rm 0x80000000, c:v-in 3, cpsr 0xf000 add.w r1, r2, #0x80000000 :: rd 0xffffffff rm 0x7fffffff, c:v-in 3, cpsr 0xf0000000 NZCV add.w r1, r2, #0xff000000 :: rd 0x7f000000 rm 0x80000000, c:v-in 3, cpsr 0xf0000000 NZCV add.w r1, r2, #0x0dd00000 :: rd 0x8dcfffff rm 0x7fffffff, c:v-in 3, cpsr 0xf0000000 NZCV +(T4) ADDW Rd, Rn, #uimm12 +addw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0xABC :: rd 0x314163e3 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0xABC :: rd 0x914163e3 rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0xFFF :: rd 0x31416926 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0xFFF :: rd 0x91416926 rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +addw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0xABC :: rd 0x314163e3 rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0xABC :: rd 0x914163e3 rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0xFFF :: rd 0x31416926 rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0xFFF :: rd 0x91416926 rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +addw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0xABC :: rd 0x314163e3 rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0xABC :: rd 0x914163e3 rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0xFFF :: rd 0x31416926 rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0xFFF :: rd 0x91416926 rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +addw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +addw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV +addw r1, r2, #0xABC :: rd 0x314163e3 rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +addw r1, r2, #0xABC :: rd 0x914163e3 rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV +addw r1, r2, #0xFFF :: rd 0x31416926 rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +addw r1, r2, #0xFFF :: rd 0x91416926 rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV (T3) CMP.W Rn, #constT [allegedly] cmp.w r1, #0xffffffff :: rd 0x31415927, c:v-in 0, cpsr 0x00000000 cmp.w r1, #0xee00ee00 :: rd 0x31415927, c:v-in 0, cpsr 0x00000000 @@ -1251,6 +1276,31 @@ sub.w r1, r2, #0x80000000 :: rd 0x00000000 rm 0x80000000, c:v-in 3, cpsr 0xf000 sub.w r1, r2, #0x80000000 :: rd 0xffffffff rm 0x7fffffff, c:v-in 3, cpsr 0xf0000000 NZCV sub.w r1, r2, #0xff000000 :: rd 0x81000000 rm 0x80000000, c:v-in 3, cpsr 0xf0000000 NZCV sub.w r1, r2, #0x0dd00000 :: rd 0x722fffff rm 0x7fffffff, c:v-in 3, cpsr 0xf0000000 NZCV +(T4) SUBW Rd, Rn, #uimm12 +subw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0xABC :: rd 0x31414e6b rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0xABC :: rd 0x91414e6b rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0xFFF :: rd 0x31414928 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0xFFF :: rd 0x91414928 rm 0x91415927, c:v-in 0, cpsr 0xc0000000 NZ +subw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0xABC :: rd 0x31414e6b rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0xABC :: rd 0x91414e6b rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0xFFF :: rd 0x31414928 rm 0x31415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0xFFF :: rd 0x91414928 rm 0x91415927, c:v-in 1, cpsr 0xd0000000 NZ V +subw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0xABC :: rd 0x31414e6b rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0xABC :: rd 0x91414e6b rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0xFFF :: rd 0x31414928 rm 0x31415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0xFFF :: rd 0x91414928 rm 0x91415927, c:v-in 2, cpsr 0xe0000000 NZC +subw r1, r2, #0x000 :: rd 0x31415927 rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +subw r1, r2, #0x000 :: rd 0x91415927 rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV +subw r1, r2, #0xABC :: rd 0x31414e6b rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +subw r1, r2, #0xABC :: rd 0x91414e6b rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV +subw r1, r2, #0xFFF :: rd 0x31414928 rm 0x31415927, c:v-in 3, cpsr 0xf0000000 NZCV +subw r1, r2, #0xFFF :: rd 0x91414928 rm 0x91415927, c:v-in 3, cpsr 0xf0000000 NZCV (T3) RSB{S}.W Rd, Rn, #constT [allegedly] rsbs.w r1, r2, #0xffffffff :: rd 0xcebea6d8 rm 0x31415927, c:v-in 0, cpsr 0xa0000000 N C rsbs.w r1, r2, #0xee00ee00 :: rd 0xbcbf94d9 rm 0x31415927, c:v-in 0, cpsr 0xa0000000 N C |