mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
71d4f2d741
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
76 lines
2.9 KiB
LLVM
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
|