| ; 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: |