1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/CodeGen/Mips/start-asm-file.ll
Simon Atanasyan 71d4f2d741 [mips] Switch to the .text section after emitting asm file preamble
Now the last `.section` directive in the MIPS asm file preamble
is the `.section .mdebug.abi`. If assembler code injected for example
by the LLVM `module asm` or the C ` __asm` directives do not contain
explicit switching to the `.text` section it goes to the `.mdebug.abi`
section. It might be unexpected to the user and in fact for example
breaks building some existing code like FreeBSD libc [1].

The patch forces switching to the `.text` section after emitting MIPS
assembler file preamble.

[1] https://bugs.llvm.org/show_bug.cgi?id=43119

Fix PR43119.

Differential Revision: https://reviews.llvm.org/D67014

llvm-svn: 370735
2019-09-03 10:24:07 +00:00

76 lines
2.9 KiB
LLVM

; Check the emission of directives at the start of an asm file.
; ### O32 ABI ###
; RUN: llc -filetype=asm -mtriple mips-unknown-linux -mcpu=mips32 \
; RUN: -relocation-model=static %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=32 -check-prefixes=CHECK,STATIC-O32 %s
; RUN: llc -filetype=asm -mtriple mips-unknown-linux -mcpu=mips32 \
; RUN: -relocation-model=pic %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=32 -check-prefixes=CHECK,PIC-O32 %s
; RUN: llc -filetype=asm -mtriple mips-unknown-linux -mcpu=mips32 \
; RUN: -relocation-model=static -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=32 -check-prefixes=CHECK,STATIC-O32 %s
; RUN: llc -filetype=asm -mtriple mips-unknown-linux -mcpu=mips32 \
; RUN: -relocation-model=pic -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=32 -check-prefixes=CHECK,PIC-O32 %s
; ### N32 ABI ###
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=static -target-abi n32 %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=N32 -check-prefixes=CHECK,STATIC-N32 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=pic -target-abi n32 %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=N32 -check-prefixes=CHECK,PIC-N32 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=static -target-abi n32 -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=N32 -check-prefixes=CHECK,STATIC-N32 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=pic -target-abi n32 -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=N32 -check-prefixes=CHECK,PIC-N32 %s
; ### N64 ABI ###
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=static -target-abi n64 %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=64 -check-prefixes=CHECK,STATIC-N64 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=pic -target-abi n64 %s -o - | \
; RUN: FileCheck -DNAN=legacy -DABI=64 -check-prefixes=CHECK,PIC-N64 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=static -target-abi n64 -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=64 -check-prefixes=CHECK,STATIC-N64 %s
; RUN: llc -filetype=asm -mtriple mips64-unknown-linux -mcpu=mips64 \
; RUN: -relocation-model=pic -target-abi n64 -mattr=+nan2008 %s -o - | \
; RUN: FileCheck -DNAN=2008 -DABI=64 -check-prefixes=CHECK,PIC-N64 %s
; STATIC-O32: .abicalls
; STATIC-O32: .option pic0
; PIC-O32: .abicalls
; PIC-O32-NOT: .option pic0
; STATIC-N32: .abicalls
; STATIC-N32: .option pic0
; PIC-N32: .abicalls
; PIC-N32-NOT: .option pic0
; STATIC-N64-NOT: .abicalls
; STATIC-N64-NOT: .option pic0
; PIC-N64: .abicalls
; PIC-N64-NOT: .option pic0
; CHECK: .section .mdebug.abi[[ABI]]
; CHECK: .nan [[NAN]]
; CHECK: .text
; CHECK: .file