mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
80fb90f30d
Updates the MSP430 target to generate EABI-compatible libcall names. As a byproduct, adjusts the hardware multiplier options available in the MSP430 target, adds support for promotion of the ISD::MUL operation for 8-bit integers, and correctly marks R11 as used by call instructions. Patch by Andrew Wygle. Differential Revision: https://reviews.llvm.org/D32676 llvm-svn: 302820
23 lines
598 B
LLVM
23 lines
598 B
LLVM
; RUN: llc < %s | FileCheck %s
|
|
|
|
target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"
|
|
target triple = "msp430-elf"
|
|
|
|
@g_29 = common global i8 0, align 1 ; <i8*> [#uses=0]
|
|
|
|
define signext i8 @foo(i8 signext %_si1, i8 signext %_si2) nounwind readnone {
|
|
entry:
|
|
; CHECK-LABEL: foo:
|
|
; CHECK: call #__mspabi_mpyi
|
|
%mul = mul i8 %_si2, %_si1 ; <i8> [#uses=1]
|
|
ret i8 %mul
|
|
}
|
|
|
|
define void @uint81(i16* nocapture %p_32) nounwind {
|
|
entry:
|
|
%call = tail call i16 @bar(i8* bitcast (i8 (i8, i8)* @foo to i8*)) nounwind ; <i16> [#uses=0]
|
|
ret void
|
|
}
|
|
|
|
declare i16 @bar(i8*)
|