Commit | Line | Data |
---|---|---|
7be570e7 JM |
1 | ; assemble as "as -o reg reg.s" |
2 | ; or | |
3 | ; cc -g -o +DA2.0N | |
4 | ; | |
5 | ; PA-RISC 2.0 register contents test. | |
6 | ; | |
7 | .level 2.0 | |
8 | ||
9 | .code | |
10 | .export main,ENTRY | |
11 | .export mainend,CODE | |
12 | .export lab1,CODE | |
13 | .space $TEXT$ | |
14 | .subspa $CODE$ | |
15 | ||
16 | main | |
17 | .proc | |
18 | .callinfo NO_CALLS,FRAME=0 | |
19 | .entry | |
20 | ||
21 | ;; Test we have right register numbers | |
22 | ;; | |
23 | ADD %r0,%r0,%r1 ; 0 | |
24 | LDI 1,%r1 ; 1 | |
25 | ;; | |
26 | ;; Don't put anything into r2 or r3--they are special registers. | |
27 | ;; | |
28 | ADD %r1,%r1,%r4 ; 2 | |
29 | ADD %r4,%r4,%r5 ; 4 | |
30 | ADD %r5,%r5,%r6 ; 8 | |
31 | ADD %r6,%r6,%r7 ; 16 | |
32 | ADD %r7,%r7,%r8 ; 32 | |
33 | ADD %r8,%r8,%r9 ; 64 | |
34 | ADD %r9,%r9,%r10 ; 128 | |
35 | ADD %r10,%r10,%r11 ; 256 | |
36 | ADD %r11,%r11,%r12 ; 512 | |
37 | ADD %r12,%r12,%r13 ; 1024 | |
38 | ADD %r13,%r13,%r14 ; 2048 | |
39 | ADD %r14,%r14,%r15 ; 4096 | |
40 | ADD %r15,%r15,%r16 ; 9192 | |
41 | ||
42 | ;; Test high bits, to be sure we show them. | |
43 | ;; | |
44 | LDI 0xde,%r19 ; "de" | |
45 | DEPD,Z %r19,55,56,%r19 ; "de00" | |
46 | LDI 0xad,%r18 ; "ad" | |
47 | ADD %r18,%r19,%r19 ; "dead" | |
48 | DEPD,Z %r19,55,56,%r19 ; "dead00" | |
49 | LDI 0xbe,%r18 ; "be" | |
50 | ADD %r18,%r19,%r19 ; "deadbe" | |
51 | DEPD,Z %r19,55,56,%r19 ; "deadbe00" | |
52 | LDI 0xef,%r18 ; "ef" | |
53 | ADD %r18,%r19,%r19 ; "deadbeef" | |
54 | ; | |
55 | DEPD,Z %r19,55,56,%r19 ; "deadbeef00" | |
56 | LDI 0xba,%r18 ; "ba" | |
57 | ADD %r18,%r19,%r19 ; "deadbeefba" | |
58 | DEPD,Z %r19,55,56,%r19 ; "deadbeefba00" | |
59 | LDI 0xdc,%r18 ; "dc" | |
60 | ADD %r18,%r19,%r19 ; "deadbeefbadc" | |
61 | DEPD,Z %r19,55,56,%r19 ; "deadbeefbadc00" | |
62 | LDI 0xad,%r18 ; "ad" | |
63 | ADD %r18,%r19,%r19 ; "deadbeefbadcad" | |
64 | DEPD,Z %r19,55,56,%r19 ; "deadbeefbadcad00" | |
65 | LDI 0xee,%r18 ; "ee" | |
66 | ADD %r18,%r19,%r19 ; "deadbeefbadcadee" | |
67 | ||
68 | lab1 ;; Test floating point registers | |
69 | ;; | |
70 | LDIL LR'one,%r22 ; | |
71 | FLDD RR'one(%r22),%fr4 ; 1.0 | |
72 | FLDD RR'one+8(%r22),%fr5 ; 2.0 | |
73 | FLDD RR'one+8(%r22),%fr6 ; 2.0 | |
74 | FMPY,DBL %fr5,%fr6,%fr7 ; 4.0 | |
75 | FMPY,DBL %fr6,%fr7,%fr8 ; 8.0 | |
76 | FMPY,DBL %fr7,%fr8,%fr9 ; 32.0 | |
77 | FMPY,DBL %fr8,%fr9,%fr10 ; 256.0 | |
78 | ||
79 | ;; The NOP prevents anything from end.o or crt0.o from | |
80 | ;; being appended immediately after "mainend". If that | |
81 | ;; happens, then we may have other labels that have the | |
82 | ;; same address as "mainend", and thus the debugger | |
83 | ;; may symbolize this PC to something other than "mainend". | |
84 | mainend | |
85 | NOP | |
86 | .exit | |
87 | .procend | |
88 | ||
89 | .space $TEXT$ | |
90 | .subspa $CODE$ | |
91 | .subspa $LIT$ ;; <don't use> ,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16 | |
92 | one | |
93 | .align 8 | |
94 | .stringz "?\xF0\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00" | |
95 | .end | |
96 |