summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2006-03-17 14:03:36 +0000
committerPaul Brook <paul@codesourcery.com>2006-03-17 14:03:36 +0000
commitf5208ef27a2b7493d0664a2d673c6e153fd7baa1 (patch)
treec96dbcc5c1978df6156cc8f6c87941e52b2fd604
parente1710606c993baab0555429f130bbfd7a2fe3971 (diff)
downloadbinutils-gdb-f5208ef27a2b7493d0664a2d673c6e153fd7baa1.tar.gz
2006-03-17 Paul Brook <paul@codesourcery.com>
gas/ * config/tc-arm.c (insns): Add ldm and stm. gas/testsuite/ * gas/arm/thumb32.d: Add ldm and stm tests. * gas/arm/thumb32.s: Ditto.
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-arm.c2
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/arm/thumb32.d10
-rw-r--r--gas/testsuite/gas/arm/thumb32.s11
5 files changed, 32 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d20d9bd369b..42816c4830b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2006-03-17 Paul Brook <paul@codesourcery.com>
+
+ * config/tc-arm.c (insns): Add ldm and stm.
+
2006-03-17 Ben Elliston <bje@au.ibm.com>
PR gas/2446
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 3ca5bd42300..573c1227b9d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -8944,8 +8944,10 @@ static const struct asm_opcode insns[] =
tCE(str, 4000000, str, 2, (RR, ADDR), ldst, t_ldst),
tC3(strb, 4400000, strb, 2, (RR, ADDR), ldst, t_ldst),
+ tCE(stm, 8800000, stmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
tC3(stmia, 8800000, stmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
tC3(stmea, 8800000, stmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
+ tCE(ldm, 8900000, ldmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
tC3(ldmia, 8900000, ldmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
tC3(ldmfd, 8900000, ldmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index bf1fdc02574..982f74b246a 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-17 Paul Brook <paul@codesourcery.com>
+
+ * gas/arm/thumb32.d: Add ldm and stm tests.
+ * gas/arm/thumb32.s: Ditto.
+
2006-03-16 Bernd Schmidt <bernd.schmidt@analog.com>
* gas/bfin/shift2.s: Add new tests.
diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d
index 0aac53a0cad..ae2ebf7f434 100644
--- a/gas/testsuite/gas/arm/thumb32.d
+++ b/gas/testsuite/gas/arm/thumb32.d
@@ -944,3 +944,13 @@ Disassembly of section .text:
0[0-9a-f]+ <[^>]+> f85d 8b04 ldr.w r8, \[sp\], #4
0[0-9a-f]+ <[^>]+> e930 0580 ldmdb r0!, \{r7, r8, sl\}
0[0-9a-f]+ <[^>]+> e920 0580 stmdb r0!, \{r7, r8, sl\}
+0[0-9a-f]+ <[^>]+> c806 ldmia r0!, \{r1, r2\}
+0[0-9a-f]+ <[^>]+> c006 stmia r0!, \{r1, r2\}
+0[0-9a-f]+ <[^>]+> e890 0300 ldmia.w r0, \{r8, r9\}
+0[0-9a-f]+ <[^>]+> e880 0300 stmia.w r0, \{r8, r9\}
+0[0-9a-f]+ <[^>]+> bf01 itttt eq
+0[0-9a-f]+ <[^>]+> c806 ldmia r0!, \{r1, r2\}
+0[0-9a-f]+ <[^>]+> c006 stmia r0!, \{r1, r2\}
+0[0-9a-f]+ <[^>]+> e890 0300 ldmia.w r0, \{r8, r9\}
+0[0-9a-f]+ <[^>]+> e880 0300 stmia.w r0, \{r8, r9\}
+0[0-9a-f]+ <[^>]+> bf00 nop
diff --git a/gas/testsuite/gas/arm/thumb32.s b/gas/testsuite/gas/arm/thumb32.s
index 5f4dc68856e..b75a0850f38 100644
--- a/gas/testsuite/gas/arm/thumb32.s
+++ b/gas/testsuite/gas/arm/thumb32.s
@@ -758,3 +758,14 @@ xta:
ldmdb r0!, {r7,r8,r10}
stmdb r0!, {r7,r8,r10}
+
+ ldm r0!, {r1, r2}
+ stm r0!, {r1, r2}
+ ldm r0, {r8, r9}
+ stm r0, {r8, r9}
+ itttt eq
+ ldmeq r0!, {r1, r2}
+ stmeq r0!, {r1, r2}
+ ldmeq r0, {r8, r9}
+ stmeq r0, {r8, r9}
+ nop