Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init
# 2cf420d5 02-Jan-2024 wanglei <wanglei@loongson.cn>

[LoongArch] Emit function call code sequence as `PCADDU18I+JIRL` in medium code model

According to the description of the psABI v2.20:
https://github.com/loongson/la-abi-specs/releases/tag/v2.20, ad

[LoongArch] Emit function call code sequence as `PCADDU18I+JIRL` in medium code model

According to the description of the psABI v2.20:
https://github.com/loongson/la-abi-specs/releases/tag/v2.20, adjustments
are made to the function call instructions under the medium code model.

At the same time, AsmParser has already supported parsing the call36 and
tail36 macro instructions.

show more ...


Revision tags: llvmorg-17.0.6
# f5bfc833 16-Nov-2023 Jinyang He <hejinyang@loongson.cn>

[LoongArch] Add relax feature and keep relocations (#72191)

Add relax feature. To support linker relocation, we should make
relocation with a symbol rather than section plus offset, and keep all
r

[LoongArch] Add relax feature and keep relocations (#72191)

Add relax feature. To support linker relocation, we should make
relocation with a symbol rather than section plus offset, and keep all
relocations with non-abs symbol.

show more ...


Revision tags: llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init
# 42cb3c63 28-Jun-2023 Weining Lu <luweining@loongson.cn>

[LoongArch] Emit R_LARCH_64_PCREL relocation for FK_Data_8 when IsPCRel is true

Reviewed By: xen0n, MaskRay, hev

Differential Revision: https://reviews.llvm.org/D153872


Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6
# b18cdeac 16-Nov-2022 Youling Tang <tangyouling@loongson.cn>

[MC][LoongArch] Fix needsRelocateWithSymbol() implementation

LoongArch should be `section plus offset`, so use the generic implementation
of `llvm/lib/MC/MCELFObjectTargetWriter.cpp` to return `fals

[MC][LoongArch] Fix needsRelocateWithSymbol() implementation

LoongArch should be `section plus offset`, so use the generic implementation
of `llvm/lib/MC/MCELFObjectTargetWriter.cpp` to return `false` directly, like
x86 and aarch64.

```
$ cat test.c
static int __attribute__((section(".text.another"))) test(int a, int b)
{
return a + b;
}
static int a = 1, b = 2;

int foo()
{
test(a, b);
return 0;
}

$ gcc -c test.c
$ readelf -Wr test.o

Relocation section '.rela.text' at offset 0x2a0 contains 5 entries:
Offset Info Type Symbol's Value Symbol's Name + Addend
0000000000000010 0000000300000047 R_LARCH_PCALA_HI20 0000000000000000 .data + 0
0000000000000014 0000000300000048 R_LARCH_PCALA_LO12 0000000000000000 .data + 0
0000000000000018 0000000300000047 R_LARCH_PCALA_HI20 0000000000000000 .data + 4
000000000000001c 0000000300000048 R_LARCH_PCALA_LO12 0000000000000000 .data + 4
0000000000000028 0000000500000042 R_LARCH_B26 0000000000000000 .text.another + 0

Relocation section '.rela.eh_frame' at offset 0x318 contains 2 entries:
Offset Info Type Symbol's Value Symbol's Name + Addend
000000000000001c 0000000500000063 R_LARCH_32_PCREL 0000000000000000 .text.another + 0
000000000000003c 0000000200000063 R_LARCH_32_PCREL 0000000000000000 .text + 0
```

Reviewed By: SixWeining, MaskRay

Differential Revision: https://reviews.llvm.org/D137384

show more ...


Revision tags: llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2
# 036b170c 29-Sep-2022 wanglei <wanglei@loongson.cn>

[LoongArch] Produce a R_LARCH_32_PCREL relocation

LoongArchELFObjectWriter::getRelocType check IsPCRel for FK_Data_4
(which we produce a R_LARCH_32_PCREL relocation for if IsPCRel).

R_LARCH_32_PCRE

[LoongArch] Produce a R_LARCH_32_PCREL relocation

LoongArchELFObjectWriter::getRelocType check IsPCRel for FK_Data_4
(which we produce a R_LARCH_32_PCREL relocation for if IsPCRel).

R_LARCH_32_PCREL is required for FDE relocation.

Differential Revision: https://reviews.llvm.org/D134715

show more ...


Revision tags: llvmorg-15.0.1, llvmorg-15.0.0
# bf479547 05-Sep-2022 wanglei <wanglei@loongson.cn>

[LoongArch] Add more fixups and relocations

This patch makes the assembler support all modifiers defined in gnu-as.
Also changes some diagnostic information.

Differential Revision: https://reviews.

[LoongArch] Add more fixups and relocations

This patch makes the assembler support all modifiers defined in gnu-as.
Also changes some diagnostic information.

Differential Revision: https://reviews.llvm.org/D132633

show more ...


Revision tags: llvmorg-15.0.0-rc3
# c2ee21cf 20-Aug-2022 wanglei <wanglei@loongson.cn>

[LoongArch] Add some fixups and relocations

This patch only add %pc_hi20/%pc_lo12/%plt relocations in order
to be able to generate gnu ld linkable relocation file for the
`hello world` IR :
```
@.st

[LoongArch] Add some fixups and relocations

This patch only add %pc_hi20/%pc_lo12/%plt relocations in order
to be able to generate gnu ld linkable relocation file for the
`hello world` IR :
```
@.str = private unnamed_addr constant [14 x i8] c"Hello world!\0A\00", align 1

define dso_local signext i32 @main() nounwind {
entry:
%call = call signext i32 (ptr, ...) @printf(ptr noundef @.str)
ret i32 0
}

declare dso_local signext i32 @printf(ptr noundef, ...)
```

This patch also updates some test cases due to new modifiers introduced.
New test: test/MC/LoongArch/Relocations/relocations.s

Differential Revision: https://reviews.llvm.org/D132108

show more ...


Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init
# 904a87ac 26-Jul-2022 Weining Lu <luweining@loongson.cn>

[LoongArch] Use `end namespace xxx` style comment. NFC


Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1
# 88436afe 26-Mar-2022 Fangrui Song <i@maskray.me>

[LoongArch] Fix several Clang warnings. NFC


Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2
# 33388ae8 10-Feb-2022 Lu Weining <luweining@loongson.cn>

[LoongArch 4/6] Add basic tablegen infra for LoongArch

This patch introduces basic tablegen infra such as
LoongArch{InstrFormats,InstrInfo,RegisterInfo,CallingConv,}.td.

For now, only add instructi

[LoongArch 4/6] Add basic tablegen infra for LoongArch

This patch introduces basic tablegen infra such as
LoongArch{InstrFormats,InstrInfo,RegisterInfo,CallingConv,}.td.

For now, only add instruction definitions for LoongArch basic integer
operations.
Our initial target is a working MC layer rather than codegen,
so appropriate SelectionDAG patterns will come later.

Differential revision: https://reviews.llvm.org/D115861

show more ...