summaryrefslogtreecommitdiff
path: root/sys/contrib/ia64/libuwx/test/primeregs.s
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/ia64/libuwx/test/primeregs.s')
-rw-r--r--sys/contrib/ia64/libuwx/test/primeregs.s93
1 files changed, 93 insertions, 0 deletions
diff --git a/sys/contrib/ia64/libuwx/test/primeregs.s b/sys/contrib/ia64/libuwx/test/primeregs.s
new file mode 100644
index 000000000000..12444a21c4d4
--- /dev/null
+++ b/sys/contrib/ia64/libuwx/test/primeregs.s
@@ -0,0 +1,93 @@
+ .text
+ .proc prime_registers
+ .global prime_registers
+
+prime_registers:
+
+ .prologue
+
+ .save ar.pfs, r32
+ alloc r32 = ar.pfs, 0, 3, 0, 0
+ .save rp, r33
+ mov r33 = b0
+ .save ar.unat, r34
+ mov r34 = ar.unat
+ add r14 = -56, sp
+ add r15 = -48, sp
+ .fframe 80
+ add sp = -80, sp
+ mov r16 = b1
+ ;;
+
+ .save.g 0x1
+ st8.spill [r14] = r4, 16
+ .save.g 0x2
+ st8.spill [r15] = r5, 16
+ mov r17 = b2
+ ;;
+ .save.g 0x4
+ st8.spill [r14] = r6, 16
+ .save.g 0x8
+ st8.spill [r15] = r7, 16
+ mov r18 = b3
+ ;;
+ .save.b 0x1
+ st8 [r14] = r16, 16
+ .save.b 0x2
+ st8 [r15] = r17, 16
+ mov r19 = b4
+ ;;
+ .save.b 0x4
+ st8 [r14] = r18, 16
+ .save.b 0x8
+ st8 [r15] = r19
+ mov r20 = b5
+ ;;
+ .save.b 0x10
+ st8 [r14] = r20
+
+ .body
+
+ dep.z r4 = -0x34, 16, 32
+ ;;
+ add r5 = 1, r4
+ add r6 = 2, r4
+ ;;
+ add r7 = 3, r4
+ ;;
+
+ .global func1
+ .type func1, @function
+ br.call.sptk b0 = func1
+ ;;
+
+ add r14 = 80, sp
+ add r15 = 88, sp
+ ;;
+ ld8 r20 = [r15], -16
+ ;;
+ ld8 r19 = [r14], -16
+ ld8 r18 = [r15], -16
+ mov b5 = r20
+ ;;
+ ld8 r17 = [r14], -16
+ ld8 r16 = [r15], -16
+ mov b4 = r19
+ ;;
+ ld8.fill r7 = [r14], -16
+ ld8.fill r6 = [r15], -16
+ mov b3 = r18
+ ;;
+ ld8.fill r5 = [r14]
+ ld8.fill r4 = [r15]
+ mov b2 = r17
+ mov b1 = r16
+
+ .restore sp
+ mov ar.pfs = r32
+ ;;
+ add sp = 80, sp
+ mov ar.unat = r34
+ mov b0 = r33
+ br.ret.sptk b0
+ .endp