On Mon, Dec 1, 2025 at 9:57 AM Saurabh Jha via Sourceware Forge
<[email protected]> wrote:
>
> Hi gcc-patches mailing list,
> Saurabh Jha <[email protected]> has requested that the following 
> forgejo pull request
> be published on the mailing list.
>
> Created on: 2025-10-28 12:52:52+00:00
> Latest update: 2025-12-01 17:56:46+00:00
> Changes: 19 changed files, 753 additions, 32 deletions
> Head revision: saurabh.jha/gcc-TEST ref mingw-data-types-abi commit 
> e6acffa59cac8a7b5e68053b8daab9c5842b4ba9
> Base revision: gcc/gcc-TEST ref trunk commit 
> 1927a43b1e824b591ffc750a49b22221796f4005 r16-5798-g1927a43b1e824b
> Merge base: 1927a43b1e824b591ffc750a49b22221796f4005
> Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/118.diff
> Discussion:  https://forge.sourceware.org/gcc/gcc-TEST/pulls/118
> Requested Reviewers: pinskia
>
> Hey,
>
> Addressed Andrew's comment from here:
> https://forge.sourceware.org/gcc/gcc-TEST/pulls/118#issuecomment-4308

ok. I am pushing this in a few minutes.

>
> No other changes.
>
> Thanks,
> Saurabh
>
> Saurabh Jha (3):
>   aarch64: mingw: emit seh_endproc as comment
>   aarch64: mingw: Make long double 64 bit
>   aarch64: mingw: Implement support for variadic ABI
>
>  gcc/config.gcc                                |   3 +-
>  gcc/config/aarch64/aarch64-abi-ms-protos.h    |  34 +++
>  gcc/config/aarch64/aarch64-abi-ms.cc          | 106 ++++++++
>  gcc/config/aarch64/aarch64-abi-ms.h           |  18 ++
>  gcc/config/aarch64/aarch64-builtins.cc        |  33 +++
>  gcc/config/aarch64/aarch64-coff.h             |   5 -
>  gcc/config/aarch64/aarch64-protos.h           |   1 +
>  gcc/config/aarch64/aarch64.cc                 | 247 ++++++++++++++++--
>  gcc/config/aarch64/aarch64.h                  |  16 ++
>  gcc/config/aarch64/cygming.h                  |   5 +-
>  gcc/config/aarch64/t-aarch64-mingw            |  25 ++
>  gcc/config/mingw/winnt.cc                     |  22 ++
>  gcc/config/mingw/winnt.h                      |   1 +
>  .../aarch64/mingw/long_double_size.c          |  23 ++
>  .../gcc.target/aarch64/mingw/mingw.exp        |  41 +++
>  .../gcc.target/aarch64/mingw/variadic_hfa.c   |  71 +++++
>  .../gcc.target/aarch64/mingw/variadic_hva.c   |  89 +++++++
>  .../gcc.target/aarch64/mingw/variadic_int.c   |  41 +++
>  gcc/testsuite/lib/scanasm.exp                 |   2 +
>  19 files changed, 752 insertions(+), 31 deletions(-)
>  create mode 100644 gcc/config/aarch64/aarch64-abi-ms-protos.h
>  create mode 100644 gcc/config/aarch64/aarch64-abi-ms.cc
>  create mode 100644 gcc/config/aarch64/t-aarch64-mingw
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/long_double_size.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/mingw.exp
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_hfa.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_int.c
>
> --
> 2.34.1
>
>
> Changed files:
> - A: gcc/config/aarch64/aarch64-abi-ms-protos.h
> - A: gcc/config/aarch64/aarch64-abi-ms.cc
> - A: gcc/config/aarch64/t-aarch64-mingw
> - A: gcc/testsuite/gcc.target/aarch64/mingw/long_double_size.c
> - A: gcc/testsuite/gcc.target/aarch64/mingw/mingw.exp
> - A: gcc/testsuite/gcc.target/aarch64/mingw/variadic_hfa.c
> - A: gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva.c
> - A: gcc/testsuite/gcc.target/aarch64/mingw/variadic_int.c
> - M: gcc/config.gcc
> - M: gcc/config/aarch64/aarch64-abi-ms.h
> - M: gcc/config/aarch64/aarch64-builtins.cc
> - M: gcc/config/aarch64/aarch64-coff.h
> - M: gcc/config/aarch64/aarch64-protos.h
> - M: gcc/config/aarch64/aarch64.cc
> - M: gcc/config/aarch64/aarch64.h
> - M: gcc/config/aarch64/cygming.h
> - M: gcc/config/mingw/winnt.cc
> - M: gcc/config/mingw/winnt.h
> - M: gcc/testsuite/lib/scanasm.exp
>
>
> Saurabh Jha (3):
>   aarch64: mingw: emit seh_endproc as comment
>   aarch64: mingw: Make long double 64 bit
>   aarch64: mingw: Implement support for variadic ABI
>
>  gcc/config.gcc                                |   3 +-
>  gcc/config/aarch64/aarch64-abi-ms-protos.h    |  34 +++
>  gcc/config/aarch64/aarch64-abi-ms.cc          | 106 ++++++++
>  gcc/config/aarch64/aarch64-abi-ms.h           |  18 ++
>  gcc/config/aarch64/aarch64-builtins.cc        |  33 +++
>  gcc/config/aarch64/aarch64-coff.h             |   5 -
>  gcc/config/aarch64/aarch64-protos.h           |   1 +
>  gcc/config/aarch64/aarch64.cc                 | 247 ++++++++++++++++--
>  gcc/config/aarch64/aarch64.h                  |  16 ++
>  gcc/config/aarch64/cygming.h                  |   5 +-
>  gcc/config/aarch64/t-aarch64-mingw            |  25 ++
>  gcc/config/mingw/winnt.cc                     |  22 ++
>  gcc/config/mingw/winnt.h                      |   1 +
>  .../aarch64/mingw/long_double_size.c          |  23 ++
>  .../gcc.target/aarch64/mingw/mingw.exp        |  41 +++
>  .../gcc.target/aarch64/mingw/variadic_hfa.c   |  71 +++++
>  .../gcc.target/aarch64/mingw/variadic_hva.c   |  89 +++++++
>  .../gcc.target/aarch64/mingw/variadic_int.c   |  41 +++
>  gcc/testsuite/lib/scanasm.exp                 |   2 +
>  19 files changed, 752 insertions(+), 31 deletions(-)
>  create mode 100644 gcc/config/aarch64/aarch64-abi-ms-protos.h
>  create mode 100644 gcc/config/aarch64/aarch64-abi-ms.cc
>  create mode 100644 gcc/config/aarch64/t-aarch64-mingw
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/long_double_size.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/mingw.exp
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_hfa.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/mingw/variadic_int.c
>
> Range-diff against v5:
> 1:  671127733b03 ! 1:  8c074f613a37 aarch64: mingw: emit seh_endproc as 
> comment
>     @@ gcc/config/aarch64/aarch64-coff.h
>       #define BSS_SECTION_ASM_OP        "\t.bss"
>
>       ## gcc/testsuite/lib/scanasm.exp ##
>     -@@
>     - # it under the terms of the GNU General Public License as published by
>     - # the Free Software Foundation; either version 3 of the License, or
>     - # (at your option) any later version.
>     --#
>     -+#
>     - # This program is distributed in the hope that it will be useful,
>     - # but WITHOUT ANY WARRANTY; without even the implied warranty of
>     - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>     - # GNU General Public License for more details.
>     --#
>     -+#
>     - # You should have received a copy of the GNU General Public License
>     - # along with GCC; see the file COPYING3.  If not see
>     - # <http://www.gnu.org/licenses/>.
>     -@@ gcc/testsuite/lib/scanasm.exp: proc scan-assembler-not { args } {
>     -
>     - set_required_options_for scan-assembler-not
>     -
>     --# Return the scan for the assembly for hidden visibility.
>     -+# Return the scan for the assembly for hidden visibility.
>     -
>     - proc hidden-scan-for { symbol } {
>     -
>     -@@ gcc/testsuite/lib/scanasm.exp: proc scan-assembler-times { args } {
>     -
>     - set_required_options_for scan-assembler-times
>     -
>     --# Call pass if pattern is present within a lower or upper bound,
>     -+# Call pass if pattern is present within a lower or upper bound,
>     - # otherwise fail.
>     - # ex /* { dg-final { scan-assembler-bound {RE} > 3 } }
>     - proc scan-assembler-bound { args } {
>     -@@ gcc/testsuite/lib/scanasm.exp: proc scan-assembler-bound { args } {
>     -         error "scan-assembler-bound: illegal argument: $bound"
>     -         return
>     -     }
>     --
>     -+
>     -     set fd [open $output_file r]
>     -     set text [read $fd]
>     -     close $fd
>      @@ gcc/testsuite/lib/scanasm.exp: proc configure_check-function-bodies { 
> config } {
>         set up_config(end) {^\}$}
>           } elseif { [istarget *-*-darwin*] } {
> 2:  a1e357254cd6 ! 2:  4a00162a8df4 aarch64: mingw: Make long double 64 bit
>     @@ Commit message
>
>                  * config/aarch64/aarch64-abi-ms.h
>                  (TARGET_LONG_DOUBLE_128): Set this to 0.
>     -            (__NO_BINARY80__): Define this so that __ENABLE_BINARY80__ is
>     -            set to 0.
>                  * config/aarch64/aarch64.cc
>                  (aarch64_scalar_mode_supported_p): Make long double 64 bits.
>                  (aarch64_c_mode_for_floating_type): Return true for TFmode.
>     @@ gcc/config/aarch64/aarch64-abi-ms.h: along with GCC; see the file 
> COPYING3.  If
>      +   https://learn.microsoft.com/en-us/cpp/c-language/type-long-double.  
> */
>      +#undef TARGET_LONG_DOUBLE_128
>      +#define TARGET_LONG_DOUBLE_128 0
>     -+
>     -+#define __NO_BINARY80__
>      +
>       #endif /* GCC_AARCH64_ABI_MS_H.  */
>
>     @@ gcc/testsuite/gcc.target/aarch64/mingw/mingw.exp (new)
>      +# GCC testsuite that uses the `dg.exp' driver.
>      +
>      +# Exit immediately if this isn't an AArch64-Mingw target.
>     -+if {![istarget aarch64-w64-mingw32] } then {
>     ++if {![istarget aarch64*-*-mingw32] } then {
>      +    return
>      +}
>      +
> 3:  81a24486b408 ! 3:  e6acffa59cac aarch64: mingw: Implement support for 
> variadic ABI
>     @@ gcc/config/aarch64/aarch64.cc: aarch64_init_builtins ()
>         aarch64_sve::init_builtins ();
>      +  if (TARGET_AARCH64_MS_ABI)
>      +    {
>     -+      do
>     -+  {
>     -+    aarch64_ms_variadic_abi_init_builtins ();
>     -+  } while (0);
>     ++      aarch64_ms_variadic_abi_init_builtins ();
>      +    }
>       #ifdef SUBTARGET_INIT_BUILTINS
>         SUBTARGET_INIT_BUILTINS;
> --
> 2.52.0
>

Reply via email to