diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.cc | 16 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.md | 50 | ||||
-rw-r--r-- | gcc/m2/ChangeLog | 28 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 |
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 |