* config/tc-arm.c (do_t_strexd): Remove
authorJie Zhang <jie.zhang@analog.com>
Fri, 26 Feb 2010 15:57:59 +0000 (15:57 +0000)
committerJie Zhang <jie.zhang@analog.com>
Fri, 26 Feb 2010 15:57:59 +0000 (15:57 +0000)
operand[1] != operand[2] contraint.

testsuite/
* gas/arm/thumb32.s, gas/arm/thumb32.d: Add a new test
for strexd.
* gas/arm/thumb32.l: Adjust.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/thumb32.d
gas/testsuite/gas/arm/thumb32.l
gas/testsuite/gas/arm/thumb32.s

index 5e49710e95fcedc43f817eb039cc233ea94ccef6..3df889bd4761463af8704dc218e6b2b8e9fd4b9e 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-26  Jie Zhang  <jie@codesourcery.com>
+
+       * config/tc-arm.c (do_t_strexd): Remove
+       operand[1] != operand[2] contraint.
+
 2010-02-26  Jie Zhang  <jie@codesourcery.com>
 
        * config/tc-arm.c (neon_select_shape): No need to match
index 69057b7202570ef3a9669ddafd86abf3d028288b..f55fe6139d92c5d98140de7da37fc2e6953f86fe 100644 (file)
@@ -11275,8 +11275,7 @@ do_t_strexd (void)
 
   constraint (inst.operands[0].reg == inst.operands[1].reg
              || inst.operands[0].reg == inst.operands[2].reg
-             || inst.operands[0].reg == inst.operands[3].reg
-             || inst.operands[1].reg == inst.operands[2].reg,
+             || inst.operands[0].reg == inst.operands[3].reg,
              BAD_OVERLAP);
 
   inst.instruction |= inst.operands[0].reg;
index 3dc4271073c97764de7d8eaf0cb149173d950f44..c3024711135dc32c209537802a7f678b38b6c071 100644 (file)
@@ -1,3 +1,9 @@
+2010-02-26  Jie Zhang  <jie@codesourcery.com>
+
+       * gas/arm/thumb32.s, gas/arm/thumb32.d: Add a new test
+       for strexd.
+       * gas/arm/thumb32.l: Adjust.
+
 2010-02-26  Jie Zhang  <jie@codesourcery.com>
 
        * gas/arm/neon-ldst-align-bad.d: New test.
index e2e6286f33adb6b80732d2ac2af8a4a5c86f8bb8..d04ef6b8906be4683a04c99e8e63281b1b4b7dff 100644 (file)
@@ -555,6 +555,7 @@ Disassembly of section .text:
 0[0-9a-f]+ <[^>]+> e8c4 2f51   strexh  r1, r2, \[r4\]
 0[0-9a-f]+ <[^>]+> e844 2100   strex   r1, r2, \[r4\]
 0[0-9a-f]+ <[^>]+> e8c4 2371   strexd  r1, r2, r3, \[r4\]
