///////////////////////////////////////////////////////////////////////////// // // 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