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"))]