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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [testsuite/] [gas/] [cris/] [pushpop.s] - Rev 816

Compare with Previous | Blame | View Log

; Check the push and pop builtin "macros".
 .text
 .syntax no_register_prefix
start:
 push r1
 push r0
 push r4
 ; Check that there is no recognition of invalid offsets.
 move.b r5,[sp=sp-8]
 move.w r5,[sp=sp-8]
 move.d r5,[sp=sp-8]
 
 move.b r5,[sp=sp-5]
 move.w r5,[sp=sp-5]
 move.d r5,[sp=sp-5]
 
 move.w r5,[sp=sp-4]
 move.b r3,[sp=sp-4]
 
 move.d r5,[sp=sp-3]
 move.w r11,[sp=sp-3]
 move.b r5,[sp=sp-3]
 
 move.d r5,[sp=sp-2]
 move.b r5,[sp=sp-2]
 
 move.d r5,[sp=sp-1]
 move.w r5,[sp=sp-1]
 
 move.d r5,[sp=sp+0]
 move.b r5,[sp=sp+0]
 move.w r5,[sp=sp+0]
 
 move.d r5,[sp=sp+1]
 move.w r5,[sp=sp+1]
 move.b r5,[sp=sp+1]
 
 move.d r5,[sp=sp+2]
 move.w r5,[sp=sp+2]
 move.b r5,[sp=sp+2]
 
 move.d r5,[sp=sp+3]
 move.w r5,[sp=sp+3]
 move.b r5,[sp=sp+3]
 
 move.d r5,[sp=sp+4]
 move.w r5,[sp=sp+4]
 move.b r5,[sp=sp+4]
 
 move.d r5,[sp=sp+5]
 move.w r5,[sp=sp+5]
 move.b r5,[sp=sp+5]
 
 move.d r1,[sp=sp+8]
 move.w r9,[sp=sp+8]
 move.b r13,[sp=sp+8]
 
;
; All these will have postincrement on the "real" instruction
; (e.g. "move.d [sp+],r6") which is the actual insn recognized as
; pop; it is *not* e.g. "move.d [sp=sp+4],r6".
;  Here we make sure that neither the combination nor the second
; is interpreted as a pop.
;
 move.b [sp=sp+8],r5
 move.w [sp=sp+8],r5
 move.d [sp=sp+8],r5
 
 move.b [sp=sp+5],r5
 move.w [sp=sp+5],r5
 move.d [sp=sp+5],r5
 
 move.d [sp=sp+4],r5
 move.w [sp=sp+4],r5
 move.b [sp=sp+4],r3
 
 move.d [sp=sp+3],r5
 move.w [sp=sp+3],r11
 move.b [sp=sp+3],r5
 
 move.d [sp=sp+2],r5
 move.w [sp=sp+2],r5
 move.b [sp=sp+2],r5
 
 move.d [sp=sp+1],r5
 move.w [sp=sp+1],r5
 move.b [sp=sp+1],r5
 
 move.d [sp=sp-0],r5
 move.w [sp=sp-0],r5
 move.b [sp=sp-0],r5
 
 move.d [sp=sp-1],r5
 move.w [sp=sp-1],r5
 move.b [sp=sp-1],r5
 
 move.d [sp=sp-2],r5
 move.w [sp=sp-2],r5
 move.b [sp=sp-2],r5
 
 move.d [sp=sp-3],r5
 move.w [sp=sp-3],r5
 move.b [sp=sp-3],r5
 
 move.d [sp=sp-4],r5
 move.w [sp=sp-4],r5
 move.b [sp=sp-4],r5
 
 move.d [sp=sp-5],r5
 move.w [sp=sp-5],r5
 move.b [sp=sp-5],r5
 
 move.d [sp=sp-8],r5
 move.w [sp=sp-8],r5
 move.b [sp=sp-8],r5
 
 push r0
 pop r2
 pop r3
 push r13
end:
 

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.