mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[Fuchsia] Remove aarch64-fuchsia target-specific -mcmodel=kernel
Under --target=aarch64-fuchsia, -mcmodel=kernel has the effect of (the default) -mcmodel=small plus -mtp=el1 (which did not exist when this behavior was added). Fuchsia's kernel now uses -mtp=el1 directly instead of -mcmodel=kernel, so remove this special support. Patch By: mcgrathr Differential Revision: https://reviews.llvm.org/D73409
This commit is contained in:
parent
8375d9be76
commit
418299d811
@ -615,10 +615,7 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB,
|
||||
Register DstReg = MI.getOperand(0).getReg();
|
||||
auto SysReg = AArch64SysReg::TPIDR_EL0;
|
||||
MachineFunction *MF = MBB.getParent();
|
||||
if (MF->getTarget().getTargetTriple().isOSFuchsia() &&
|
||||
MF->getTarget().getCodeModel() == CodeModel::Kernel)
|
||||
SysReg = AArch64SysReg::TPIDR_EL1;
|
||||
else if (MF->getSubtarget<AArch64Subtarget>().useEL3ForTP())
|
||||
if (MF->getSubtarget<AArch64Subtarget>().useEL3ForTP())
|
||||
SysReg = AArch64SysReg::TPIDR_EL3;
|
||||
else if (MF->getSubtarget<AArch64Subtarget>().useEL2ForTP())
|
||||
SysReg = AArch64SysReg::TPIDR_EL2;
|
||||
|
@ -236,12 +236,8 @@ getEffectiveAArch64CodeModel(const Triple &TT, Optional<CodeModel::Model> CM,
|
||||
if (CM) {
|
||||
if (*CM != CodeModel::Small && *CM != CodeModel::Tiny &&
|
||||
*CM != CodeModel::Large) {
|
||||
if (!TT.isOSFuchsia())
|
||||
report_fatal_error(
|
||||
"Only small, tiny and large code models are allowed on AArch64");
|
||||
else if (*CM != CodeModel::Kernel)
|
||||
report_fatal_error("Only small, tiny, kernel, and large code models "
|
||||
"are allowed on AArch64");
|
||||
report_fatal_error(
|
||||
"Only small, tiny and large code models are allowed on AArch64");
|
||||
} else if (*CM == CodeModel::Tiny && !TT.isOSBinFormatELF())
|
||||
report_fatal_error("tiny code model is only supported on ELF");
|
||||
return *CM;
|
||||
|
@ -1,6 +1,5 @@
|
||||
; RUN: llc < %s -mtriple=aarch64-linux-gnu | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=aarch64-fuchsia | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=aarch64-fuchsia -code-model=kernel | FileCheck --check-prefix=FUCHSIA-KERNEL %s
|
||||
; RUN: llc < %s -mtriple=aarch64-linux-gnu -mattr=+tpidr-el1 | FileCheck --check-prefix=USEEL1 %s
|
||||
; RUN: llc < %s -mtriple=aarch64-linux-gnu -mattr=+tpidr-el2 | FileCheck --check-prefix=USEEL2 %s
|
||||
; RUN: llc < %s -mtriple=aarch64-linux-gnu -mattr=+tpidr-el3 | FileCheck --check-prefix=USEEL3 %s
|
||||
@ -11,8 +10,6 @@ declare i8* @llvm.thread.pointer() #1
|
||||
define i8* @thread_pointer() {
|
||||
; CHECK: thread_pointer:
|
||||
; CHECK: mrs {{x[0-9]+}}, TPIDR_EL0
|
||||
; FUCHSIA-KERNEL: thread_pointer:
|
||||
; FUCHSIA-KERNEL: mrs {{x[0-9]+}}, TPIDR_EL1
|
||||
; USEEL1: thread_pointer:
|
||||
; USEEL1: mrs {{x[0-9]+}}, TPIDR_EL1
|
||||
; USEEL2: thread_pointer:
|
||||
|
@ -2,10 +2,10 @@
|
||||
; RUN: llc -mtriple=arm64-linux-gnu -o - %s -O0 -fast-isel -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST
|
||||
; RUN: llc -mtriple=arm64-linux-gnu -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-PIC
|
||||
; RUN: llc -mtriple=arm64-linux-gnu -O0 -fast-isel -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST-PIC
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -code-model=kernel -o - %s -mcpu=cyclone | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -code-model=kernel -o - %s -O0 -fast-isel -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -code-model=kernel -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-PIC
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -code-model=kernel -O0 -fast-isel -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST-PIC
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -o - %s -mcpu=cyclone | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -o - %s -O0 -fast-isel -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-PIC
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -O0 -fast-isel -relocation-model=pic -o - %s -mcpu=cyclone | FileCheck %s --check-prefix=CHECK-FAST-PIC
|
||||
|
||||
@var8 = external global i8, align 1
|
||||
@var16 = external global i16, align 2
|
||||
|
@ -1,7 +1,7 @@
|
||||
; Test target-specific stack cookie location.
|
||||
; RUN: llc -mtriple=aarch64-linux-android < %s -o - | FileCheck --check-prefix=ANDROID-AARCH64 %s
|
||||
; RUN: llc -mtriple=aarch64-fuchsia < %s -o - | FileCheck --check-prefixes=FUCHSIA-AARCH64-COMMON,FUCHSIA-AARCH64-USER %s
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -code-model=kernel < %s -o - | FileCheck --check-prefixes=FUCHSIA-AARCH64-COMMON,FUCHSIA-AARCH64-KERNEL %s
|
||||
; RUN: llc -mtriple=aarch64-fuchsia -mattr=+tpidr-el1 < %s -o - | FileCheck --check-prefixes=FUCHSIA-AARCH64-COMMON,FUCHSIA-AARCH64-KERNEL %s
|
||||
; RUN: llc -mtriple=aarch64-windows < %s -o - | FileCheck --check-prefix=WINDOWS-AARCH64 %s
|
||||
|
||||
define void @_Z1fv() sspreq {
|
||||
|
Loading…
x
Reference in New Issue
Block a user