60 lines · plain
1# RUN: not --crash llc -mtriple=mips-mti-linux-gnu -mcpu=mips32r2 %s \2# RUN: -start-after=finalize-isel -stop-after=finalize-isel \3# RUN: -verify-machineinstrs -mattr=+use-indirect-jump-hazard -o - 2>&1 \4# RUN: | FileCheck %s5 6# That that tail calls are checked when using indirect jump guards (hazard variant).7 8# CHECK: Bad machine code: invalid instruction when using jump guards!9--- |10 define i32 @fooTail(ptr nocapture %f1) {11 entry:12 %0 = tail call i32 %f1(i32 14)13 ret i32 %014 }15 16...17---18name: fooTail19alignment: 420exposesReturnsTwice: false21legalized: false22regBankSelected: false23selected: false24tracksRegLiveness: true25registers:26 - { id: 0, class: gpr32, preferred-register: '' }27 - { id: 1, class: gpr32, preferred-register: '' }28liveins:29 - { reg: '$a0', virtual-reg: '%0' }30frameInfo:31 isFrameAddressTaken: false32 isReturnAddressTaken: false33 hasStackMap: false34 hasPatchPoint: false35 stackSize: 036 offsetAdjustment: 037 maxAlignment: 138 adjustsStack: false39 hasCalls: false40 stackProtector: ''41 maxCallFrameSize: 429496729542 hasOpaqueSPAdjustment: false43 hasVAStart: false44 hasMustTailInVarArgFunc: false45 savePoint: []46 restorePoint: []47fixedStack:48stack:49constants:50body: |51 bb.0.entry:52 liveins: $a053 54 %0:gpr32 = COPY $a055 %1:gpr32 = ADDiu $zero, 1456 $a0 = COPY %157 TAILCALLREG %0, csr_o32, implicit-def dead $at, implicit $a058 59...60