brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 1c25a36 Raw
43 lines · plain
1; RUN: llc -mtriple=mips -target-abi o32 --mattr=+long-calls,+noabicalls < %s \2; RUN:   -mips-jalr-reloc=false | FileCheck -check-prefix=O32 %s3; RUN: llc -mtriple=mips -target-abi o32 --mattr=-long-calls,+noabicalls < %s \4; RUN:   -mips-jalr-reloc=false | FileCheck -check-prefix=O32 %s5; RUN: llc -mtriple=mips64 -target-abi n64 --mattr=+long-calls,+noabicalls < %s \6; RUN:   -mips-jalr-reloc=false | FileCheck -check-prefix=N64 %s7; RUN: llc -mtriple=mips64 -target-abi n64 --mattr=-long-calls,+noabicalls < %s \8; RUN:   -mips-jalr-reloc=false | FileCheck -check-prefix=N64 %s9 10declare void @far() #011 12define void @near() #1 {13  ret void14}15 16define void @foo() {17  call void @far()18 19; O32-LABEL: foo:20; O32:         lui     $1, %hi(far)21; O32-NEXT:    addiu   $25, $1, %lo(far)22; O32-NEXT:    jalr    $2523 24; N64-LABEL: foo:25; N64:         lui     $1, %highest(far)26; N64-NEXT:    daddiu  $1, $1, %higher(far)27; N64-NEXT:    dsll    $1, $1, 1628; N64-NEXT:    daddiu  $1, $1, %hi(far)29; N64-NEXT:    dsll    $1, $1, 1630; N64-NEXT:    daddiu  $25, $1, %lo(far)31; N64-NEXT:    jalr    $2532 33  call void @near()34 35; O32:         jal near36; N64:         jal near37 38  ret void39}40 41attributes #0 = { "long-call" }42attributes #1 = { "short-call" }43