123 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2 3; RUN: llc -mtriple=mips-elf -verify-machineinstrs \4; RUN: < %s | FileCheck %s -check-prefix=MIPS325; RUN: llc -mtriple=mips-elf -verify-machineinstrs -relocation-model=pic \6; RUN: < %s | FileCheck %s -check-prefix=MIPS32-PIC7; RUN: llc -mtriple=mips64-elf -verify-machineinstrs \8; RUN: < %s | FileCheck %s -check-prefix=MIPS649; RUN: llc -mtriple=mips64-elf -verify-machineinstrs -relocation-model=pic \10; RUN: < %s | FileCheck %s -check-prefix=MIPS64-PIC11; RUN: llc -mtriple=mips-elf -verify-machineinstrs -mattr=+micromips \12; RUN: < %s | FileCheck %s -check-prefix=MIPS32-MM13; RUN: llc -mtriple=mips-elf -verify-machineinstrs -relocation-model=pic -mattr=+micromips \14; RUN: < %s | FileCheck %s -check-prefix=MIPS32-MM-PIC15 16; Test that checks ABI for _mcount calls.17 18define void @foo() {19; MIPS32-LABEL: foo:20; MIPS32: # %bb.0: # %entry21; MIPS32-NEXT: addiu $sp, $sp, -2422; MIPS32-NEXT: .cfi_def_cfa_offset 2423; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill24; MIPS32-NEXT: .cfi_offset 31, -425; MIPS32-NEXT: move $1, $ra26; MIPS32-NEXT: jal _mcount27; MIPS32-NEXT: addiu $sp, $sp, -828; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload29; MIPS32-NEXT: jr $ra30; MIPS32-NEXT: addiu $sp, $sp, 2431;32; MIPS32-PIC-LABEL: foo:33; MIPS32-PIC: # %bb.0: # %entry34; MIPS32-PIC-NEXT: lui $2, %hi(_gp_disp)35; MIPS32-PIC-NEXT: addiu $2, $2, %lo(_gp_disp)36; MIPS32-PIC-NEXT: addiu $sp, $sp, -2437; MIPS32-PIC-NEXT: .cfi_def_cfa_offset 2438; MIPS32-PIC-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill39; MIPS32-PIC-NEXT: .cfi_offset 31, -440; MIPS32-PIC-NEXT: addu $gp, $2, $2541; MIPS32-PIC-NEXT: lw $25, %call16(_mcount)($gp)42; MIPS32-PIC-NEXT: move $1, $ra43; MIPS32-PIC-NEXT: .reloc $tmp0, R_MIPS_JALR, _mcount44; MIPS32-PIC-NEXT: $tmp0:45; MIPS32-PIC-NEXT: jalr $2546; MIPS32-PIC-NEXT: addiu $sp, $sp, -847; MIPS32-PIC-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload48; MIPS32-PIC-NEXT: jr $ra49; MIPS32-PIC-NEXT: addiu $sp, $sp, 2450;51; MIPS64-LABEL: foo:52; MIPS64: # %bb.0: # %entry53; MIPS64-NEXT: daddiu $sp, $sp, -1654; MIPS64-NEXT: .cfi_def_cfa_offset 1655; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill56; MIPS64-NEXT: .cfi_offset 31, -857; MIPS64-NEXT: move $1, $ra58; MIPS64-NEXT: jal _mcount59; MIPS64-NEXT: nop60; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload61; MIPS64-NEXT: jr $ra62; MIPS64-NEXT: daddiu $sp, $sp, 1663;64; MIPS64-PIC-LABEL: foo:65; MIPS64-PIC: # %bb.0: # %entry66; MIPS64-PIC-NEXT: daddiu $sp, $sp, -1667; MIPS64-PIC-NEXT: .cfi_def_cfa_offset 1668; MIPS64-PIC-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill69; MIPS64-PIC-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill70; MIPS64-PIC-NEXT: .cfi_offset 31, -871; MIPS64-PIC-NEXT: .cfi_offset 28, -1672; MIPS64-PIC-NEXT: lui $1, %hi(%neg(%gp_rel(foo)))73; MIPS64-PIC-NEXT: daddu $1, $1, $2574; MIPS64-PIC-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(foo)))75; MIPS64-PIC-NEXT: ld $25, %call16(_mcount)($gp)76; MIPS64-PIC-NEXT: move $1, $ra77; MIPS64-PIC-NEXT: .reloc .Ltmp0, R_MIPS_JALR, _mcount78; MIPS64-PIC-NEXT: .Ltmp0:79; MIPS64-PIC-NEXT: jalr $2580; MIPS64-PIC-NEXT: nop81; MIPS64-PIC-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload82; MIPS64-PIC-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload83; MIPS64-PIC-NEXT: jr $ra84; MIPS64-PIC-NEXT: daddiu $sp, $sp, 1685;86; MIPS32-MM-LABEL: foo:87; MIPS32-MM: # %bb.0: # %entry88; MIPS32-MM-NEXT: addiu $sp, $sp, -2489; MIPS32-MM-NEXT: .cfi_def_cfa_offset 2490; MIPS32-MM-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill91; MIPS32-MM-NEXT: .cfi_offset 31, -492; MIPS32-MM-NEXT: move $1, $ra93; MIPS32-MM-NEXT: jal _mcount94; MIPS32-MM-NEXT: addiu $sp, $sp, -895; MIPS32-MM-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload96; MIPS32-MM-NEXT: jr $ra97; MIPS32-MM-NEXT: addiu $sp, $sp, 2498;99; MIPS32-MM-PIC-LABEL: foo:100; MIPS32-MM-PIC: # %bb.0: # %entry101; MIPS32-MM-PIC-NEXT: lui $2, %hi(_gp_disp)102; MIPS32-MM-PIC-NEXT: addiu $2, $2, %lo(_gp_disp)103; MIPS32-MM-PIC-NEXT: addiu $sp, $sp, -24104; MIPS32-MM-PIC-NEXT: .cfi_def_cfa_offset 24105; MIPS32-MM-PIC-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill106; MIPS32-MM-PIC-NEXT: .cfi_offset 31, -4107; MIPS32-MM-PIC-NEXT: addu $gp, $2, $25108; MIPS32-MM-PIC-NEXT: lw $25, %call16(_mcount)($gp)109; MIPS32-MM-PIC-NEXT: move $1, $ra110; MIPS32-MM-PIC-NEXT: .reloc $tmp0, R_MICROMIPS_JALR, _mcount111; MIPS32-MM-PIC-NEXT: $tmp0:112; MIPS32-MM-PIC-NEXT: jalr $25113; MIPS32-MM-PIC-NEXT: addiu $sp, $sp, -8114; MIPS32-MM-PIC-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload115; MIPS32-MM-PIC-NEXT: jr $ra116; MIPS32-MM-PIC-NEXT: addiu $sp, $sp, 24117entry:118 call void @_mcount()119 ret void120}121 122declare void @_mcount()123