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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [arm/] [sp-pc-usage-t.s] - Diff between revs 816 and 818

Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 818
.arch armv7-r
.arch armv7-r
.syntax unified
.syntax unified
.text
.text
.thumb
.thumb
        .global foo
        .global foo
foo:
foo:
@ Section A6.1.3 "Use of 0b1101 as a register specifier".
@ Section A6.1.3 "Use of 0b1101 as a register specifier".
 
 
@ R13 as the source or destination register of a mov instruction.
@ R13 as the source or destination register of a mov instruction.
@ only register to register transfers without shifts are supported,
@ only register to register transfers without shifts are supported,
@ with no flag setting
@ with no flag setting
 
 
mov     sp,r0
mov     sp,r0
mov     r0,sp
mov     r0,sp
 
 
@ Using the following instructions to adjust r13 up or down by a
@ Using the following instructions to adjust r13 up or down by a
@ multiple of 4:
@ multiple of 4:
 
 
add     sp,sp,#0
add     sp,sp,#0
addw    sp,sp,#0
addw    sp,sp,#0
sub     sp,sp,#0
sub     sp,sp,#0
subw    sp,sp,#0
subw    sp,sp,#0
add     sp,sp,r0
add     sp,sp,r0
add     sp,sp,r0,lsl #1
add     sp,sp,r0,lsl #1
sub     sp,sp,r0
sub     sp,sp,r0
sub     sp,sp,r0,lsl #1
sub     sp,sp,r0,lsl #1
 
 
@ R13 as a base register <Rn> of any load/store instruction.
@ R13 as a base register <Rn> of any load/store instruction.
 
 
ldr     r0, [sp]
ldr     r0, [sp]
ldr     r0, [pc]
ldr     r0, [pc]
ldr     pc, [r0]
ldr     pc, [r0]
ldr     sp, [r0]
ldr     sp, [r0]
ldr     pc, [pc]
ldr     pc, [pc]
ldr     sp, [sp]
ldr     sp, [sp]
ldr     pc, [sp]
ldr     pc, [sp]
ldr     sp, [pc]
ldr     sp, [pc]
ldr     sp, [r0, +pc]
ldr     sp, [r0, +pc]
 
 
str     r0, [sp]
str     r0, [sp]
str     r0, [pc]
str     r0, [pc]
str     pc, [r0]
str     pc, [r0]
str     sp, [r0]
str     sp, [r0]
str     pc, [pc]
str     pc, [pc]
str     sp, [sp]
str     sp, [sp]
str     pc, [sp]
str     pc, [sp]
str     sp, [pc]
str     sp, [pc]
str     sp, [r0, +pc]
str     sp, [r0, +pc]
 
 
@ R13 as the first operand <Rn> in any add{s}, cmn, cmp, or sub{s} instruction.
@ R13 as the first operand <Rn> in any add{s}, cmn, cmp, or sub{s} instruction.
 
 
add     r0, sp, r0
add     r0, sp, r0
adds    r0, sp, r0
adds    r0, sp, r0
add     r0, sp, r0, lsl #1
add     r0, sp, r0, lsl #1
adds    r0, sp, r0, lsl #1
adds    r0, sp, r0, lsl #1
 
 
cmn     sp, #0
cmn     sp, #0
cmn     sp, r0
cmn     sp, r0
cmn     sp, r0, lsl #1
cmn     sp, r0, lsl #1
cmp     sp, #0
cmp     sp, #0
cmp     sp, r0
cmp     sp, r0
cmp     sp, r0, lsl #1
cmp     sp, r0, lsl #1
 
 
sub     sp, #0
sub     sp, #0
subs    sp, #0
subs    sp, #0
sub     r0, sp, #0
sub     r0, sp, #0
subs    r0, sp, #0
subs    r0, sp, #0
 
 
@ ADD (sp plus immediate).
@ ADD (sp plus immediate).
 
 
add     sp, #4
add     sp, #4
add     r0, sp, #4
add     r0, sp, #4
adds    sp, #4
adds    sp, #4
adds    r0, sp, #4
adds    r0, sp, #4
addw    r0, sp, #4
addw    r0, sp, #4
 
 
add     sp, sp, #4
add     sp, sp, #4
adds    sp, sp, #4
adds    sp, sp, #4
addw    sp, sp, #4
addw    sp, sp, #4
 
 
@ ADD (sp plus register).
@ ADD (sp plus register).
 
 
add     sp, r0
add     sp, r0
add     r0, sp, r0
add     r0, sp, r0
add     r0, sp, r0, lsl #1
add     r0, sp, r0, lsl #1
adds    sp, r0
adds    sp, r0
adds    r0, sp, r0
adds    r0, sp, r0
adds    r0, sp, r0, lsl #1
adds    r0, sp, r0, lsl #1
 
 
add     sp, sp, r0
add     sp, sp, r0
add     sp, sp, r0, lsl #1
add     sp, sp, r0, lsl #1
adds    sp, sp, r0
adds    sp, sp, r0
adds    sp, sp, r0, lsl #1
adds    sp, sp, r0, lsl #1
 
 
add     sp, sp, sp
add     sp, sp, sp
 
 
@ SUB (sp minus immediate).
@ SUB (sp minus immediate).
 
 
sub     r0, sp , #0
sub     r0, sp , #0
subs    r0, sp , #0
subs    r0, sp , #0
subw    r0, sp , #0
subw    r0, sp , #0
 
 
sub     sp, sp , #0
sub     sp, sp , #0
subs    sp, sp , #0
subs    sp, sp , #0
subw    sp, sp , #0
subw    sp, sp , #0
 
 
@ SUB (sp minus register).
@ SUB (sp minus register).
 
 
sub     sp, #0
sub     sp, #0
subs    sp, #0
subs    sp, #0
sub     r0, sp, r0, lsl #1
sub     r0, sp, r0, lsl #1
subs    r0, sp, r0, lsl #1
subs    r0, sp, r0, lsl #1
 
 
sub     sp, sp, r0, lsl #1
sub     sp, sp, r0, lsl #1
subs    sp, sp, r0, lsl #1
subs    sp, sp, r0, lsl #1
 
 
@ PC-related insns (equivalent to adr).
@ PC-related insns (equivalent to adr).
 
 
add     r0, pc, #4
add     r0, pc, #4
sub     r0, pc, #4
sub     r0, pc, #4
adds    r0, pc, #4
adds    r0, pc, #4
subs    r0, pc, #4
subs    r0, pc, #4
addw    r0, pc, #4
addw    r0, pc, #4
subw    r0, pc, #4
subw    r0, pc, #4
 
 
@ nops to pad the section out to an alignment boundary.
@ nops to pad the section out to an alignment boundary.
 
 
nop
nop
nop
nop
nop
nop
 
 

powered by: WebSVN 2.1.0

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