diff --git a/gas/ChangeLog b/gas/ChangeLog index d20d9bd369..42816c4830 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2006-03-17 Paul Brook + + * config/tc-arm.c (insns): Add ldm and stm. + 2006-03-17 Ben Elliston PR gas/2446 diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 3ca5bd4230..573c1227b9 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 bf1fdc0257..982f74b246 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-03-17 Paul Brook + + * gas/arm/thumb32.d: Add ldm and stm tests. + * gas/arm/thumb32.s: Ditto. + 2006-03-16 Bernd Schmidt * gas/bfin/shift2.s: Add new tests. diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d index 0aac53a0ca..ae2ebf7f43 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 5f4dc68856..b75a0850f3 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