brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 67c643c Raw
112 lines · plain
1# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s \2# RUN:     | llvm-readobj -r -x .data - | FileCheck %s --check-prefix=NORELAX3# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s \4# RUN:     | llvm-readobj -r -x .data - | FileCheck %s --check-prefix=RELAX5 6# NORELAX:       Relocations [7# NORELAX-NEXT:    Section ({{.*}}) .rela.text {8# NORELAX-NEXT:      0x0 R_LARCH_CALL36 foo 0x09# NORELAX-NEXT:      0x10 R_LARCH_PCALA_HI20 .L1 0x010# NORELAX-NEXT:      0x14 R_LARCH_PCALA_LO12 .L1 0x011# NORELAX-NEXT:    }12# NORELAX-NEXT:    Section ({{.*}}) .rela.data {13# NORELAX-NEXT:      0x30 R_LARCH_ADD8 foo 0x014# NORELAX-NEXT:      0x30 R_LARCH_SUB8 .L3 0x015# NORELAX-NEXT:      0x31 R_LARCH_ADD16 foo 0x016# NORELAX-NEXT:      0x31 R_LARCH_SUB16 .L3 0x017# NORELAX-NEXT:      0x33 R_LARCH_ADD32 foo 0x018# NORELAX-NEXT:      0x33 R_LARCH_SUB32 .L3 0x019# NORELAX-NEXT:      0x37 R_LARCH_ADD64 foo 0x020# NORELAX-NEXT:      0x37 R_LARCH_SUB64 .L3 0x021# NORELAX-NEXT:    }22# NORELAX-NEXT:  ]23 24# NORELAX:      Hex dump of section '.data':25# NORELAX-NEXT: 0x00000000 04040004 00000004 00000000 0000000426# NORELAX-NEXT: 0x00000010 04040004 00000004 00000000 0000000427# NORELAX-NEXT: 0x00000020 08080008 00000008 00000000 0000000828# NORELAX-NEXT: 0x00000030 00000000 00000000 00000000 00000029 30# RELAX:       Relocations [31# RELAX-NEXT:    Section ({{.*}}) .rela.text {32# RELAX-NEXT:      0x0 R_LARCH_CALL36 foo 0x033# RELAX-NEXT:      0x0 R_LARCH_RELAX - 0x034# RELAX-NEXT:      0xC R_LARCH_ALIGN - 0xC35# RELAX-NEXT:      0x18 R_LARCH_PCALA_HI20 .L1 0x036# RELAX-NEXT:      0x18 R_LARCH_RELAX - 0x037# RELAX-NEXT:      0x1C R_LARCH_PCALA_LO12 .L1 0x038# RELAX-NEXT:      0x1C R_LARCH_RELAX - 0x039# RELAX-NEXT:    }40# RELAX-NEXT:    Section ({{.*}}) .rela.data {41# RELAX-NEXT:      0x10 R_LARCH_ADD8 .L3 0x042# RELAX-NEXT:      0x10 R_LARCH_SUB8 .L2 0x043# RELAX-NEXT:      0x11 R_LARCH_ADD16 .L3 0x044# RELAX-NEXT:      0x11 R_LARCH_SUB16 .L2 0x045# RELAX-NEXT:      0x13 R_LARCH_ADD32 .L3 0x046# RELAX-NEXT:      0x13 R_LARCH_SUB32 .L2 0x047# RELAX-NEXT:      0x17 R_LARCH_ADD64 .L3 0x048# RELAX-NEXT:      0x17 R_LARCH_SUB64 .L2 0x049# RELAX-NEXT:      0x1F R_LARCH_ADD_ULEB128 .L3 0x050# RELAX-NEXT:      0x1F R_LARCH_SUB_ULEB128 .L2 0x051# RELAX-NEXT:      0x20 R_LARCH_ADD8 .L4 0x052# RELAX-NEXT:      0x20 R_LARCH_SUB8 .L3 0x053# RELAX-NEXT:      0x21 R_LARCH_ADD16 .L4 0x054# RELAX-NEXT:      0x21 R_LARCH_SUB16 .L3 0x055# RELAX-NEXT:      0x23 R_LARCH_ADD32 .L4 0x056# RELAX-NEXT:      0x23 R_LARCH_SUB32 .L3 0x057# RELAX-NEXT:      0x27 R_LARCH_ADD64 .L4 0x058# RELAX-NEXT:      0x27 R_LARCH_SUB64 .L3 0x059# RELAX-NEXT:      0x2F R_LARCH_ADD_ULEB128 .L4 0x060# RELAX-NEXT:      0x2F R_LARCH_SUB_ULEB128 .L3 0x061# RELAX-NEXT:      0x30 R_LARCH_ADD8 foo 0x062# RELAX-NEXT:      0x30 R_LARCH_SUB8 .L3 0x063# RELAX-NEXT:      0x31 R_LARCH_ADD16 foo 0x064# RELAX-NEXT:      0x31 R_LARCH_SUB16 .L3 0x065# RELAX-NEXT:      0x33 R_LARCH_ADD32 foo 0x066# RELAX-NEXT:      0x33 R_LARCH_SUB32 .L3 0x067# RELAX-NEXT:      0x37 R_LARCH_ADD64 foo 0x068# RELAX-NEXT:      0x37 R_LARCH_SUB64 .L3 0x069# RELAX-NEXT:    }70# RELAX-NEXT:  ]71 72# RELAX:      Hex dump of section '.data':73# RELAX-NEXT: 0x00000000 04040004 00000004 00000000 0000000474# RELAX-NEXT: 0x00000010 00000000 00000000 00000000 0000000075# RELAX-NEXT: 0x00000020 00000000 00000000 00000000 0000000076# RELAX-NEXT: 0x00000030 00000000 00000000 00000000 00000077 78.text79  call36 foo80.L1:81  nop82.L2:83  .align 484.L3:85  la.pcrel $t0, .L186.L4:87  ret88 89.data90## Not emit relocs91.byte  .L2 - .L192.short .L2 - .L193.word  .L2 - .L194.dword .L2 - .L195.uleb128 .L2 - .L196## With relaxation, emit relocs because the .align makes the diff variable.97.byte  .L3 - .L298.short .L3 - .L299.word  .L3 - .L2100.dword .L3 - .L2101.uleb128 .L3 - .L2102## With relaxation, emit relocs because the la.pcrel makes the diff variable.103.byte  .L4 - .L3104.short .L4 - .L3105.word  .L4 - .L3106.dword .L4 - .L3107.uleb128 .L4 - .L3108.byte  foo - .L3109.short foo - .L3110.word  foo - .L3111.dword foo - .L3112