aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-08-25 14:12:49 +0930
committerAlan Modra <amodra@gmail.com>2020-08-25 23:07:10 +0930
commit250dd99fc92bac670691b66363dd71dccb22b10d (patch)
tree63da14487779f96bf64f2831b16c25afbc913b57 /gas
parentd2327e47ef26dc88192e07b53cbad0b768cecf2e (diff)
downloadgdb-250dd99fc92bac670691b66363dd71dccb22b10d.zip
gdb-250dd99fc92bac670691b66363dd71dccb22b10d.tar.gz
gdb-250dd99fc92bac670691b66363dd71dccb22b10d.tar.bz2
PR26426, ASAN: neon_quad tc-arm.c:15175
PR 26426 * config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on NS_NULL shape.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ce58416..96e9551 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-08-25 Alan Modra <amodra@gmail.com>
+ PR 26426
+ * config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on
+ NS_NULL shape.
+
+2020-08-25 Alan Modra <amodra@gmail.com>
+
PR 26410
* symbols.c (dollar_label_count, dollar_label_max): Make size_t.
(dollar_label_clear): Don't call memset with NULL pointer.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 1cc0cea..830cbda 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -19555,6 +19555,9 @@ do_neon_mvn (void)
else
rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
+ if (rs == NS_NULL)
+ return;
+
NEON_ENCODE (INTEGER, inst);
inst.instruction |= LOW4 (inst.operands[0].reg) << 12;
inst.instruction |= HI1 (inst.operands[0].reg) << 22;
@@ -20634,6 +20637,8 @@ static void
do_neon_swp (void)
{
enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
+ if (rs == NS_NULL)
+ return;
neon_two_same (neon_quad (rs), 1, -1);
}