* elf64-ppc.c (dec_dynrel_count): Don't error when elf_gc_sweep_symbol
[external/binutils.git] / sim / testsuite / sim / arm / hello.ms
1 # output(): Hello, world.\n
2 # mach(): all
3
4 # Emit hello world while switching back and forth between arm/thumb.
5 # ??? Unfinished
6
7         .macro invalid
8 # This is "undefined" but it's not properly decoded yet.
9         .word 0x07ffffff
10 # This is stc which isn't recognized yet.
11         stc 0,cr0,[r0]
12         .endm
13
14         .global _start
15 _start:
16 # Run some simple insns to confirm the engine is at least working.
17         nop
18
19 # Skip over output text.
20
21         bl skip_output
22
23 hello_text:
24         .asciz "Hello, world.\n"
25
26         .p2align 2
27 skip_output:
28
29 # Prime loop.
30
31         mov r4, r14
32
33 output_next:
34
35 # Switch arm->thumb to output next chacter.
36 # At this point r4 must point to the next character to output.
37
38         adr r0, into_thumb + 1
39         bx r0
40
41 into_thumb:
42         .thumb
43
44 # Output a character.
45
46         mov r0,#3 @ writec angel call
47         mov r1,r4
48         swi 0xab @ ??? Confirm number.
49
50 # Switch thumb->arm.
51
52         adr r5, back_to_arm
53         bx r5
54
55         .p2align 2
56 back_to_arm:
57         .arm
58
59 # Load next character, see if done.
60
61         add r4,r4,#1
62         sub r3,r3,r3
63         ldrb r5,[r4,r3]
64         teq r5,#0
65         beq done
66
67 # Output a character (in arm mode).
68
69         mov r0,#3
70         mov r1,r4
71         swi #0x123456
72
73 # Load next character, see if done.
74
75         add r4,r4,#1
76         sub r3,r3,r3
77         ldrb r5,[r4,r3]
78         teq r5,#0
79         bne output_next
80
81 done:
82         mov r0,#0x18
83         ldr r1,exit_code
84         swi #0x123456
85
86 # If that fails, try to die with an invalid insn.
87
88         invalid
89
90 exit_code:
91         .word 0x20026