mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-13 19:24:21 +00:00
ff22ec3d70
with '-mframe-pointer' After D56351 and D64294, frame pointer handling is migrated to tri-state (all, non-leaf, none) in clang driver and on the function attribute. This patch makes the frame pointer handling cc1 option tri-state. Reviewers: chandlerc, rnk, t.p.northover, MaskRay Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D56353 llvm-svn: 366645
20 lines
571 B
C
20 lines
571 B
C
// REQUIRES: msp430-registered-target
|
|
// RUN: %clang_cc1 -mframe-pointer=all -triple msp430 -S %s -o - | FileCheck %s --check-prefix=FP_ENFORCED
|
|
// RUN: %clang_cc1 -triple msp430 -S %s -o - | FileCheck %s --check-prefix=FP_DEFAULT
|
|
|
|
// Check the frame pointer is not used on MSP430 by default, but can be forcibly turned on.
|
|
|
|
// FP_ENFORCED: push r4
|
|
// FP_ENFORCED: mov r4, r4
|
|
// FP_ENFORCED: pop r4
|
|
// FP_DEFAULT: .globl fp_elim_check
|
|
// FP_DEFAULT-NOT: push r4
|
|
// FP_DEFAULT: mov r4, r4
|
|
// FP_DEFAULT-NOT: pop r4
|
|
|
|
void fp_elim_check()
|
|
{
|
|
asm volatile ("mov r4, r4");
|
|
}
|
|
|