OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [arm/] [arm-it-auto.s] - Rev 205

Compare with Previous | Blame | View Log

	.syntax unified
	.arch armv7
	.thumb
main:
 
@These branches are to see the labels in the generated file
	bl .L888
	bl .L111
	bl .L777
 
@No IT block here:
	bne .L4
 
@The following groups should be an IT block each.
@it ne
	addne.n   pc, r0
 
@it ne
	tbbne [r0, r1]
 
@it eq
	tbheq [r1, r0]
 
@The following group should be left as is:
	itet	eq
.L111:	moveq	r0, #2
	movne   r0, #3
	moveq   r0, #4
 
@Same, reverted condition:
	itet	ne
	movne	r0, #2
	moveq   r0, #3
	movne   r0, #4
 
 
@Two groups shall be generated, due to the label:
    movne   r0, #1
@ second group, the label should be at the IT insn
.L777:	moveq	r0, #2
	ldrne   pc, [r1]
 
@it ne
	blne .L4
 
@it lt
	bllt .L9
 
@itett ne
.L888:	movne   r0, #45
	moveq   r0, #5
	movne	r0, #6
	addne.n pc, r0
 
@iteet eq
	moveq   r0, #7
	movne	r0, #8
	movne   r0, #3
	moveq	r0, #4
 
@itete eq
	moveq   r0, #5
	movne	r0, #6
	moveq   r0, #7
	movne	r0, #8
 
@ite eq - this group finishes due to the mov.n pc, rn
	moveq   r0, #5
	movne	r0, #6
	mov.n   pc, r0
 
@itete eq
	moveq   r0, #7
	movne	r0, #8
	moveq   r0, #5
	movne	r0, #6
 
@this shall not generate an IT block
	add.n   pc, r0
 
@ite eq - testing condition change (eq -> gt)
	moveq   r0, #7
	movne	r0, #8
 
@ite gt (group shall finish due to another condition change)
	movgt	r0, #9
	movle	r0, #10
 
@it eq
	moveq	r0, #11
 
@it le
	movle	r0, #12
 
@it ne
	movne	r0, #13
 
	bl	f
.L4:
	pop	{r4, pc}
.L9:
	bl	f
 
@Only the movlt shall be enclosed in the IT block
movlt r0, #0
muls r0, r0, r1
 
@Same here:
movlt r0, #0
muls r0, r0, r1
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.