80 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| @ RUN: llvm-mc -triple=thumbv6m -show-encoding < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V6M %s
 | |
| @ RUN: llvm-mc -triple=thumbv7m -show-encoding < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V7M %s
 | |
| 
 | |
|   .syntax unified
 | |
| 
 | |
| @ Check that the assembler can handle the documented syntax from the ARM ARM.
 | |
| @ These tests test instruction encodings specific to v6m & v7m (FeatureMClass).
 | |
| 
 | |
| @------------------------------------------------------------------------------
 | |
| @ MRS
 | |
| @------------------------------------------------------------------------------
 | |
| 
 | |
|         mrs  r0, apsr
 | |
|         mrs  r0, iapsr
 | |
|         mrs  r0, eapsr
 | |
|         mrs  r0, xpsr
 | |
|         mrs  r0, ipsr
 | |
|         mrs  r0, epsr
 | |
|         mrs  r0, iepsr
 | |
|         mrs  r0, msp
 | |
|         mrs  r0, psp
 | |
|         mrs  r0, primask
 | |
|         mrs  r0, control
 | |
| 
 | |
| @ CHECK: mrs	r0, apsr                @ encoding: [0xef,0xf3,0x00,0x80]
 | |
| @ CHECK: mrs	r0, iapsr               @ encoding: [0xef,0xf3,0x01,0x80]
 | |
| @ CHECK: mrs	r0, eapsr               @ encoding: [0xef,0xf3,0x02,0x80]
 | |
| @ CHECK: mrs	r0, xpsr                @ encoding: [0xef,0xf3,0x03,0x80]
 | |
| @ CHECK: mrs	r0, ipsr                @ encoding: [0xef,0xf3,0x05,0x80]
 | |
| @ CHECK: mrs	r0, epsr                @ encoding: [0xef,0xf3,0x06,0x80]
 | |
| @ CHECK: mrs	r0, iepsr               @ encoding: [0xef,0xf3,0x07,0x80]
 | |
| @ CHECK: mrs	r0, msp                 @ encoding: [0xef,0xf3,0x08,0x80]
 | |
| @ CHECK: mrs	r0, psp                 @ encoding: [0xef,0xf3,0x09,0x80]
 | |
| @ CHECK: mrs	r0, primask             @ encoding: [0xef,0xf3,0x10,0x80]
 | |
| @ CHECK: mrs	r0, control             @ encoding: [0xef,0xf3,0x14,0x80]
 | |
| 
 | |
| @------------------------------------------------------------------------------
 | |
| @ MSR
 | |
| @------------------------------------------------------------------------------
 | |
| 
 | |
|         msr  apsr, r0
 | |
|         msr  apsr_nzcvq, r0
 | |
|         msr  iapsr, r0
 | |
|         msr  iapsr_nzcvq, r0
 | |
|         msr  eapsr, r0
 | |
|         msr  eapsr_nzcvq, r0
 | |
|         msr  xpsr, r0
 | |
|         msr  xpsr_nzcvq, r0
 | |
|         msr  ipsr, r0
 | |
|         msr  epsr, r0
 | |
|         msr  iepsr, r0
 | |
|         msr  msp, r0
 | |
|         msr  psp, r0
 | |
|         msr  primask, r0
 | |
|         msr  control, r0
 | |
| 
 | |
| @ CHECK-V6M: msr	apsr, r0                @ encoding: [0x80,0xf3,0x00,0x88]
 | |
| @ CHECK-V6M: msr	apsr, r0                @ encoding: [0x80,0xf3,0x00,0x88]
 | |
| @ CHECK-V6M: msr	iapsr, r0               @ encoding: [0x80,0xf3,0x01,0x88]
 | |
| @ CHECK-V6M: msr	iapsr, r0               @ encoding: [0x80,0xf3,0x01,0x88]
 | |
| @ CHECK-V6M: msr	eapsr, r0               @ encoding: [0x80,0xf3,0x02,0x88]
 | |
| @ CHECK-V6M: msr	eapsr, r0               @ encoding: [0x80,0xf3,0x02,0x88]
 | |
| @ CHECK-V6M: msr	xpsr, r0                @ encoding: [0x80,0xf3,0x03,0x88]
 | |
| @ CHECK-V6M: msr	xpsr, r0                @ encoding: [0x80,0xf3,0x03,0x88]
 | |
| @ CHECK-V7M: msr	apsr_nzcvq, r0          @ encoding: [0x80,0xf3,0x00,0x88]
 | |
| @ CHECK-V7M: msr	apsr_nzcvq, r0          @ encoding: [0x80,0xf3,0x00,0x88]
 | |
| @ CHECK-V7M: msr	iapsr_nzcvq, r0         @ encoding: [0x80,0xf3,0x01,0x88]
 | |
| @ CHECK-V7M: msr	iapsr_nzcvq, r0         @ encoding: [0x80,0xf3,0x01,0x88]
 | |
| @ CHECK-V7M: msr	eapsr_nzcvq, r0         @ encoding: [0x80,0xf3,0x02,0x88]
 | |
| @ CHECK-V7M: msr	eapsr_nzcvq, r0         @ encoding: [0x80,0xf3,0x02,0x88]
 | |
| @ CHECK-V7M: msr	xpsr_nzcvq, r0          @ encoding: [0x80,0xf3,0x03,0x88]
 | |
| @ CHECK-V7M: msr	xpsr_nzcvq, r0          @ encoding: [0x80,0xf3,0x03,0x88]
 | |
| @ CHECK: msr	ipsr, r0                @ encoding: [0x80,0xf3,0x05,0x88]
 | |
| @ CHECK: msr	epsr, r0                @ encoding: [0x80,0xf3,0x06,0x88]
 | |
| @ CHECK: msr	iepsr, r0               @ encoding: [0x80,0xf3,0x07,0x88]
 | |
| @ CHECK: msr	msp, r0                 @ encoding: [0x80,0xf3,0x08,0x88]
 | |
| @ CHECK: msr	psp, r0                 @ encoding: [0x80,0xf3,0x09,0x88]
 | |
| @ CHECK: msr	primask, r0             @ encoding: [0x80,0xf3,0x10,0x88]
 | |
| @ CHECK: msr	control, r0             @ encoding: [0x80,0xf3,0x14,0x88]
 |