72 lines · plain
1# RUN: llc -mtriple=mips -mcpu=mips32r2 -mattr=+micromips %s -o - \2# RUN: -start-after=block-placement | FileCheck %s3 4# Test that the micromips jal instruction is correctly handled by the delay slot5# filler by converting it to a short delay slot for the li instruction.6 7# CHECK-LABEL: caller138# CHECK: jals callee139# CHECK-NEXT: li1610 11--- |12 declare i32 @callee13(i32, i32)13 14 define i32 @caller13() {15 entry:16 %call = tail call i32 (i32, i32) @callee13(i32 1, i32 2)17 ret i32 %call18 }19 20...21---22name: caller1323alignment: 424exposesReturnsTwice: false25legalized: false26regBankSelected: false27selected: false28tracksRegLiveness: true29registers:30liveins:31frameInfo:32 isFrameAddressTaken: false33 isReturnAddressTaken: false34 hasStackMap: false35 hasPatchPoint: false36 stackSize: 2437 offsetAdjustment: 038 maxAlignment: 439 adjustsStack: true40 hasCalls: true41 stackProtector: ''42 maxCallFrameSize: 1643 hasOpaqueSPAdjustment: false44 hasVAStart: false45 hasMustTailInVarArgFunc: false46 savePoint: []47 restorePoint: []48fixedStack:49stack:50 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,51 stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,52 debug-info-variable: '', debug-info-expression: '',53 debug-info-location: '' }54constants:55body: |56 bb.0.entry:57 liveins: $ra58 59 $sp = ADDiu $sp, -2460 CFI_INSTRUCTION def_cfa_offset 2461 SW killed $ra, $sp, 20 :: (store (s32) into %stack.0)62 CFI_INSTRUCTION offset $ra_64, -463 $a0 = LI16_MM 164 $a1 = LI16_MM 265 JAL_MM @callee13, csr_o32, implicit-def dead $ra, implicit killed $a0, implicit killed $a1, implicit-def $sp, implicit-def $v066 $ra = LW $sp, 20 :: (load (s32) from %stack.0)67 $sp = ADDiu $sp, 2468 PseudoReturn undef $ra, implicit $v069 70 71...72