Module Name: src
Committed By: kalvisd
Date: Sun Sep 29 15:38:01 UTC 2024
Modified Files:
src/external/gpl3/gcc/dist/gcc/config/vax: vax.md
Log Message:
gcc: vax: break a load of the top half of a 64 bit indexed memory reference
into two parts - a load into a 64 bit temporary value and then the
load of the top half of that value.
OK rin@
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.md
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.23 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.24
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.23 Sun Sep 29 13:13:43 2024
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.md Sun Sep 29 15:38:01 2024
@@ -274,6 +274,28 @@
#endif
}")
+;; Split a store of the upper half of a 64 bit value in memory into
+;; two operations.
+(define_split
+ [(set (match_operand:SI 0 "nonimmediate_operand" "")
+ (subreg:SI
+ (match_operand:DI 1 "indexed_memory_operand" "")
+ 4
+ )
+ )
+ (clobber (match_scratch:DI 2 ""))
+ ]
+ ""
+ [
+ (set (match_dup 2)
+ (match_dup 1)
+ )
+ (set (match_dup 0)
+ (subreg:SI (match_dup 2) 4)
+ )
+ ]
+)
+
(define_insn_and_split "movsi_2"
[(set (match_operand:SI 0 "nonimmediate_operand" "=g")
(match_operand:SI 1 "nonsymbolic_operand" "nrmT"))]