Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | /* * Copyright (C) 2000 Silicon Graphics * Copyright (C) 2000 Jack Steiner (steiner@sgi.com) */ #include <linux/config.h> #ifdef CONFIG_IA64_SGI_AUTOTEST // Testing only. // Routine will cause MCAs // zzzmsa(n) // n=0 MCA via duplicate TLB dropin // n=0 MCA via read of garbage address // #define ITIR(key, ps) ((key<<8) | (ps<<2)) #define TLB_PAGESIZE 28 // Use 256MB pages for now. .global zzzmca .proc zzzmca zzzmca: alloc loc4 = ar.pfs,2,8,1,0;; cmp.ne p6,p0=r32,r0;; movl r2=0x2dead movl r3=0x3dead movl r15=0x15dead movl r16=0x16dead movl r31=0x31dead movl loc0=0x34beef movl loc1=0x35beef movl loc2=0x36beef movl loc3=0x37beef movl out0=0x42beef movl r20=0x32feed;; mov ar32=r20 movl r20=0x36feed;; mov ar36=r20 movl r20=0x65feed;; mov ar65=r20 movl r20=0x66feed;; mov ar66=r20 (p6) br.cond.sptk 1f rsm 0x2000;; srlz.d; mov r11 = 1 mov r3 = ITIR(0,TLB_PAGESIZE);; mov cr.itir = r3 mov r10 = 0;; itr.d dtr[r11] = r10;; mov r11 = 2 itr.d dtr[r11] = r10;; br 9f 1: movl r8=0xfe00000048;; ld8 r9=[r8];; mf mf.a srlz.d 9: mov ar.pfs=loc4 br.ret.sptk rp .endp zzzmca .global zzzspec .proc zzzspec zzzspec: mov r8=r32 movl r9=0xe000000000000000 movl r10=0x4000;; ld8.s r16=[r8];; ld8.s r17=[r9];; add r8=r8,r10;; ld8.s r18=[r8];; add r8=r8,r10;; ld8.s r19=[r8];; add r8=r8,r10;; ld8.s r20=[r8];; mov r8=r0 tnat.nz p6,p0=r16 tnat.nz p7,p0=r17 tnat.nz p8,p0=r18 tnat.nz p9,p0=r19 tnat.nz p10,p0=r20;; (p6) dep r8=-1,r8,0,1;; (p7) dep r8=-1,r8,1,1;; (p8) dep r8=-1,r8,2,1;; (p9) dep r8=-1,r8,3,1;; (p10) dep r8=-1,r8,4,1;; br.ret.sptk rp .endp zzzspec .global zzzspec2 .proc zzzspec2 zzzspec2: cmp.eq p6,p7=r2,r2 movl r16=0xc0000a0001000020 ;; mf ;; ld8 r9=[r16] (p6) br.spnt 1f ld8 r10=[r32] ;; 1: mf.a mf ld8 r9=[r16];; cmp.ne p6,p7=r9,r16 (p6) br.spnt 1f ld8 r10=[r32] ;; 1: mf.a mf ld8 r9=[r33];; cmp.ne p6,p7=r9,r33 (p6) br.spnt 1f ld8 r10=[r32] ;; 1: mf.a mf tpa r23=r32 add r20=512,r33 add r21=1024,r33;; ld8 r9=[r20] ld8 r10=[r21];; nop.i 0 { .mib nop.m 0 cmp.ne p6,p7=r10,r33 (p6) br.spnt 1f } ld8 r10=[r32] ;; 1: mf.a mf br.ret.sptk rp .endp zzzspec #endif |