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