[PATCH] gas/NEWS, ld/NEWS: Announce LoongArch changes in 2.42

mengqinggang mengqinggang@loongson.cn
Tue Jan 23 03:56:20 GMT 2024


在 2024/1/23 上午3:14, Xi Ruoyao 写道:
> The change is self-explained, no more commit message :).
>
> Co-authored-by: WANG Xuerui <git@xen0n.name>
> Signed-off-by: Xi Ruoyao <xry111@xry111.site>
> ---
>
> Nick: this is obviously for 2.42...  Sorry for sending it after the
> branching, we were just too focused on "code changes" :(.
>
>   gas/NEWS | 31 +++++++++++++++++++++++++++++++
>   ld/NEWS  | 11 +++++++++++
>   2 files changed, 42 insertions(+)
>
> diff --git a/gas/NEWS b/gas/NEWS
> index cf4e8ff7c95..8078a8dd2af 100644
> --- a/gas/NEWS
> +++ b/gas/NEWS
> @@ -66,6 +66,37 @@ Changes in 2.42:
>   * The BPF assembler now allows using both hash (#) and double slash (//) to
>     begin line comments.
>   
> +* Add support for LoongArch v1.10 new instructions: estimated reciprocal
> +  instructions, sub-word atomic instructions, atomic CAS instructions,
> +  16-byte store-conditional instruction, load-linked instructions with
> +  acquire semantics, and store-conditional instructions with release
> +  semantics.
> +
> +* The %call36 relocation operator, along with the pseudo-instructions
> +  call36 and tail36, are now usable with the LoongArch "medium" code
> +  model, allowing text sections up to 128 GiB.
> +
> +* TLS descriptors (TLSDESC) are now supported on LoongArch. This includes
> +  the following new relocation operators: %desc_pc_hi20, %desc_pc_lo12,
> +  %desc_ld, and %desc_call, and the la.tls.desc pseudo-instruction.
> +
> +* TLS LE relaxation is now supported on LoongArch. New relocation
> +  operators %le_hi20_r, %le_lo12r, and %le_add_r are now available, with
> +  la.tls.le now making use of them.


la.tls.le still expands to the old instruction sequences.  Gcc generates 
new TLS LE
instruction sequences when -mexplicit-relocs=[always,auto].


> +
> +* Add support for LoongArch branch relaxation: a conditional branch with
> +  destination out of its immediate operand range, but still within
> +  a "b"'s range, is now assembled as an inverted branch and a "b". This
> +  works around the unreliable branch offset estimation of the compiler
> +  when .align directive is encoded into a long NOP sequence with an
> +  R_LARCH_RELAX by the assembler.
> +
> +* Add support for encoding three-expression .align directives on LoongArch
> +  with R_LARCH_ALIGN.


R_LARCH_ALIGN only supports the first and the third expressions of .align.


> +
> +* Symbol or label names in LoongArch assembly can now be spelled with
> +  double-quotes.
> +
>   Changes in 2.41:
>   
>   * Add support for the KVX instruction set.
> diff --git a/ld/NEWS b/ld/NEWS
> index c3ebe320e5e..a5a5b9faee2 100644
> --- a/ld/NEWS
> +++ b/ld/NEWS
> @@ -29,6 +29,17 @@ Changes in 2.42:
>     --enable-error-rwx-segments=[yes|no] configure options to set the default for
>     converting warnings into errors.
>   
> +* On LoongArch, various linker relaxation bugs are fixed; the most notable
> +  of which is BZ 30944 (incorrect .balign semantics).
> +
> +* On LoongArch, the LoongArch ABI v2.30 (LoongArch ELF psABI v20231219) is
> +  now implemented. This includes new relocation types, and changed
> +  semantics for PC-relative relocations handling the higher half of 64-bit
> +  offsets.
> +
> +* On LoongArch, link-time TLS optimization and TLS relaxation are now
> +  supported.
> +
>   Changes in 2.41:
>   
>   * The linker now accepts a command line option of --remap-inputs



More information about the Binutils mailing list