aboutsummaryrefslogtreecommitdiffhomepage
path: root/ext/detours/samples/disas/ia64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'ext/detours/samples/disas/ia64.asm')
-rw-r--r--ext/detours/samples/disas/ia64.asm1084
1 files changed, 1084 insertions, 0 deletions
diff --git a/ext/detours/samples/disas/ia64.asm b/ext/detours/samples/disas/ia64.asm
new file mode 100644
index 0000000..189eb28
--- /dev/null
+++ b/ext/detours/samples/disas/ia64.asm
@@ -0,0 +1,1084 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// Detours Test Program (ia64.asm/disas.exe)
+//
+// Microsoft Research Detours Package
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+
+ .section .text
+ .proc TestCodes#
+ .global TestCodes#
+ .align 64
+
+TestCodes:
+{ .mii
+ and r21 = 7, r32
+ mux1 r25 = r33, @brcst
+ add r16 = r32, r34
+} { .mmb
+ cmp.ge p9 = 0, r34
+ mov r8 = r32
+(p9) br.ret.spnt b0
+ ;;
+}
+// align on an 8-byte boundary
+{ .mmi
+ cmp.ne p15 = 0, r21 //Low 3 bits zero?
+ cmp.gt p10 = 0x30, r34
+ cmp.eq p6, p7 = 0, r33
+} { .mmb
+ nop.m 0
+ nop.m 0
+(p15) br.cond.dpnt Align_Loop
+ ;;
+} { .mmi
+(p7) mov r27 = 0x88
+(p6) mov r27 = 0x90
+ tbit.nz p14,p13 = r32, 3 // is aligned on 8-bytes (to align on 16 before FP loop)?
+} { .mbb
+ nop.m 0
+(p10) br.cond.dpnt Aligned_Short // blocks < 48 bytes
+(p7) br.cond.dpnt Aligned_Long; // do 8-byte stores for non-zero fills, 16-byte f0 for zero-fills
+ ;;
+}
+
+// zero-fills >= 48 bytes goes through an f0 16-byte store loop
+Aligned_FP_Long:
+{ .mmi
+ add r28 = 0x80, r27
+ add r29 = 0x100, r27
+ add r30 = 0x180, r27
+} { .mmi
+(p14) add r14 = 0x88, r32
+(p14) st8 [r32] = r0, 8
+(p14) add r34 = -0x8, r34
+ ;;
+} { .mmi
+(p13) add r14 = 0x80, r32
+ cmp.ge p7 = r34, r27
+ add r27 = 0x200, r27
+} { .mmi
+ add r15 = 0x180, r32
+ add r17 = 0x200, r32
+ nop.i 0
+ ;;
+} { .mmi
+ add r26 = 0x280, r32
+ cmp.ge p8 = r34, r28
+ cmp.ge p9 = r34, r29
+} { .mmi
+ stf.spill [r32] = f0 // Line 0
+(p7) stf.spill [r14] = f0,0x80 // Line +1 0x80
+ add r28 = 0x200, r28
+ ;;
+} { .mmi
+(p8) stf.spill [r14] = f0 // Line +2 0x100
+(p9) stf.spill [r15] = f0 // Line +3 0x180
+ cmp.ge p10 = r34, r28
+} { .mmi
+ cmp.ge p11 = r34, r30
+ cmp.ge p12 = r34, r27
+ nop.i 0
+ ;;
+} { .mmi
+(p11) stf.spill [r17] = f0 // Line +4 0x200
+(p12) stf.spill [r26] = f0, 0x80 // Line +5 0x280
+ add r31 = 0x10, r32
+ ;;
+}
+
+ .align 32
+Long_FP_loop:
+{ .mmi
+(p10) stf.spill [r26] = f0, 0x80 // Line +6
+ stf.spill [r31] = f0, 0x20
+ cmp.le p15,p12 = 0x40, r34
+} { .mmb
+ add r32 = 0x20, r32
+ add r34 = -0x20, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) stf.spill [r32] = f0, 0x20
+(p15) stf.spill [r31] = f0, 0x20
+ cmp.le p15,p12 = 0x40, r34
+} { .mmb
+ add r21 = -0x60, r34
+ add r34 = -0x20, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) stf.spill [r32] = f0, 0x20
+(p15) stf.spill [r31] = f0, 0x20
+ cmp.le p15,p12 = 0x40, r34
+} { .mmb
+ cmp.ge p10 = r21, r28
+ add r34 = -0x20, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) stf.spill [r32] = f0, 0x20
+(p15) stf.spill [r31] = f0, 0x20
+ cmp.le p15,p12 = 0x40, r34
+} { .mbb
+ add r34 = -0x20, r34
+(p15) br.cond.sptk.many Long_FP_loop
+ br.cond.dpnt.many Aligned_Short
+ ;;
+}
+
+ .align 32
+// >= 48 bytes non-zero fills go through a 8-byte store based loop
+Aligned_Long:
+{ .mmi
+ add r28 = 0x80, r27
+ add r29 = 0x100, r27
+ add r30 = 0x180, r27
+} { .mmi
+ add r14 = 0x80, r32
+ cmp.ge p7 = r34, r27
+ nop.i 0
+ ;;
+} { .mmi
+ add r26 = 0x180, r32
+ cmp.ge p8 = r34, r28
+ add r31 = 8, r32
+} { .mmi
+ st8 [r32] = r25
+(p7) st8 [r14] = r25, 0x80
+ cmp.ge p9 = r34, r29
+ ;;
+} { .mmi
+(p8) st8 [r14] = r25
+(p9) st8 [r26] = r25, 0x80
+ cmp.ge p10 = r34, r30
+ ;;
+}
+ .align 32
+Long_loop:
+{ .mmi
+(p10) st8 [r26] = r25, 0x80
+ st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ add r32 = 0x10, r32
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ nop.m 0
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ nop.m 0
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ nop.m 0
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ nop.m 0
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ add r21 = -0x30, r34
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ cmp.ge p10 = r21, r30
+ add r34 = -0x10, r34
+(p12) br.cond.dpnt Aligned_Short
+ ;;
+} { .mmi
+(p15) st8 [r32] = r25, 0x10
+(p15) st8 [r31] = r25, 0x10
+ cmp.le p15,p12 = 0x20, r34
+} { .mmb
+ add r34 = -0x10, r34
+ nop.m 0
+(p15) br.cond.sptk.many Long_loop
+ ;;
+
+}
+
+//
+// Do partial word stores
+//
+ .align 32
+Aligned_Short:
+{ .mmi
+ and r27 = 2, r34
+ add r31 = 8, r32
+ tbit.nz p6 = r34, 0 //bit 0 on?
+} { .mmb
+ cmp.le p11 = 0x10, r34
+ cmp.eq p10 = 0, r34
+(p10) br.ret.dpnt b0
+ ;;
+} { .mmi
+(p11) st8 [r32] = r25, 0x10
+(p11) st8 [r31] = r25, 0x10
+ cmp.le p12 = 0x20, r34
+} { .mmi
+ add r17 = -2, r16
+ add r18 = -4, r16
+ tbit.nz p9 = r34, 3 //odd number of st8s?
+ ;;
+} { .mmi
+(p12) st8 [r32] = r25, 0x10
+(p12) st8 [r31] = r25, 0x10
+ nop.i 0
+} { .mmi
+(p6) add r18 = -1, r18
+(p6) add r16 = -1, r16
+ cmp.ne p7 = 0, r27
+ ;;
+} { .mmi
+(p9) st8 [r32] = r25
+(p6) st1 [r16] = r25
+ tbit.nz p8 = r34, 2 //bit 2 on?
+} { .mmi
+(p7) add r18 = -2, r18
+(p6) add r17 = -1, r17
+ nop.i 0
+ ;;
+} { .mmb
+(p8) st4 [r18] = r25
+(p7) st2 [r17] = r25
+ br.ret.sptk.many b0
+ ;;
+}
+
+ .align 32
+// Align the input pointer to an 8-byte boundary
+Align_Loop:
+{ .mmi
+ st1 [r32] = r33,1
+ add r21 = 1, r21
+ cmp.eq p15 = 1, r34
+} { .mmb
+ cmp.ge p11 = 0x30, r34
+ add r34 = -1, r34
+(p15) br.ret.dpnt b0
+ ;;
+} { .mmb
+ cmp.gt p10 = 8, r21
+ cmp.eq p6, p7 = 0, r33
+(p10) br.cond.sptk Align_Loop
+ ;;
+} { .mmi
+(p7) mov r27 = 0x88
+(p6) mov r27 = 0x90
+ tbit.nz p14,p13 = r32, 3 // is aligned on 8-bytes (to align on 16 before FP loop)?
+} { .bbb
+(p11) br.cond.dpnt Aligned_Short // blocks < 48 bytes
+(p7) br.cond.dpnt Aligned_Long; // non-zero fills
+ br.cond.dptk Aligned_FP_Long; // zero fills
+ ;;
+}
+ .endp TestCodes#
+
+ .proc Again#
+Again:
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl TestCodes
+ brl Fore1
+ brl Fore2
+ brl Fore3
+ brl Fore4
+ brl Fore5
+ brl Fore6
+ brl Fore7
+ .endp Again#
+
+ data4 0xffffff00
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ .align 64
+
+ data4 0xffffff00
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+
+{
+ addl r2=0xffffffffffffffff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xfffffffffffffff0, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xffffffffffffff00, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xfffffffffffff000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xfffffffffffff000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xffffffffffff0000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xfffffffffff00000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xffffffffffe00000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x00000000001fffff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x00000000000fffff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x000000000000ffff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000fff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x00000000000000ff, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x000000000000000f, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000001, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000002, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000004, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000008, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000010, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000020, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000040, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000080, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000100, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000200, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000400, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000000800, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000001000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000002000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000004000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000008000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000010000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000020000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000040000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000080000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0x0000000000100000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+{
+ addl r2=0xffffffffffe00000, gp ;;
+ ld8 r2=[r2]
+ nop.i 0 ;;
+}
+
+ data4 0
+ .align 64
+
+ .align 64 ;
+ .proc Fore1#
+Fore1:
+ brl Fore2
+ .endp Fore1#
+
+ data4 0
+ .align 64
+
+ .proc Fore2#
+Fore2:
+ brl Fore3
+ .endp Fore2#
+
+ data4 0
+ .align 64
+
+ .proc Fore3#
+Fore3:
+ brl Fore3
+ movl gp = 0xffffffffffffffff
+ brl Fore4
+ movl gp = 0x0000000000000000
+ movl gp = 0x0000000000000001
+ movl gp = 0x0000000000000002
+ movl gp = 0x0000000000000004
+ movl gp = 0x0000000000000008
+ movl gp = 0x0000000000000010
+ movl gp = 0x0000000000000020
+ movl gp = 0x0000000000000040
+ movl gp = 0x0000000000000080
+ movl gp = 0x0000000000000100
+ movl gp = 0x0000000000000200
+ movl gp = 0x0000000000000400
+ movl gp = 0x0000000000000800
+ movl gp = 0x0000000000001000
+ movl gp = 0x0000000000002000
+ movl gp = 0x0000000000004000
+ brl Fore4
+ movl gp = 0x0000000000000000
+ brl Fore4
+ movl gp = 0x0000000000000001
+ brl Fore4
+ movl gp = 0x0000000000000002
+ brl Fore4
+ movl gp = 0x0000000000000004
+ brl Fore4
+ movl gp = 0x0000000000000008
+ brl Fore4
+ movl gp = 0x0000000000000010
+ brl Fore4
+ movl gp = 0x0000000000000020
+ brl Fore4
+ movl gp = 0x0000000000000040
+ brl Fore4
+ movl gp = 0x0000000000000080
+ brl Fore4
+ movl gp = 0x0000000000000100
+ brl Fore4
+ movl gp = 0x0000000000000200
+ brl Fore4
+ movl gp = 0x0000000000000400
+ brl Fore4
+ movl gp = 0x0000000000000800
+ brl Fore4
+ movl gp = 0x0000000000001000
+ brl Fore4
+ movl gp = 0x0000000000002000
+ brl Fore4
+ movl gp = 0x0000000000004000
+ brl Fore4
+ movl gp = 0x0000000000008000
+ brl Fore4
+ movl gp = 0x0000000000010000
+ brl Fore4
+ movl gp = 0x0000000000020000
+ brl Fore4
+ movl gp = 0x0000000000040000
+ brl Fore4
+ movl gp = 0x0000000000080000
+ brl Fore4
+ movl gp = 0x0000000000100000
+ brl Fore4
+ movl gp = 0x0000000000200000
+ brl Fore4
+ movl gp = 0x0000000000400000
+ brl Fore4
+ movl gp = 0x0000000000800000
+ brl Fore4
+ movl gp = 0x0000000001000000
+ brl Fore4
+ movl gp = 0x0000000002000000
+ brl Fore4
+ movl gp = 0x0000000004000000
+ brl Fore4
+ movl gp = 0x0000000008000000
+ brl Fore4
+ movl gp = 0x0000000010000000
+ brl Fore4
+ movl gp = 0x0000000020000000
+ brl Fore4
+ movl gp = 0x0000000040000000
+ brl Fore4
+ movl gp = 0x0000000080000000
+ brl Fore4
+ movl gp = 0x0000000100000000
+ brl Fore4
+ movl gp = 0x0000000200000000
+ brl Fore4
+ movl gp = 0x0000000400000000
+ brl Fore4
+ movl gp = 0x0000000800000000
+ brl Fore4
+ movl gp = 0x0000001000000000
+ brl Fore4
+ movl gp = 0x0000002000000000
+ brl Fore4
+ movl gp = 0x0000004000000000
+ brl Fore4
+ movl gp = 0x0000008000000000
+ brl Fore4
+ movl gp = 0x0000010000000000
+ brl Fore4
+ movl gp = 0x0000020000000000
+ brl Fore4
+ movl gp = 0x0000040000000000
+ brl Fore4
+ movl gp = 0x0000080000000000
+ brl Fore4
+ movl gp = 0x0000100000000000
+ brl Fore4
+ movl gp = 0x0000200000000000
+ brl Fore4
+ movl gp = 0x0000400000000000
+ brl Fore4
+ movl gp = 0x0000800000000000
+ brl Fore4
+ movl gp = 0x0001000000000000
+ brl Fore4
+ movl gp = 0x0002000000000000
+ brl Fore4
+ movl gp = 0x0004000000000000
+ brl Fore4
+ movl gp = 0x0008000000000000
+ brl Fore4
+ movl gp = 0x0010000000000000
+ brl Fore4
+ movl gp = 0x0020000000000000
+ brl Fore4
+ movl gp = 0x0040000000000000
+ brl Fore4
+ movl gp = 0x0080000000000000
+ brl Fore4
+ movl gp = 0x0100000000000000
+ brl Fore4
+ movl gp = 0x0200000000000000
+ brl Fore4
+ movl gp = 0x0400000000000000
+ brl Fore4
+ movl gp = 0x0800000000000000
+ brl Fore4
+ movl gp = 0x1000000000000000
+ brl Fore4
+ movl gp = 0x2000000000000000
+ brl Fore4
+ movl gp = 0x4000000000000000
+ brl Fore4
+ movl gp = 0x8000000000000000
+ brl Fore4
+ movl gp = 0xffffffffffffffff
+ brl Fore4
+ movl gp = 0x0000000000000000
+ brl Fore4
+ movl gp = 0xfffffffffffffffe
+ brl Fore4
+ movl gp = 0xfffffffffffffffc
+ brl Fore4
+ movl gp = 0xfffffffffffffff8
+ brl Fore4
+ movl gp = 0xfffffffffffffff0
+ brl Fore4
+ movl gp = 0xffffffffffffffe0
+ brl Fore4
+ movl gp = 0xffffffffffffffc0
+ brl Fore4
+ movl gp = 0xffffffffffffff80
+ brl Fore4
+ movl gp = 0xffffffffffffff00
+ brl Fore4
+ movl gp = 0xfffffffffffffe00
+ brl Fore4
+ movl gp = 0xfffffffffffffc00
+ brl Fore4
+ movl gp = 0xfffffffffffff800
+ brl Fore4
+ movl gp = 0xfffffffffffff000
+ brl Fore4
+ movl gp = 0xffffffffffffe000
+ brl Fore4
+ movl gp = 0xffffffffffffc000
+ brl Fore4
+ movl gp = 0xffffffffffff8000
+ brl Fore4
+ movl gp = 0xffffffffffff0000
+ brl Fore4
+ movl gp = 0xfffffffffffe0000
+ brl Fore4
+ movl gp = 0xfffffffffffc0000
+ brl Fore4
+ movl gp = 0xfffffffffff80000
+ brl Fore4
+ movl gp = 0xfffffffffff00000
+ brl Fore4
+ movl gp = 0xffffffffffe00000
+ brl Fore4
+ movl gp = 0xffffffffffc00000
+ brl Fore4
+ movl gp = 0xffffffffff800000
+ brl Fore4
+ movl gp = 0xffffffffff000000
+ brl Fore4
+ movl gp = 0xfffffffffe000000
+ brl Fore4
+ movl gp = 0xfffffffffc000000
+ brl Fore4
+ movl gp = 0xfffffffff8000000
+ brl Fore4
+ movl gp = 0xfffffffff0000000
+ brl Fore4
+ movl gp = 0xffffffffe0000000
+ brl Fore4
+ movl gp = 0xffffffffc0000000
+ brl Fore4
+ movl gp = 0xffffffff80000000
+ brl Fore4
+ movl gp = 0xffffffff00000000
+ brl Fore4
+ movl gp = 0xfffffffe00000000
+ brl Fore4
+ movl gp = 0xfffffffc00000000
+ brl Fore4
+ movl gp = 0xfffffff800000000
+ brl Fore4
+ movl gp = 0xfffffff000000000
+ brl Fore4
+ movl gp = 0xffffffe000000000
+ brl Fore4
+ movl gp = 0xffffffc000000000
+ brl Fore4
+ movl gp = 0xffffff8000000000
+ brl Fore4
+ movl gp = 0xffffff0000000000
+ brl Fore4
+ movl gp = 0xfffffe0000000000
+ brl Fore4
+ movl gp = 0xfffffc0000000000
+ brl Fore4
+ movl gp = 0xfffff80000000000
+ brl Fore4
+ movl gp = 0xfffff00000000000
+ brl Fore4
+ movl gp = 0xffffe00000000000
+ brl Fore4
+ movl gp = 0xffffc00000000000
+ brl Fore4
+ movl gp = 0xffff800000000000
+ brl Fore4
+ movl gp = 0xffff000000000000
+ brl Fore4
+ movl gp = 0xfffe000000000000
+ brl Fore4
+ movl gp = 0xfffc000000000000
+ brl Fore4
+ movl gp = 0xfff8000000000000
+ brl Fore4
+ movl gp = 0xfff0000000000000
+ brl Fore4
+ movl gp = 0xffe0000000000000
+ brl Fore4
+ movl gp = 0xffc0000000000000
+ brl Fore4
+ movl gp = 0xff80000000000000
+ brl Fore4
+ movl gp = 0xff00000000000000
+ brl Fore4
+ movl gp = 0xfe00000000000000
+ brl Fore4
+ movl gp = 0xfc00000000000000
+ brl Fore4
+ movl gp = 0xf800000000000000
+ brl Fore4
+ movl gp = 0xf000000000000000
+ brl Fore4
+ movl gp = 0xe000000000000000
+ brl Fore4
+ movl gp = 0xc000000000000000
+ brl Fore4
+ movl gp = 0x8000000000000000
+ brl Fore4
+ movl gp = 0x0000000000000000
+ brl Fore4
+ movl gp = 0x0000000000000000
+ brl Fore4
+ brl.sptk.many Fore4
+ brl.sptk.many Fore4
+ brl.sptk.many Fore4
+ brl.sptk.many Fore4
+
+ movl gp = 0xf0f0f0f0f0f0f0f0
+ brl.sptk.many Fore9
+Fore9:
+ brl.sptk.few Fore8
+Fore8:
+ brl.sptk.few Fore8
+ brl.sptk.few Fore8
+ brl.sptk.few Fore8
+ data1 0x05,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0xff,0xff,0x7f,0x00,0xf0,0xff,0xff,0xc8
+ data1 0x05,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0xff,0xff,0x7f,0x00,0xf0,0xff,0xff,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0xff,0xff,0x7f,0x00,0xf0,0xff,0xff,0xc8
+ data1 0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x85,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x08,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x20,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x40,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x80,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x08,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x80,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x20,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data1 0x05,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ movl gp = 0xf0f0f0f0f0f0f0f0
+
+{ .mii
+ nop.m 0
+ nop.i 0
+ nop.i 0
+}
+{ .mmi
+ nop.m 0
+ nop.m 0
+ nop.i 0
+}
+{ .mmb
+ nop.m 0
+ nop.m 0
+ nop.b 0
+}
+{ .mmf
+ nop.m 0
+ nop.m 0
+ nop.f 0
+}
+{ .mbb
+ nop.m 0
+ nop.b 0
+ nop.b 0
+}
+ movl gp = 0x0000000000000000
+{ .mlx
+ flushrs
+ movl gp = 0x0000000000000000
+}
+ movl gp = 0x0000000000000000
+ .endp Fore3#
+
+ data4 0
+ .align 64
+
+ .proc Fore4#
+Fore4:
+ movl gp = 0x0000000000000000
+ brl Fore5
+ .endp Fore4#
+
+ data4 0
+ .align 64
+
+ data4 0
+ .align 64
+
+ .proc Fore5#
+Fore5:
+ movl gp = 0xffffffffffffffff
+ brl Fore6
+ .endp Fore5#
+
+ data4 0
+ .align 64
+
+ .proc Fore6#
+Fore6:
+ movl gp = 0x0000000000000000
+ brl Fore7
+ .endp Fore6#
+
+ data4 0
+ .align 64
+
+ .proc Fore7#
+Fore7:
+ movl gp = 0xffffffffffffffff
+ brl Fore6
+ brl.call.dptk.many b0=Fore6
+ br.call.dptk.many b0=Fore6
+ br.ret.dpnt.many b0
+ br.ret.dptk.many b0
+ br.ret.spnt.many b0
+ br.ret.sptk.many b0
+ .endp Fore7#
+
+ data4 0
+ .align 64
+
+ .proc Call8#
+Call8:
+{
+ alloc r41=ar.pfs, 10, 0, 8, 0
+ adds r49=0, r39
+ mov r40=rp
+}
+{
+ adds r48=0, r38
+ adds r47=0, r37
+ adds r46=0, r36 ;;
+}
+{
+ adds r45=0, r35
+ adds r44=0, r34
+ adds r43=0, r33
+}
+{
+ movl gp = 0xffffffffffffffff ;;
+}
+{
+ adds r42=0, r32
+ brl.call.sptk.few rp=Call8Real ;;
+}
+Call8Real:
+{
+ movl gp = 0xffffffffffffffff ;;
+}
+{
+ nop.m 0
+ mov rp=r40, +0 ;;
+ mov.i ar.pfs=r41
+}
+{
+ nop.m 0
+ nop.m 0
+ br.ret.sptk.many rp ;;
+}
+ .endp Call8#
+
+ data4 0
+ .align 64
+
+ .proc Pass8#
+Pass8:
+{
+ alloc r41=ar.pfs, 11, 0, 8, 0
+ mov r40=rp
+}
+{
+ adds r50=0, r39
+ adds r49=0, r38
+ adds r48=0, r37 ;;
+}
+{
+ adds r47=0, r36
+ adds r46=0, r35
+ adds r45=0, r34
+}
+{
+ adds r44=0, r33
+ adds r43=0, r32
+ adds r42=0, gp ;;
+}
+{
+ movl gp = 0xffffffffffffffff ;;
+}
+{
+ brl.call.sptk.few rp=Pass8Real ;;
+}
+Pass8Real:
+{
+ adds gp=0, r42
+ mov rp=r40, +0 ;;
+ mov.i ar.pfs=r41
+}
+{
+ nop.m 0
+ nop.m 0
+ br.ret.sptk.many rp ;;
+}
+ .endp Pass8#
+
+ data4 0
+ .align 64
+
+ .proc Last#
+Last:
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ .skip 0x1000
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ data4 0xffffffff
+ .endp Last#
+
+// End