aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/config/xtensa/xtensa.cc16
-rw-r--r--gcc/config/xtensa/xtensa.md50
-rw-r--r--gcc/m2/ChangeLog28
-rw-r--r--gcc/testsuite/ChangeLog9
6 files changed, 104 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a4a3f5..4580804 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2025-06-07 Jeff Law <jlaw@ventanamicro.com>
+
+ * config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ riscv_extend_comparands to extend sub-word comparison arguments.
+
+2025-06-07 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR tree-optimization/120572
+ * doc/invoke.texi (Wmusttail-local-addr,
+ Wno-maybe-musttail-local-addr): Fix opindex.
+ * common.opt.urls: Regenerate.
+
2025-06-06 David Malcolm <dmalcolm@redhat.com>
* diagnostic-format-html.cc (struct html_doctypedecl): New.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a3a91b5..800deb1 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250607
+20250608
diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc
index a9d67a5..90b5ff9 100644
--- a/gcc/config/xtensa/xtensa.cc
+++ b/gcc/config/xtensa/xtensa.cc
@@ -3047,6 +3047,8 @@ xtensa_modes_tieable_p (machine_mode mode1, machine_mode mode2)
'K' CONST_INT, print number of bits in mask for EXTUI
'R' CONST_INT, print (X & 0x1f)
'L' CONST_INT, print ((32 - X) & 0x1f)
+ 'U', CONST_DOUBLE:SF, print (REAL_EXP (rval) - 1)
+ 'V', CONST_DOUBLE:SF, print (1 - REAL_EXP (rval))
'D' REG, print second register of double-word register operand
'N' MEM, print address of next word following a memory operand
'v' MEM, if memory reference is volatile, output a MEMW before it
@@ -3143,6 +3145,20 @@ print_operand (FILE *file, rtx x, int letter)
output_operand_lossage ("invalid %%R value");
break;
+ case 'U':
+ if (CONST_DOUBLE_P (x) && GET_MODE (x) == SFmode)
+ fprintf (file, "%d", REAL_EXP (CONST_DOUBLE_REAL_VALUE (x)) - 1);
+ else
+ output_operand_lossage ("invalid %%U value");
+ break;
+
+ case 'V':
+ if (CONST_DOUBLE_P (x) && GET_MODE (x) == SFmode)
+ fprintf (file, "%d", 1 - REAL_EXP (CONST_DOUBLE_REAL_VALUE (x)));
+ else
+ output_operand_lossage ("invalid %%V value");
+ break;
+
case 'x':
if (CONST_INT_P (x))
printx (file, INTVAL (x));
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index c7ac456..56e222d 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -41,6 +41,8 @@
UNSPEC_LSETUP_START
UNSPEC_LSETUP_END
UNSPEC_FRAME_BLOCKAGE
+ UNSPEC_CEIL
+ UNSPEC_FLOOR
])
(define_c_enum "unspecv" [
@@ -103,6 +105,11 @@
(define_code_attr m_float [(float "float") (unsigned_float "ufloat")])
(define_code_attr s_float [(float "") (unsigned_float "uns")])
+;; This iterator and attribute allow FP-to-integer rounding of two types
+;; to be generated from one template.
+(define_int_iterator ANY_ROUND [UNSPEC_CEIL UNSPEC_FLOOR])
+(define_int_attr m_round [(UNSPEC_CEIL "ceil") (UNSPEC_FLOOR "floor")])
+
;; Attributes.
@@ -1168,12 +1175,7 @@
(any_fix:SI (mult:SF (match_operand:SF 1 "register_operand" "f")
(match_operand:SF 2 "fix_scaling_operand" "F"))))]
"TARGET_HARD_FLOAT"
-{
- static char result[64];
- sprintf (result, "<m_fix>.s\t%%0, %%1, %d",
- REAL_EXP (CONST_DOUBLE_REAL_VALUE (operands[2])) - 1);
- return result;
-}
+ "<m_fix>.s\t%0, %1, %U2"
[(set_attr "type" "fconv")
(set_attr "mode" "SF")
(set_attr "length" "3")])
@@ -1192,12 +1194,36 @@
(mult:SF (any_float:SF (match_operand:SI 1 "register_operand" "a"))
(match_operand:SF 2 "float_scaling_operand" "F")))]
"TARGET_HARD_FLOAT"
-{
- static char result[64];
- sprintf (result, "<m_float>.s\t%%0, %%1, %d",
- 1 - REAL_EXP (CONST_DOUBLE_REAL_VALUE (operands[2])));
- return result;
-}
+ "<m_float>.s\t%0, %1, %V2"
+ [(set_attr "type" "fconv")
+ (set_attr "mode" "SF")
+ (set_attr "length" "3")])
+
+(define_insn "l<m_round>sfsi2"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (unspec:SI [(match_operand:SF 1 "register_operand" "f")] ANY_ROUND))]
+ "TARGET_HARD_FLOAT"
+ "<m_round>.s\t%0, %1, 0"
+ [(set_attr "type" "fconv")
+ (set_attr "mode" "SF")
+ (set_attr "length" "3")])
+
+(define_insn "*l<m_round>sfsi2_2x"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (unspec:SI [(plus:SF (match_operand:SF 1 "register_operand" "f")
+ (match_dup 1))] ANY_ROUND))]
+ "TARGET_HARD_FLOAT"
+ "<m_round>.s\t%0, %1, 1"
+ [(set_attr "type" "fconv")
+ (set_attr "mode" "SF")
+ (set_attr "length" "3")])
+
+(define_insn "*l<m_round>sfsi2_scaled"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (unspec:SI [(mult:SF (match_operand:SF 1 "register_operand" "f")
+ (match_operand:SF 2 "fix_scaling_operand" "F"))] ANY_ROUND))]
+ "TARGET_HARD_FLOAT"
+ "<m_round>.s\t%0, %1, %U2"
[(set_attr "type" "fconv")
(set_attr "mode" "SF")
(set_attr "length" "3")])
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 13d3d01..94eb65f 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,31 @@
+2025-06-07 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/119650
+ PR modula2/117203
+ * gm2-compiler/P2Build.bnf (CheckModuleQualident): New
+ procedure.
+ (Qualident): Rewrite.
+ * gm2-compiler/P3Build.bnf (PushTFQualident): New procedure.
+ (CheckModuleQualident): Ditto.
+ (Qualident): Rewrite.
+ * gm2-compiler/PCBuild.bnf (PushTFQualident): New procedure.
+ (CheckModuleQualident): Ditto.
+ (Qualident): Rewrite.
+ * gm2-compiler/PHBuild.bnf (PushTFQualident): New procedure.
+ (CheckModuleQualident): Ditto.
+ (Qualident): Rewrite.
+ * gm2-libs/ARRAYOFCHAR.def: New file.
+ * gm2-libs/ARRAYOFCHAR.mod: New file.
+ * gm2-libs/CFileSysOp.def: New file.
+ * gm2-libs/CHAR.def: New file.
+ * gm2-libs/CHAR.mod: New file.
+ * gm2-libs/FileSysOp.def: New file.
+ * gm2-libs/FileSysOp.mod: New file.
+ * gm2-libs/String.def: New file.
+ * gm2-libs/String.mod: New file.
+ * gm2-libs/StringFileSysOp.def: New file.
+ * gm2-libs/StringFileSysOp.mod: New file.
+
2025-06-06 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/120542
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9df90e6..6de86ef 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2025-06-07 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/119650
+ * gm2/iso/fail/CHAR.mod: New test.
+ * gm2/iso/run/pass/CHAR.mod: New test.
+ * gm2/iso/run/pass/importself.mod: New test.
+ * gm2/pimlib/run/pass/testwrite.mod: New test.
+ * gm2/pimlib/run/pass/testwritechar.mod: New test.
+
2025-06-06 Jason Merrill <jason@redhat.com>
PR c++/120555