forked from OSchip/llvm-project
[PowerPC]: e500 target can't use lwsync, use msync instead
The e500 core has a silicon bug that triggers an illegal instruction program trap on any sync other than msync. Other cores will typically ignore illegal sync types, and the documentation even implies that the 'illegal' bits are ignored. Address this hardware deficiency by only using msync, like the PPC440. Differential Revision: https://reviews.llvm.org/D76614
This commit is contained in:
parent
502915c619
commit
f0990e104b
|
@ -463,7 +463,7 @@ def : ProcessorModel<"g5", G5Model,
|
|||
def : ProcessorModel<"e500", PPCE500Model,
|
||||
[DirectiveE500,
|
||||
FeatureICBT, FeatureBookE,
|
||||
FeatureISEL, FeatureMFTB, FeatureSPE]>;
|
||||
FeatureISEL, FeatureMFTB, FeatureMSYNC, FeatureSPE]>;
|
||||
def : ProcessorModel<"e500mc", PPCE500mcModel,
|
||||
[DirectiveE500mc,
|
||||
FeatureSTFIWX, FeatureICBT, FeatureBookE,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -verify-machineinstrs | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=440 | FileCheck %s --check-prefix=PPC440
|
||||
; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=e500 | FileCheck %s --check-prefix=PPC440
|
||||
|
||||
; Fences
|
||||
define void @fence_acquire() {
|
||||
|
|
Loading…
Reference in New Issue