Module Name: src
Committed By: kalvisd
Date: Sun Sep 29 04:33:07 UTC 2024
Modified Files:
src/external/gpl3/gcc/dist/gcc/config/vax: vax.cc vax.md
Log Message:
gcc: vax:
Add a special case to the zero_extract instruction to handle the case
where 32 bits are requested (i.e. the entire word). When printing a
mask operand, avoid generating values that might overflow a 32 bit
word
OK rin@
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/gcc/dist/gcc/config/vax/vax.cc
cvs rdiff -u -r1.19 -r1.20 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.cc
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.cc:1.4 src/external/gpl3/gcc/dist/gcc/config/vax/vax.cc:1.5
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.cc:1.4 Sun Sep 29 04:25:16 2024
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.cc Sun Sep 29 04:33:07 2024
@@ -569,7 +569,7 @@ print_operand (FILE *file, rtx x, int co
else if (code == 'b' && CONST_INT_P (x))
fprintf (file, "$%d", (int) (0xff & - INTVAL (x)));
else if (code == 'M' && CONST_INT_P (x))
- fprintf (file, "$%d", ~((1 << INTVAL (x)) - 1));
+ fprintf (file, "$%d", ((unsigned int)(~0) << (INTVAL (x))));
else if (code == 'x' && CONST_INT_P (x))
fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (x));
else if (REG_P (x))
Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.md
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.19 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.20
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.19 Sun Sep 29 04:25:16 2024
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.md Sun Sep 29 04:33:07 2024
@@ -2000,7 +2000,14 @@
if (INTVAL (operands[3]) & 31)
return \"rotl %R3,%1,%0\;bicl2 %M2,%0\";
if (rtx_equal_p (operands[0], operands[1]))
- return \"bicl2 %M2,%0\";
+ {
+ if (INTVAL (operands[2]) == 32)
+ return \"\"; /* no-op */
+ else
+ return \"bicl2 %M2,%0\";
+ }
+ if (INTVAL (operands[2]) == 32)
+ return \"movl %1,%0\";
return \"bicl3 %M2,%1,%0\";
}")