在 2024/4/23 上午11:43, Lulu Cheng 写道:
---
htdocs/gcc-14/changes.html | 156 +++++++++++++++++++++++++++++++++++++
1 file changed, 156 insertions(+)
diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index 9509487c..f0f0efe0 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htdocs/gcc-14/changes.html
@@ -877,6 +877,162 @@ __asm (".global __flmap_lock" "\n\t"
</li>
</ul>
+<h3 id="loongarch">LoongArch</h3>
+<ul>
+ <li>Support for the following
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-march-7">
+ <code>-march</code></a> parameters has been added:
+ <ul>
+ <li><code>la64v1.0</code></li>
+ <li><code>la64v1.1</code></li>
+ <li><code>la664</code></li>
+ </ul>
+ It is now recommended to use <code>-march=la64v1.0</code> as the only
+ compiler option to describe the target ISA when building binaries for
+ distribution. For more information on LoongArch ISA versions, see
+ <a href="https://github.com/loongson/la-toolchain-conventions/">
+ Toolchain Conventions of the LoongArch™ Architecture</a>.
+ </li>
+ <li>Support for the following
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mtune-8">
+ <code>-mtune</code></a> parameters has been added:
+ <ul>
+ <li><code>generic</code></li>
+ <li><code>la664</code></li>
+ </ul>
+ </li>
+ <li>New ISA Extension
+ <ul>
+ <li>LSX (Loongson SIMD Extension): Support 128-bit vector instructions
+ and the intrinsics.
+ </li>
+ <li>LASX (Loongson Advanced SIMD Extension): Support 256-bit vector
+ instructions and the intrinsics.
+ </li>
+ <li>FRECIPE: Support <code>frecipe.{s/d}</code> and
+ <code>frsqrte.{s/d}</code> instructions and the intrinsics.
+ </li>
+ <li>DIV32: Support <code>div.w[u]</code> and <code>mod.w[u]</code>
+ instructions with inputs not sign-extended.
+ </li>
+ <li>LAM_BH: Support <code>am{swap/add}[_db].{b/h}</code> instructions.
+ </li>
+ <li>LAMCAS: Support <code>amcas[_db].{b/h/w/d}</code> instructions.
+ </li>
+ </ul>
+ </li>
+ <li>New Built-in Macros
+ <ul>
+ <li><code>__loongarch_arch</code>: Target ISA preset as specified by
+ <code>-march=</code>. For example, compiling with
+ <code>-march=la64v1.0</code>, the value of
<code>__loongarch_arch</code>
+ is <code>"la64v1.0"</code>.
+ </li>
+ <li><code>__loongarch_tune</code>: Processor model as specified by
+ <code>-mtune</code> or its default value.
+ </li>
+ <li><code>__loongarch_{simd,sx,asx}</code>: These macros are not defined,
+ or defined as 1.
+ </li>
+ <li><code>__loongarch_simd_width</code>: The maximum SIMD bit-width
+ enabled by the compiler. (128 for lsx, and 256 for lasx).
+ </li>
+ <li><code>__loongarch_frecipe</code>: It's defined to 1 or undefined.
+ </li>
+ <li><code>__loongarch_div32</code>: It's defined to 1 or undefined.</li>
+ <li><code>__loongarch_lam_bh</code>: It's defined to 1 or undefined.</li>
+ <li><code>__loongarch_lamcas</code>: It's defined to 1 or undefined.</li>
+ <li><code>__loongarch_ld_seq_sa</code>: It's defined to 1 or undefined.
+ </li>
+ <li><code>__loongarch_version_major</code>:
+ The minimally required LoongArch ISA version (major) to run the
+ compiled program, defined to 1 or undefined (iff no such version is
+ known to the compiler).
+ </li>
+ <li><code>__loongarch_version_minor</code>:
+ The minimally required LoongArch ISA version (minor) to run the
+ compiled program, defined to 0 1 or undefined (iff
+ <code>__loongarch_version_major</code> is undefined).
+ </li>
+ <li><code>__FLOAT128_TYPE</code>: It's defined to 1.</li>
+ </ul>
+ </li>
+ <li>New Intrinsics
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Base-Built-in-Functions.html">
+ <code>__builtin_thread_pointer</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-SX-Vector-Intrinsics.html">
+ <code>__lsx_*</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-ASX-Vector-Intrinsics.html">
+ <code>__lasx_*</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Base-Built-in-Functions.html">
+ <code>__frecipe_{s/d}</code> and <code>__frsqrte_{s/d}</code></a>
+ </li>
+ </ul>
+ </li>
+ <li>New Compiler Option
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-ml_005ba_005dsx">
+ <code>-m[no-]lsx</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-ml_005ba_005dsx">
+ <code>-m[no-]lasx</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mfrecipe">
+ <code>-m[no-]frecipe</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mdiv32">
+ <code>-m[no-]div32</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mlam-bh">
+ <code>-m[no-]lam-bh</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mlamcas">
+ <code>-m[no-]lamcas</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mld-seq-sa">
+ <code>-m[no-]ld-seq-sa</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mrecip_003dopt">
+ <code>-mrecip=</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mrecip">
+ <code>-m[no-]recip</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mexplicit-relocs-1">
+ <code>-mexplicit-relocs={none,always,auto}</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mrelax-2">
+ <code>-m[no-]relax</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mpass-mrelax-to-as">
+ <code>-m[no-]pass-mrelax-to-as</code></a>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mtls-dialect-1">
+ <code>-mtls-dialect={trad,desc}</code></a>
+ </li>
+ </ul>
+ </li>
+ <li>Support for Ada and D.</li>
+ <li>Support for libffi.</li>
+ <li>Enable <code>-free</code> by default at <code>-O2</code> or higher.</li>
+ <li>Enable <code>-fsched-pressure</code> by default at <code>-O1</code> or
+ higher.
+ </li>
+ <li>Support the <code>extreme</code> code model using macro instructions
+ (under -mno-explicit-relocs).</li>
+ <li>Support <code>call36</code>.</li>
+ <li>Optimizing built-in functions for memory-model-aware atomic operations
+ using hierarchical dbar instructions.</li>
+ <li>TLS descriptors support. It is not enabled by default, and can be enabled
+ with <a
href="https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mtls-dialect-1">
+ <code>-mtls-dialect=desc</code></a>. The default behavior can be
+ configured with <code>--with-tls=[trad|desc]</code>.</li>
+</ul>
+
<!-- <h3 id="mips">MIPS</h3> -->
<!-- <h3 id="mep">MeP</h3> -->