brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 1b5b818 Raw
127 lines · plain
1## Test la/la.global/la.local expand to different instructions sequence under2## different features.3 4# RUN: llvm-mc --triple=loongarch64 %s \5# RUN:     | FileCheck %s --check-prefix=NORMAL6# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s -o %t7# RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=RELOC8# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o %t.relax9# RUN: llvm-readobj -r %t.relax | FileCheck %s --check-prefixes=RELOC,RELAX10# RUN: llvm-mc --triple=loongarch64 --mattr=+la-global-with-pcrel < %s \11# RUN:     | FileCheck %s --check-prefix=GTOPCR12# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+la-global-with-pcrel \13# RUN:     --mattr=-relax %s -o %t14# RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=GTOPCR-RELOC15# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+la-global-with-pcrel \16# RUN:     --mattr=+relax %s -o %t.relax17# RUN: llvm-readobj -r %t.relax | FileCheck %s --check-prefixes=GTOPCR-RELOC,GTOPCR-RELAX18# RUN: llvm-mc --triple=loongarch64 --mattr=+la-global-with-abs < %s \19# RUN:     | FileCheck %s --check-prefix=GTOABS20# RUN: llvm-mc --triple=loongarch64 --mattr=+la-local-with-abs < %s \21# RUN:     | FileCheck %s --check-prefix=LTOABS22 23# RELOC:      Relocations [24# RELOC-NEXT:   Section ({{.*}}) .rela.text {25 26la $a0, sym27# NORMAL:      pcalau12i $a0, %got_pc_hi20(sym)28# NORMAL-NEXT: ld.d $a0, $a0, %got_pc_lo12(sym)29 30# GTOPCR:      pcalau12i $a0, %pc_hi20(sym)31# GTOPCR-NEXT: addi.d $a0, $a0, %pc_lo12(sym)32 33# GTOABS:      lu12i.w $a0, %abs_hi20(sym)34# GTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym)35# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym)36# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym)37 38# RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym 0x039# RELAX-NEXT: R_LARCH_RELAX - 0x040# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym 0x041# RELAX-NEXT: R_LARCH_RELAX - 0x042 43# GTOPCR-RELOC: R_LARCH_PCALA_HI20 sym 0x044# GTOPCR-RELAX: R_LARCH_RELAX - 0x045# GTOPCR-RELOC-NEXT: R_LARCH_PCALA_LO12 sym 0x046# GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x047 48la.global $a0, sym_global49# NORMAL:      pcalau12i $a0, %got_pc_hi20(sym_global)50# NORMAL-NEXT: ld.d $a0, $a0, %got_pc_lo12(sym_global)51 52# GTOPCR:      pcalau12i $a0, %pc_hi20(sym_global)53# GTOPCR-NEXT: addi.d $a0, $a0, %pc_lo12(sym_global)54 55# GTOABS:      lu12i.w $a0, %abs_hi20(sym_global)56# GTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym_global)57# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_global)58# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_global)59 60# RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_global 0x061# RELAX-NEXT: R_LARCH_RELAX - 0x062# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_global 0x063# RELAX-NEXT: R_LARCH_RELAX - 0x064 65# GTOPCR-RELOC-NEXT: R_LARCH_PCALA_HI20 sym_global 0x066# GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x067# GTOPCR-RELOC-NEXT: R_LARCH_PCALA_LO12 sym_global 0x068# GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x069 70la.global $a0, $a1, sym_global_large71# NORMAL:      pcalau12i $a0, %got_pc_hi20(sym_global_large)72# NORMAL-NEXT: addi.d $a1, $zero, %got_pc_lo12(sym_global_large)73# NORMAL-NEXT: lu32i.d $a1, %got64_pc_lo20(sym_global_large)74# NORMAL-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(sym_global_large)75# NORMAL-NEXT: ldx.d $a0, $a0, $a176 77# GTOPCR:      pcalau12i $a0, %pc_hi20(sym_global_large)78# GTOPCR-NEXT: addi.d $a1, $zero, %pc_lo12(sym_global_large)79# GTOPCR-NEXT: lu32i.d $a1, %pc64_lo20(sym_global_large)80# GTOPCR-NEXT: lu52i.d $a1, $a1, %pc64_hi12(sym_global_large)81# GTOPCR-NEXT: add.d $a0, $a0, $a182 83# GTOABS:      lu12i.w $a0, %abs_hi20(sym_global_large)84# GTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym_global_large)85# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_global_large)86# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_global_large)87 88# RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_global_large 0x089# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_global_large 0x090# RELOC-NEXT: R_LARCH_GOT64_PC_LO20 sym_global_large 0x091# RELOC-NEXT: R_LARCH_GOT64_PC_HI12 sym_global_large 0x092 93la.local $a0, sym_local94# NORMAL:      pcalau12i $a0, %pc_hi20(sym_local)95# NORMAL-NEXT: addi.d $a0, $a0, %pc_lo12(sym_local)96 97# LTOABS:      lu12i.w $a0, %abs_hi20(sym_local)98# LTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym_local)99# LTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_local)100# LTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_local)101 102# RELOC-NEXT: R_LARCH_PCALA_HI20 sym_local 0x0103# RELAX-NEXT: R_LARCH_RELAX - 0x0104# RELOC-NEXT: R_LARCH_PCALA_LO12 sym_local 0x0105# RELAX-NEXT: R_LARCH_RELAX - 0x0106 107la.local $a0, $a1, sym_local_large108# NORMAL:      pcalau12i $a0, %pc_hi20(sym_local_large)109# NORMAL-NEXT: addi.d $a1, $zero, %pc_lo12(sym_local_large)110# NORMAL-NEXT: lu32i.d $a1, %pc64_lo20(sym_local_large)111# NORMAL-NEXT: lu52i.d $a1, $a1, %pc64_hi12(sym_local_large)112# NORMAL-NEXT: add.d $a0, $a0, $a1113 114# LTOABS:      lu12i.w $a0, %abs_hi20(sym_local_large)115# LTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym_local_large)116# LTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_local_large)117# LTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_local_large)118 119# RELOC-NEXT: R_LARCH_PCALA_HI20 sym_local_large 0x0120# RELOC-NEXT: R_LARCH_PCALA_LO12 sym_local_large 0x0121# RELOC-NEXT: R_LARCH_PCALA64_LO20 sym_local_large 0x0122# RELOC-NEXT: R_LARCH_PCALA64_HI12 sym_local_large 0x0123 124 125# RELOC-NEXT:   }126# RELOC-NEXT: ]127