103 lines
1.7 KiB
ArmAsm
103 lines
1.7 KiB
ArmAsm
|
@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
|
||
|
@ RUN: | FileCheck %s
|
||
|
|
||
|
.syntax unified
|
||
|
.thumb
|
||
|
|
||
|
.global false_start
|
||
|
.type false_start,%function
|
||
|
.thumb_func
|
||
|
false_start:
|
||
|
.movsp r7
|
||
|
|
||
|
@ CHECK: error: .fnstart must precede .movsp directive
|
||
|
@ CHECK: .movsp r7
|
||
|
@ CHECK: ^
|
||
|
|
||
|
.global beyond_saving
|
||
|
.type beyond_saving,%function
|
||
|
.thumb_func
|
||
|
beyond_saving:
|
||
|
.fnstart
|
||
|
.setfp r11, sp, #8
|
||
|
add r11, sp, #8
|
||
|
.movsp r7
|
||
|
mov r7, r11
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: unexpected .movsp directive
|
||
|
@ CHECK: .movsp r7
|
||
|
@ CHECK: ^
|
||
|
|
||
|
|
||
|
.global sp_invalid
|
||
|
.type sp_invalid,%function
|
||
|
.thumb_func
|
||
|
sp_invalid:
|
||
|
.fnstart
|
||
|
.movsp r13
|
||
|
mov sp, sp
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: sp and pc are not permitted in .movsp directive
|
||
|
@ CHECK: .movsp r13
|
||
|
@ CHECK: ^
|
||
|
|
||
|
|
||
|
.global pc_invalid
|
||
|
.type pc_invalid,%function
|
||
|
.thumb_func
|
||
|
pc_invalid:
|
||
|
.fnstart
|
||
|
.movsp r15
|
||
|
mov sp, pc
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: sp and pc are not permitted in .movsp directive
|
||
|
@ CHECK: .movsp r15
|
||
|
@ CHECK: ^
|
||
|
|
||
|
|
||
|
.global constant_required
|
||
|
.type constant_required,%function
|
||
|
.thumb_func
|
||
|
constant_required:
|
||
|
.fnstart
|
||
|
.movsp r11,
|
||
|
mov sp, r11
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: expected #constant
|
||
|
@ CHECK: .movsp r11,
|
||
|
@ CHECK: ^
|
||
|
|
||
|
|
||
|
.global constant_constant
|
||
|
.type constant_constant,%function
|
||
|
.thumb_func
|
||
|
constant_constant:
|
||
|
.fnstart
|
||
|
.movsp r11, #constant
|
||
|
mov sp, r11
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: offset must be an immediate constant
|
||
|
@ CHECK: .movsp r11, #constant
|
||
|
@ CHECK: ^
|
||
|
|
||
|
|
||
|
.arm
|
||
|
|
||
|
.global register_required
|
||
|
.type register_required,%function
|
||
|
register_required:
|
||
|
.fnstart
|
||
|
.movsp #42
|
||
|
mov sp, #42
|
||
|
.fnend
|
||
|
|
||
|
@ CHECK: error: register expected
|
||
|
@ CHECK: .movsp #42
|
||
|
@ CHECK: ^
|
||
|
|