forked from OSchip/llvm-project
[MSP430] Fix crash while lowering llvm.stacksave/stackrestore
Perform the usual expansion of stacksave / restore intrinsics. Patch by Kristina Bessonova! Differential Revision: https://reviews.llvm.org/D54890 llvm-svn: 350710
This commit is contained in:
parent
7d497ea2d9
commit
9222ed4485
|
@ -95,6 +95,8 @@ MSP430TargetLowering::MSP430TargetLowering(const TargetMachine &TM,
|
|||
setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Custom);
|
||||
setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
|
||||
setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
|
||||
setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
|
||||
setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
|
||||
|
||||
setOperationAction(ISD::CTTZ, MVT::i8, Expand);
|
||||
setOperationAction(ISD::CTTZ, MVT::i16, Expand);
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
; RUN: llc < %s -march=msp430
|
||||
|
||||
target triple = "msp430"
|
||||
|
||||
define void @foo() {
|
||||
entry:
|
||||
%0 = tail call i8* @llvm.stacksave()
|
||||
tail call void @llvm.stackrestore(i8* %0)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i8* @llvm.stacksave()
|
||||
declare void @llvm.stackrestore(i8*)
|
Loading…
Reference in New Issue