OLD | NEW |
1 // Works on all IA-64 platforms: Linux, HP-UX, Win64i... | 1 // Works on all IA-64 platforms: Linux, HP-UX, Win64i... |
2 // On Win64i compile with ias.exe. | 2 // On Win64i compile with ias.exe. |
3 .text | 3 .text |
| 4 |
| 5 .global OPENSSL_cpuid_setup# |
| 6 .proc OPENSSL_cpuid_setup# |
| 7 OPENSSL_cpuid_setup: |
| 8 { .mib; br.ret.sptk.many b0 };; |
| 9 .endp OPENSSL_cpuid_setup# |
| 10 |
4 .global OPENSSL_rdtsc# | 11 .global OPENSSL_rdtsc# |
5 .proc OPENSSL_rdtsc# | 12 .proc OPENSSL_rdtsc# |
6 OPENSSL_rdtsc: | 13 OPENSSL_rdtsc: |
7 { .mib; mov r8=ar.itc | 14 { .mib; mov r8=ar.itc |
8 br.ret.sptk.many b0 };; | 15 br.ret.sptk.many b0 };; |
9 .endp OPENSSL_rdtsc# | 16 .endp OPENSSL_rdtsc# |
10 | 17 |
11 .global OPENSSL_atomic_add# | 18 .global OPENSSL_atomic_add# |
12 .proc OPENSSL_atomic_add# | 19 .proc OPENSSL_atomic_add# |
13 .align 32 | 20 .align 32 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 { .mfi; mov f28=f0 } | 119 { .mfi; mov f28=f0 } |
113 { .mfi; mov f29=f0 } | 120 { .mfi; mov f29=f0 } |
114 { .mfi; mov f30=f0 } | 121 { .mfi; mov f30=f0 } |
115 { .mfi; add r9=96*8+8,r9 | 122 { .mfi; add r9=96*8+8,r9 |
116 mov f31=f0 | 123 mov f31=f0 |
117 mov pr=r8,0x1ffff } | 124 mov pr=r8,0x1ffff } |
118 { .mib; mov r8=sp | 125 { .mib; mov r8=sp |
119 mov ar.lc=r3 | 126 mov ar.lc=r3 |
120 br.ret.sptk b0 };; | 127 br.ret.sptk b0 };; |
121 .endp OPENSSL_wipe_cpu# | 128 .endp OPENSSL_wipe_cpu# |
| 129 |
| 130 .global OPENSSL_cleanse# |
| 131 .proc OPENSSL_cleanse# |
| 132 OPENSSL_cleanse: |
| 133 { .mib; cmp.eq p6,p0=0,r33 // len==0 |
| 134 #if defined(_HPUX_SOURCE) && !defined(_LP64) |
| 135 addp4 r32=0,r32 |
| 136 #endif |
| 137 (p6) br.ret.spnt b0 };; |
| 138 { .mib; and r2=7,r32 |
| 139 cmp.leu p6,p0=15,r33 // len>=15 |
| 140 (p6) br.cond.dptk .Lot };; |
| 141 |
| 142 .Little: |
| 143 { .mib; st1 [r32]=r0,1 |
| 144 cmp.ltu p6,p7=1,r33 } // len>1 |
| 145 { .mbb; add r33=-1,r33 // len-- |
| 146 (p6) br.cond.dptk .Little |
| 147 (p7) br.ret.sptk.many b0 };; |
| 148 |
| 149 .Lot: |
| 150 { .mib; cmp.eq p6,p0=0,r2 |
| 151 (p6) br.cond.dptk .Laligned };; |
| 152 { .mmi; st1 [r32]=r0,1;; |
| 153 and r2=7,r32 } |
| 154 { .mib; add r33=-1,r33 |
| 155 br .Lot };; |
| 156 |
| 157 .Laligned: |
| 158 { .mmi; st8 [r32]=r0,8 |
| 159 and r2=-8,r33 // len&~7 |
| 160 add r33=-8,r33 };; // len-=8 |
| 161 { .mib; cmp.ltu p6,p0=8,r2 // ((len+8)&~7)>8 |
| 162 (p6) br.cond.dptk .Laligned };; |
| 163 |
| 164 { .mbb; cmp.eq p6,p7=r0,r33 |
| 165 (p7) br.cond.dpnt .Little |
| 166 (p6) br.ret.sptk.many b0 };; |
| 167 .endp OPENSSL_cleanse# |
OLD | NEW |