mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-20 13:23:08 +00:00
09259ace3b
Memory references to DI mode objects could incorrectly be created at offsets that are not supported by instructions l32i/s32i, resulting in ICE at a stage when access to the object is split into access to its subwords: drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error: in change_address_1, at emit-rtl.c:2126 Fixes: https://lkml.org/lkml/2017/9/10/151 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
32 lines
952 B
Diff
32 lines
952 B
Diff
From 3bc2ee6886f1619bc6a2257a0775142526b1a57a Mon Sep 17 00:00:00 2001
|
|
From: jcmvbkbc <jcmvbkbc@138bc75d-0d04-0410-961f-82ee72b054a4>
|
|
Date: Mon, 11 Sep 2017 21:53:38 +0000
|
|
Subject: [PATCH] xtensa: fix PR target/82181
|
|
|
|
2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
|
|
gcc/
|
|
Backport from mainline
|
|
* config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
|
|
words of DImode object are reachable by xtensa_uimm8x4 access.
|
|
|
|
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
---
|
|
gcc/config/xtensa/xtensa.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
|
|
index 2bdf5ccef979..92fdeb08046d 100644
|
|
--- a/gcc/config/xtensa/xtensa.c
|
|
+++ b/gcc/config/xtensa/xtensa.c
|
|
@@ -601,6 +601,7 @@ xtensa_mem_offset (unsigned v, machine_mode mode)
|
|
case HImode:
|
|
return xtensa_uimm8x2 (v);
|
|
|
|
+ case DImode:
|
|
case DFmode:
|
|
return (xtensa_uimm8x4 (v) && xtensa_uimm8x4 (v + 4));
|
|
|
|
--
|
|
2.1.4
|
|
|