+0[0-9a-f]+ <[^>]+> e8c4 3371   strexd  r1, r3, r3, \[r4\]
 0[0-9a-f]+ <[^>]+> e854 1f81   ldrex   r1, \[r4, #516\].*
 0[0-9a-f]+ <[^>]+> e844 2181   strex   r1, r2, \[r4, #516\].*
 0[0-9a-f]+ <[^>]+> c80e        ldmia   r0!, \{r1, r2, r3\}
@@ -944,26 +945,26 @@ Disassembly of section .text:
 0[0-9a-f]+ <[^>]+> fa52 f183   uxtab   r1, r2, r3
 0[0-9a-f]+ <[^>]+> fa32 f183   uxtab16 r1, r2, r3
 0[0-9a-f]+ <[^>]+> fa12 f183   uxtah   r1, r2, r3
-0[0-9a-f]+ <[^>]+> f89f 12aa   ldrb\.w r1, \[pc, #682\]        ; 0+e7e <[^>]+>
-0[0-9a-f]+ <[^>]+> f89f 1155   ldrb\.w r1, \[pc, #341\]        ; 0+d2d <[^>]+>
-0[0-9a-f]+ <[^>]+> f81f 12aa   ldrb\.w r1, \[pc, #-682\]       ; 0+932 <[^>]+>
-0[0-9a-f]+ <[^>]+> f81f 1155   ldrb\.w r1, \[pc, #-341\]       ; 0+a8b <[^>]+>
-0[0-9a-f]+ <[^>]+> f99f 12aa   ldrsb\.w        r1, \[pc, #682\]        ; 0+e8e <[^>]+>
-0[0-9a-f]+ <[^>]+> f99f 1155   ldrsb\.w        r1, \[pc, #341\]        ; 0+d3d <[^>]+>
-0[0-9a-f]+ <[^>]+> f91f 12aa   ldrsb\.w        r1, \[pc, #-682\]       ; 0+942 <[^>]+>
-0[0-9a-f]+ <[^>]+> f91f 1155   ldrsb\.w        r1, \[pc, #-341\]       ; 0+a9b <[^>]+>
-0[0-9a-f]+ <[^>]+> f8bf 12aa   ldrh\.w r1, \[pc, #682\]        ; 0+e9e <[^>]+>
-0[0-9a-f]+ <[^>]+> f8bf 1155   ldrh\.w r1, \[pc, #341\]        ; 0+d4d <[^>]+>
-0[0-9a-f]+ <[^>]+> f83f 12aa   ldrh\.w r1, \[pc, #-682\]       ; 0+952 <[^>]+>
-0[0-9a-f]+ <[^>]+> f83f 1155   ldrh\.w r1, \[pc, #-341\]       ; 0+aab <[^>]+>
-0[0-9a-f]+ <[^>]+> f9bf 12aa   ldrsh\.w        r1, \[pc, #682\]        ; 0+eae <[^>]+>
-0[0-9a-f]+ <[^>]+> f9bf 1155   ldrsh\.w        r1, \[pc, #341\]        ; 0+d5d <[^>]+>
-0[0-9a-f]+ <[^>]+> f93f 12aa   ldrsh\.w        r1, \[pc, #-682\]       ; 0+962 <[^>]+>
-0[0-9a-f]+ <[^>]+> f93f 1155   ldrsh\.w        r1, \[pc, #-341\]       ; 0+abb <[^>]+>
-0[0-9a-f]+ <[^>]+> f8df 12aa   ldr\.w  r1, \[pc, #682\]        ; 0+ebe <[^>]+>
-0[0-9a-f]+ <[^>]+> f8df 1155   ldr\.w  r1, \[pc, #341\]        ; 0+d6d <[^>]+>
-0[0-9a-f]+ <[^>]+> f85f 12aa   ldr\.w  r1, \[pc, #-682\]       ; 0+972 <[^>]+>
-0[0-9a-f]+ <[^>]+> f85f 1155   ldr\.w  r1, \[pc, #-341\]       ; 0+acb <[^>]+>
+0[0-9a-f]+ <[^>]+> f89f 12aa   ldrb\.w r1, \[pc, #682\]        ; 0+e82 <[^>]+>
+0[0-9a-f]+ <[^>]+> f89f 1155   ldrb\.w r1, \[pc, #341\]        ; 0+d31 <[^>]+>
+0[0-9a-f]+ <[^>]+> f81f 12aa   ldrb\.w r1, \[pc, #-682\]       ; 0+936 <[^>]+>
+0[0-9a-f]+ <[^>]+> f81f 1155   ldrb\.w r1, \[pc, #-341\]       ; 0+a8f <[^>]+>
+0[0-9a-f]+ <[^>]+> f99f 12aa   ldrsb\.w        r1, \[pc, #682\]        ; 0+e92 <[^>]+>
+0[0-9a-f]+ <[^>]+> f99f 1155   ldrsb\.w        r1, \[pc, #341\]        ; 0+d41 <[^>]+>
+0[0-9a-f]+ <[^>]+> f91f 12aa   ldrsb\.w        r1, \[pc, #-682\]       ; 0+946 <[^>]+>
+0[0-9a-f]+ <[^>]+> f91f 1155   ldrsb\.w        r1, \[pc, #-341\]       ; 0+a9f <[^>]+>
+0[0-9a-f]+ <[^>]+> f8bf 12aa   ldrh\.w r1, \[pc, #682\]        ; 0+ea2 <[^>]+>
+0[0-9a-f]+ <[^>]+> f8bf 1155   ldrh\.w r1, \[pc, #341\]        ; 0+d51 <[^>]+>
+0[0-9a-f]+ <[^>]+> f83f 12aa   ldrh\.w r1, \[pc, #-682\]       ; 0+956 <[^>]+>
+0[0-9a-f]+ <[^>]+> f83f 1155   ldrh\.w r1, \[pc, #-341\]       ; 0+aaf <[^>]+>
+0[0-9a-f]+ <[^>]+> f9bf 12aa   ldrsh\.w        r1, \[pc, #682\]        ; 0+eb2 <[^>]+>
+0[0-9a-f]+ <[^>]+> f9bf 1155   ldrsh\.w        r1, \[pc, #341\]        ; 0+d61 <[^>]+>
+0[0-9a-f]+ <[^>]+> f93f 12aa   ldrsh\.w        r1, \[pc, #-682\]       ; 0+966 <[^>]+>
+0[0-9a-f]+ <[^>]+> f93f 1155   ldrsh\.w        r1, \[pc, #-341\]       ; 0+abf <[^>]+>
+0[0-9a-f]+ <[^>]+> f8df 12aa   ldr\.w  r1, \[pc, #682\]        ; 0+ec2 <[^>]+>
+0[0-9a-f]+ <[^>]+> f8df 1155   ldr\.w  r1, \[pc, #341\]        ; 0+d71 <[^>]+>
+0[0-9a-f]+ <[^>]+> f85f 12aa   ldr\.w  r1, \[pc, #-682\]       ; 0+976 <[^>]+>
+0[0-9a-f]+ <[^>]+> f85f 1155   ldr\.w  r1, \[pc, #-341\]       ; 0+acf <[^>]+>
 0[0-9a-f]+ <[^>]+> f200 0900   addw    r9, r0, #0
 0[0-9a-f]+ <[^>]+> f60f 76ff   addw    r6, pc, #4095   ; 0xfff
 0[0-9a-f]+ <[^>]+> f6a9 2685   subw    r6, r9, #2693   ; 0xa85
index eb404f29b2ba90cb82dfe622284e5755afa8cd72..71f46108abd60c15c0d498602a45fe54820845c7 100644 (file)
@@ -1,8 +1,4 @@
 [^;]*: Assembler messages:
-[^;]*:447: Warning: s suffix on comparison instruction is deprecated
-[^;]*:447: Warning: s suffix on comparison instruction is deprecated
-[^;]*:447: Warning: s suffix on comparison instruction is deprecated
-[^;]*:447: Warning: s suffix on comparison instruction is deprecated
 [^;]*:448: Warning: s suffix on comparison instruction is deprecated
 [^;]*:448: Warning: s suffix on comparison instruction is deprecated
 [^;]*:448: Warning: s suffix on comparison instruction is deprecated
@@ -15,3 +11,7 @@
 [^;]*:450: Warning: s suffix on comparison instruction is deprecated
 [^;]*:450: Warning: s suffix on comparison instruction is deprecated
 [^;]*:450: Warning: s suffix on comparison instruction is deprecated
+[^;]*:451: Warning: s suffix on comparison instruction is deprecated
+[^;]*:451: Warning: s suffix on comparison instruction is deprecated
+[^;]*:451: Warning: s suffix on comparison instruction is deprecated
+[^;]*:451: Warning: s suffix on comparison instruction is deprecated
index de4eb1ed121cd109bdb471f1001a20b96af2de76..fc0930de17803904c1373efd56d3c4453cb276ea 100644 (file)
@@ -400,6 +400,7 @@ ldxstx:
        strexh  r1, r2, [r4]
        strex   r1, r2, [r4]
        strexd  r1, r2, r3, [r4]
+       strexd  r1, r3, r3, [r4]
 
        ldrex   r1, [r4,#516]
        strex   r1, r2, [r4,#516]