1/ 2/ CDDL HEADER START 3/ 4/ The contents of this file are subject to the terms of the 5/ Common Development and Distribution License (the "License"). 6/ You may not use this file except in compliance with the License. 7/ 8/ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9/ or http://www.opensolaris.org/os/licensing. 10/ See the License for the specific language governing permissions 11/ and limitations under the License. 12/ 13/ When distributing Covered Code, include this CDDL HEADER in each 14/ file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15/ If applicable, add the following below this CDDL HEADER, with the 16/ fields enclosed by brackets "[]" replaced with your own identifying 17/ information: Portions Copyright [yyyy] [name of copyright owner] 18/ 19/ CDDL HEADER END 20/ 21/ Copyright 2011 Nexenta Systems, Inc. All rights reserved. 22/ 23/ Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24/ Use is subject to license terms. 25/ 26 .inline __fenv_getcwsw,1 27 fstsw (%rdi) 28 fstcw 2(%rdi) 29 .end 30 31 .inline __fenv_setcwsw,1 32 movw (%rdi),%dx 33 movw 2(%rdi),%cx 34 subq $32,%rsp 35 fstenv (%rsp) 36 movw %cx,(%rsp) 37 movw %dx,4(%rsp) 38 fldenv (%rsp) 39 fwait 40 addq $32,%rsp 41 .end 42 43 .inline __fenv_getmxcsr,1 44 stmxcsr (%rdi) 45 .end 46 47 .inline __fenv_setmxcsr,1 48 ldmxcsr (%rdi) 49 .end 50 51 .inline f2xm1,1 52 fldt (%rsp) 53 f2xm1 54 .end 55 56 .inline fyl2x,2 57 fldt (%rsp) 58 fldt 16(%rsp) 59 fyl2x 60 .end 61 62 .inline fptan,1 63 fldt (%rsp) 64 fptan 65 fstpt (%rsp) 66 .end 67 68 .inline fpatan,2 69 fldt (%rsp) 70 fldt 16(%rsp) 71 fpatan 72 .end 73 74 .inline fxtract,1 75 fldt (%rsp) 76 fxtract 77 .end 78 79 .inline fprem1,2 80 fldt (%rsp) 81 fldt 16(%rsp) 82 fprem1 83 fstp %st(1) 84 .end 85 86 .inline fprem,2 87 fldt (%rsp) 88 fldt 16(%rsp) 89 fprem 90 fstp %st(1) 91 .end 92 93 .inline fyl2xp1,2 94 fldt (%rsp) 95 fldt 16(%rsp) 96 fyl2xp1 97 .end 98 99 .inline fsqrt,1 100 fldt (%rsp) 101 fsqrt 102 .end 103 104 .inline fsincos,1 105 fldt (%rsp) 106 fsincos 107 .end 108 109 .inline frndint,1 110 fldt (%rsp) 111 frndint 112 .end 113 114 .inline fscale,2 115 fldt (%rsp) 116 fldt 16(%rsp) 117 fscale 118 fstp %st(1) 119 .end 120 121 .inline fsin,1 122 fldt (%rsp) 123 fsin 124 .end 125 126 .inline fcos,1 127 fldt (%rsp) 128 fcos 129 .end 130 131 .inline sse_cmpeqss,3 132 movss (%rdi),%xmm0 133 cmpeqss (%rsi),%xmm0 134 movss %xmm0,(%rdx) 135 .end 136 137 .inline sse_cmpltss,3 138 movss (%rdi),%xmm0 139 cmpltss (%rsi),%xmm0 140 movss %xmm0,(%rdx) 141 .end 142 143 .inline sse_cmpless,3 144 movss (%rdi),%xmm0 145 cmpless (%rsi),%xmm0 146 movss %xmm0,(%rdx) 147 .end 148 149 .inline sse_cmpunordss,3 150 movss (%rdi),%xmm0 151 cmpunordss (%rsi),%xmm0 152 movss %xmm0,(%rdx) 153 .end 154 155 .inline sse_minss,3 156 movss (%rdi),%xmm0 157 minss (%rsi),%xmm0 158 movss %xmm0,(%rdx) 159 .end 160 161 .inline sse_maxss,3 162 movss (%rdi),%xmm0 163 maxss (%rsi),%xmm0 164 movss %xmm0,(%rdx) 165 .end 166 167 .inline sse_addss,3 168 movss (%rdi),%xmm0 169 addss (%rsi),%xmm0 170 movss %xmm0,(%rdx) 171 .end 172 173 .inline sse_subss,3 174 movss (%rdi),%xmm0 175 subss (%rsi),%xmm0 176 movss %xmm0,(%rdx) 177 .end 178 179 .inline sse_mulss,3 180 movss (%rdi),%xmm0 181 mulss (%rsi),%xmm0 182 movss %xmm0,(%rdx) 183 .end 184 185 .inline sse_divss,3 186 movss (%rdi),%xmm0 187 divss (%rsi),%xmm0 188 movss %xmm0,(%rdx) 189 .end 190 191 .inline sse_sqrtss,2 192 sqrtss (%rdi),%xmm0 193 movss %xmm0,(%rsi) 194 .end 195 196 .inline sse_ucomiss,2 197 movss (%rdi),%xmm0 198 ucomiss (%rsi),%xmm0 199 .end 200 201 .inline sse_comiss,2 202 movss (%rdi),%xmm0 203 comiss (%rsi),%xmm0 204 .end 205 206 .inline sse_cvtss2sd,2 207 cvtss2sd (%rdi),%xmm0 208 movsd %xmm0,(%rsi) 209 .end 210 211 .inline sse_cvtsi2ss,2 212 cvtsi2ss (%rdi),%xmm0 213 movss %xmm0,(%rsi) 214 .end 215 216 .inline sse_cvttss2si,2 217 cvttss2si (%rdi),%ecx 218 movl %ecx,(%rsi) 219 .end 220 221 .inline sse_cvtss2si,2 222 cvtss2si (%rdi),%ecx 223 movl %ecx,(%rsi) 224 .end 225 226 .inline sse_cvtsi2ssq,2 227 cvtsi2ssq (%rdi),%xmm0 228 movss %xmm0,(%rsi) 229 .end 230 231 .inline sse_cvttss2siq,2 232 cvttss2siq (%rdi),%rcx 233 movq %rcx,(%rsi) 234 .end 235 236 .inline sse_cvtss2siq,2 237 cvtss2siq (%rdi),%rcx 238 movq %rcx,(%rsi) 239 .end 240 241 .inline sse_cmpeqsd,3 242 movsd (%rdi),%xmm0 243 cmpeqsd (%rsi),%xmm0 244 movsd %xmm0,(%rdx) 245 .end 246 247 .inline sse_cmpltsd,3 248 movsd (%rdi),%xmm0 249 cmpltsd (%rsi),%xmm0 250 movsd %xmm0,(%rdx) 251 .end 252 253 .inline sse_cmplesd,3 254 movsd (%rdi),%xmm0 255 cmplesd (%rsi),%xmm0 256 movsd %xmm0,(%rdx) 257 .end 258 259 .inline sse_cmpunordsd,3 260 movsd (%rdi),%xmm0 261 cmpunordsd (%rsi),%xmm0 262 movsd %xmm0,(%rdx) 263 .end 264 265 .inline sse_minsd,3 266 movsd (%rdi),%xmm0 267 minsd (%rsi),%xmm0 268 movsd %xmm0,(%rdx) 269 .end 270 271 .inline sse_maxsd,3 272 movsd (%rdi),%xmm0 273 maxsd (%rsi),%xmm0 274 movsd %xmm0,(%rdx) 275 .end 276 277 .inline sse_addsd,3 278 movsd (%rdi),%xmm0 279 addsd (%rsi),%xmm0 280 movsd %xmm0,(%rdx) 281 .end 282 283 .inline sse_subsd,3 284 movsd (%rdi),%xmm0 285 subsd (%rsi),%xmm0 286 movsd %xmm0,(%rdx) 287 .end 288 289 .inline sse_mulsd,3 290 movsd (%rdi),%xmm0 291 mulsd (%rsi),%xmm0 292 movsd %xmm0,(%rdx) 293 .end 294 295 .inline sse_divsd,3 296 movsd (%rdi),%xmm0 297 divsd (%rsi),%xmm0 298 movsd %xmm0,(%rdx) 299 .end 300 301 .inline sse_sqrtsd,2 302 sqrtsd (%rdi),%xmm0 303 movsd %xmm0,(%rsi) 304 .end 305 306 .inline sse_ucomisd,2 307 movsd (%rdi),%xmm0 308 ucomisd (%rsi),%xmm0 309 .end 310 311 .inline sse_comisd,2 312 movsd (%rdi),%xmm0 313 comisd (%rsi),%xmm0 314 .end 315 316 .inline sse_cvtsd2ss,2 317 cvtsd2ss (%rdi),%xmm0 318 movss %xmm0,(%rsi) 319 .end 320 321 .inline sse_cvtsi2sd,2 322 cvtsi2sd (%rdi),%xmm0 323 movsd %xmm0,(%rsi) 324 .end 325 326 .inline sse_cvttsd2si,2 327 cvttsd2si (%rdi),%ecx 328 movl %ecx,(%rsi) 329 .end 330 331 .inline sse_cvtsd2si,2 332 cvtsd2si (%rdi),%ecx 333 movl %ecx,(%rsi) 334 .end 335 336 .inline sse_cvtsi2sdq,2 337 cvtsi2sdq (%rdi),%xmm0 338 movsd %xmm0,(%rsi) 339 .end 340 341 .inline sse_cvttsd2siq,2 342 cvttsd2siq (%rdi),%rcx 343 movq %rcx,(%rsi) 344 .end 345 346 .inline sse_cvtsd2siq,2 347 cvtsd2siq (%rdi),%rcx 348 movq %rcx,(%rsi) 349 .end 350