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 16main 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 68lab1 ;; 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". 84mainend 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 92one 93 .align 8 94 .stringz "?\xF0\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00" 95 .end 96 97