aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.ibm.com>2018-07-13 19:05:02 +0000
committerMichael Meissner <meissner@linux.ibm.com>2018-07-13 19:05:02 +0000
commit9ee80870edf73bed23f4b1f9195b087a0479de89 (patch)
treee9343e540fcabb84ad6459914f3d3076b8a77614
parentafb28dc16a3ad8ae50930bd454950900a1c09f69 (diff)
checkpointibm/addr
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/addr@262644 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.meissner8
-rw-r--r--gcc/config/rs6000/rs6000.md23
2 files changed, 18 insertions, 13 deletions
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 3b9c242cdb7..58affe49e31 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,11 @@
+2018-07-13 Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/rs6000.md (large_mov<mode>_loadu_di): Spacing.
+ (large_mov<mode>_loads_di): Likewise.
+ (zero extend large address splits): Fix the insn generated.
+ (sign extend large address splits): Likewise.
+ (large_extendsfdf): Likewise.
+
2018-07-12 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.md (LADDR_GSTORE): Delete, not currently
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 65303af2476..a83e72662b3 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -735,8 +735,7 @@
(define_insn "*large_mov<mode>_loadu_di"
[(set (match_operand:DI 0 "base_reg_operand" "=b")
- (zero_extend:DI
- (match_operand:QHSI 1 "large_mem_operand" "wC")))
+ (zero_extend:DI (match_operand:QHSI 1 "large_mem_operand" "wC")))
(unspec [(const_int 0)] UNSPEC_LADDR_LOAD)]
"TARGET_LARGE_ADDRESS && TARGET_POWERPC64"
{
@@ -750,8 +749,7 @@
(define_insn "*large_mov<mode>_loads_di"
[(set (match_operand:DI 0 "base_reg_operand" "=b")
- (sign_extend:DI
- (match_operand:HSI 1 "large_mem_operand" "wC")))
+ (sign_extend:DI (match_operand:HSI 1 "large_mem_operand" "wC")))
(unspec [(const_int 0)] UNSPEC_LADDR_LOAD)]
"TARGET_LARGE_ADDRESS && TARGET_POWERPC64"
{
@@ -929,18 +927,18 @@
(zero_extend:DI
(match_operand:QHSI 1 "large_mem_operand")))]
"TARGET_LARGE_ADDRESS && TARGET_POWERPC64"
- [(set (match_dup 0)
- (zero_extend:DI
- (unspec:QHSI [(match_dup 1)] UNSPEC_LADDR_LOAD)))])
+ [(parallel [(set (match_dup 0)
+ (zero_extend:DI (match_dup 1)))
+ (unspec [(const_int 0)] UNSPEC_LADDR_LOAD)])])
(define_split
[(set (match_operand:DI 0 "base_reg_operand")
(sign_extend:DI
(match_operand:HSI 1 "large_mem_operand")))]
"TARGET_LARGE_ADDRESS && TARGET_POWERPC64"
- [(set (match_dup 0)
- (sign_extend:DI
- (unspec:HSI [(match_dup 1)] UNSPEC_LADDR_LOAD)))])
+ [(parallel [(set (match_dup 0)
+ (sign_extend:DI (match_dup 1)))
+ (unspec [(const_int 0)] UNSPEC_LADDR_LOAD)])])
(define_split
[(set (match_operand:LADDR 0 "large_mem_operand")
@@ -5016,9 +5014,8 @@
(define_insn "large_extendsfdf"
[(set (match_operand:DF 0 "gpc_reg_operand" "=d,wb")
- (float_extend:DF
- (unspec:SF [(match_operand:SF 1 "large_mem_operand" "wC,wC")]
- UNSPEC_LADDR_LOAD)))
+ (float_extend:DF (match_operand:SF 1 "large_mem_operand" "wC,wC")))
+ (unspec [(const_int 0)] UNSPEC_LADDR_LOAD)
(clobber (match_scratch:DI 2 "=b,b"))]
"TARGET_LARGE_ADDRESS && TARGET_POWERPC64 && !HONOR_SNANS (SFmode)
&& TARGET_P9_FUSION"