diff options
Diffstat (limited to 'sim/testsuite/sim/arm/hello.ms')
-rw-r--r-- | sim/testsuite/sim/arm/hello.ms | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/sim/testsuite/sim/arm/hello.ms b/sim/testsuite/sim/arm/hello.ms deleted file mode 100644 index b063c296d25..00000000000 --- a/sim/testsuite/sim/arm/hello.ms +++ /dev/null @@ -1,91 +0,0 @@ -# output(): Hello, world.\n -# mach(): all - -# Emit hello world while switching back and forth between arm/thumb. -# ??? Unfinished - - .macro invalid -# This is "undefined" but it's not properly decoded yet. - .word 0x07ffffff -# This is stc which isn't recognized yet. - stc 0,cr0,[r0] - .endm - - .global _start -_start: -# Run some simple insns to confirm the engine is at least working. - nop - -# Skip over output text. - - bl skip_output - -hello_text: - .asciz "Hello, world.\n" - - .p2align 2 -skip_output: - -# Prime loop. - - mov r4, r14 - -output_next: - -# Switch arm->thumb to output next chacter. -# At this point r4 must point to the next character to output. - - adr r0, into_thumb + 1 - bx r0 - -into_thumb: - .thumb - -# Output a character. - - mov r0,#3 @ writec angel call - mov r1,r4 - swi 0xab @ ??? Confirm number. - -# Switch thumb->arm. - - adr r5, back_to_arm - bx r5 - - .p2align 2 -back_to_arm: - .arm - -# Load next character, see if done. - - add r4,r4,#1 - sub r3,r3,r3 - ldrb r5,[r4,r3] - teq r5,#0 - beq done - -# Output a character (in arm mode). - - mov r0,#3 - mov r1,r4 - swi #0x123456 - -# Load next character, see if done. - - add r4,r4,#1 - sub r3,r3,r3 - ldrb r5,[r4,r3] - teq r5,#0 - bne output_next - -done: - mov r0,#0x18 - ldr r1,exit_code - swi #0x123456 - -# If that fails, try to die with an invalid insn. - - invalid - -exit_code: - .word 0x20026 |