Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc -triple=thumbv7m-apple-darwin -show-encoding < %s | FileCheck %s
      2   .syntax unified
      3   .globl _func
      4 
      5 @ Check that the assembler can handle the documented syntax from the ARM ARM.
      6 @ These tests test instruction encodings specific to v7m & v7m (FeatureMClass).
      7 
      8 @------------------------------------------------------------------------------
      9 @ MRS
     10 @------------------------------------------------------------------------------
     11 
     12         mrs  r0, apsr
     13         mrs  r0, iapsr
     14         mrs  r0, eapsr
     15         mrs  r0, xpsr
     16         mrs  r0, ipsr
     17         mrs  r0, epsr
     18         mrs  r0, iepsr
     19         mrs  r0, msp
     20         mrs  r0, psp
     21         mrs  r0, primask
     22         mrs  r0, basepri
     23         mrs  r0, basepri_max
     24         mrs  r0, faultmask
     25         mrs  r0, control
     26 
     27 @ CHECK: mrs	r0, apsr                @ encoding: [0xef,0xf3,0x00,0x80]
     28 @ CHECK: mrs	r0, iapsr               @ encoding: [0xef,0xf3,0x01,0x80]
     29 @ CHECK: mrs	r0, eapsr               @ encoding: [0xef,0xf3,0x02,0x80]
     30 @ CHECK: mrs	r0, xpsr                @ encoding: [0xef,0xf3,0x03,0x80]
     31 @ CHECK: mrs	r0, ipsr                @ encoding: [0xef,0xf3,0x05,0x80]
     32 @ CHECK: mrs	r0, epsr                @ encoding: [0xef,0xf3,0x06,0x80]
     33 @ CHECK: mrs	r0, iepsr               @ encoding: [0xef,0xf3,0x07,0x80]
     34 @ CHECK: mrs	r0, msp                 @ encoding: [0xef,0xf3,0x08,0x80]
     35 @ CHECK: mrs	r0, psp                 @ encoding: [0xef,0xf3,0x09,0x80]
     36 @ CHECK: mrs	r0, primask             @ encoding: [0xef,0xf3,0x10,0x80]
     37 @ CHECK: mrs	r0, basepri             @ encoding: [0xef,0xf3,0x11,0x80]
     38 @ CHECK: mrs	r0, basepri_max         @ encoding: [0xef,0xf3,0x12,0x80]
     39 @ CHECK: mrs	r0, faultmask           @ encoding: [0xef,0xf3,0x13,0x80]
     40 @ CHECK: mrs	r0, control             @ encoding: [0xef,0xf3,0x14,0x80]
     41 
     42 @------------------------------------------------------------------------------
     43 @ MSR
     44 @------------------------------------------------------------------------------
     45 
     46         msr  apsr, r0
     47         msr  iapsr, r0
     48         msr  eapsr, r0
     49         msr  xpsr, r0
     50         msr  ipsr, r0
     51         msr  epsr, r0
     52         msr  iepsr, r0
     53         msr  msp, r0
     54         msr  psp, r0
     55         msr  primask, r0
     56         msr  basepri, r0
     57         msr  basepri_max, r0
     58         msr  faultmask, r0
     59         msr  control, r0
     60 
     61 @ CHECK: msr	apsr, r0                @ encoding: [0x80,0xf3,0x00,0x80]
     62 @ CHECK: msr	iapsr, r0               @ encoding: [0x80,0xf3,0x01,0x80]
     63 @ CHECK: msr	eapsr, r0               @ encoding: [0x80,0xf3,0x02,0x80]
     64 @ CHECK: msr	xpsr, r0                @ encoding: [0x80,0xf3,0x03,0x80]
     65 @ CHECK: msr	ipsr, r0                @ encoding: [0x80,0xf3,0x05,0x80]
     66 @ CHECK: msr	epsr, r0                @ encoding: [0x80,0xf3,0x06,0x80]
     67 @ CHECK: msr	iepsr, r0               @ encoding: [0x80,0xf3,0x07,0x80]
     68 @ CHECK: msr	msp, r0                 @ encoding: [0x80,0xf3,0x08,0x80]
     69 @ CHECK: msr	psp, r0                 @ encoding: [0x80,0xf3,0x09,0x80]
     70 @ CHECK: msr	primask, r0             @ encoding: [0x80,0xf3,0x10,0x80]
     71 @ CHECK: msr	basepri, r0             @ encoding: [0x80,0xf3,0x11,0x80]
     72 @ CHECK: msr	basepri_max, r0         @ encoding: [0x80,0xf3,0x12,0x80]
     73 @ CHECK: msr	faultmask, r0           @ encoding: [0x80,0xf3,0x13,0x80]
     74 @ CHECK: msr	control, r0             @ encoding: [0x80,0xf3,0x14,0x80]
     75