60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| # RUN: llvm-mc -triple thumbv7 -mattr=virtualization -show-encoding %s | FileCheck %s --check-prefix=CHECK-THUMB
 | |
| 
 | |
|     hvc    #1
 | |
|     hvc    #7
 | |
|     hvc    #257
 | |
|     hvc    #65535
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
 | |
| # CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
 | |
| 
 | |
|     hvc.w    #1
 | |
|     hvc.w    #7
 | |
|     hvc.w    #257
 | |
|     hvc.w    #65535
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
 | |
| # CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
 | |
| # CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
 | |
| 
 | |
|     eret
 | |
|     it eq; ereteq
 | |
|     it ne; eretne
 | |
|     it hs; ereths
 | |
|     it lo; eretlo
 | |
|     it mi; eretmi
 | |
|     it pl; eretpl
 | |
|     it vs; eretvs
 | |
|     it vc; eretvc
 | |
|     it hi; erethi
 | |
|     it ls; eretls
 | |
|     it ge; eretge
 | |
|     it lt; eretlt
 | |
|     it gt; eretgt
 | |
|     it le; eretle
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 | |
| 
 | |
| # SUBS PC, LR, #0 should have the same encoding as ERET.
 | |
| # The conditional forms can't be tested becuse the ARM assembler parser doesn't
 | |
| # accept SUBS<cond> PC, LR, #<imm>, only the unconditonal form is allowed. This
 | |
| # is due to the way that the custom parser handles optional operands; see the
 | |
| # FIXME in ARM/AsmParser/ARMAsmParser.cpp.
 | |
| 
 | |
|     subs pc, lr, #0
 | |
| # CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
 |