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 movl (%esp),%eax 28 fstsw (%eax) 29 fstcw 2(%eax) 30 .end 31 32 .inline __fenv_setcwsw,1 33 movl (%esp),%eax 34 movw (%eax),%dx 35 movw 2(%eax),%cx 36 subl $28,%esp 37 fstenv (%esp) 38 movw %cx,(%esp) 39 movw %dx,4(%esp) 40 fldenv (%esp) 41 fwait 42 addl $28,%esp 43 .end 44 45 .inline __fenv_getmxcsr,1 46 movl (%esp),%eax 47 stmxcsr (%eax) 48 .end 49 50 .inline __fenv_setmxcsr,1 51 movl (%esp),%eax 52 ldmxcsr (%eax) 53 .end 54 55 .inline f2xm1,1 56 fldt (%esp) 57 f2xm1 58 .end 59 60 .inline fyl2x,2 61 fldt (%esp) 62 fldt 12(%esp) 63 fyl2x 64 .end 65 66 .inline fptan,1 67 fldt (%esp) 68 fptan 69 fstpt (%esp) 70 .end 71 72 .inline fpatan,2 73 fldt (%esp) 74 fldt 12(%esp) 75 fpatan 76 .end 77 78 .inline fxtract,1 79 fldt (%esp) 80 fxtract 81 .end 82 83 .inline fprem1,2 84 fldt (%esp) 85 fldt 12(%esp) 86 fprem1 87 fstp %st(1) 88 .end 89 90 .inline fprem,2 91 fldt (%esp) 92 fldt 12(%esp) 93 fprem 94 fstp %st(1) 95 .end 96 97 .inline fyl2xp1,2 98 fldt (%esp) 99 fldt 12(%esp) 100 fyl2xp1 101 .end 102 103 .inline fsqrt,1 104 fldt (%esp) 105 fsqrt 106 .end 107 108 .inline fsincos,1 109 fldt (%esp) 110 fsincos 111 .end 112 113 .inline frndint,1 114 fldt (%esp) 115 frndint 116 .end 117 118 .inline fscale,2 119 fldt (%esp) 120 fldt 12(%esp) 121 fscale 122 fstp %st(1) 123 .end 124 125 .inline fsin,1 126 fldt (%esp) 127 fsin 128 .end 129 130 .inline fcos,1 131 fldt (%esp) 132 fcos 133 .end 134 135 .inline sse_cmpeqss,3 136 movl (%esp),%eax 137 movl 4(%esp),%edx 138 movl 8(%esp),%ecx 139 movss (%eax),%xmm0 140 cmpeqss (%edx),%xmm0 141 movss %xmm0,(%ecx) 142 .end 143 144 .inline sse_cmpltss,3 145 movl (%esp),%eax 146 movl 4(%esp),%edx 147 movl 8(%esp),%ecx 148 movss (%eax),%xmm0 149 cmpltss (%edx),%xmm0 150 movss %xmm0,(%ecx) 151 .end 152 153 .inline sse_cmpless,3 154 movl (%esp),%eax 155 movl 4(%esp),%edx 156 movl 8(%esp),%ecx 157 movss (%eax),%xmm0 158 cmpless (%edx),%xmm0 159 movss %xmm0,(%ecx) 160 .end 161 162 .inline sse_cmpunordss,3 163 movl (%esp),%eax 164 movl 4(%esp),%edx 165 movl 8(%esp),%ecx 166 movss (%eax),%xmm0 167 cmpunordss (%edx),%xmm0 168 movss %xmm0,(%ecx) 169 .end 170 171 .inline sse_minss,3 172 movl (%esp),%eax 173 movl 4(%esp),%edx 174 movl 8(%esp),%ecx 175 movss (%eax),%xmm0 176 minss (%edx),%xmm0 177 movss %xmm0,(%ecx) 178 .end 179 180 .inline sse_maxss,3 181 movl (%esp),%eax 182 movl 4(%esp),%edx 183 movl 8(%esp),%ecx 184 movss (%eax),%xmm0 185 maxss (%edx),%xmm0 186 movss %xmm0,(%ecx) 187 .end 188 189 .inline sse_addss,3 190 movl (%esp),%eax 191 movl 4(%esp),%edx 192 movl 8(%esp),%ecx 193 movss (%eax),%xmm0 194 addss (%edx),%xmm0 195 movss %xmm0,(%ecx) 196 .end 197 198 .inline sse_subss,3 199 movl (%esp),%eax 200 movl 4(%esp),%edx 201 movl 8(%esp),%ecx 202 movss (%eax),%xmm0 203 subss (%edx),%xmm0 204 movss %xmm0,(%ecx) 205 .end 206 207 .inline sse_mulss,3 208 movl (%esp),%eax 209 movl 4(%esp),%edx 210 movl 8(%esp),%ecx 211 movss (%eax),%xmm0 212 mulss (%edx),%xmm0 213 movss %xmm0,(%ecx) 214 .end 215 216 .inline sse_divss,3 217 movl (%esp),%eax 218 movl 4(%esp),%edx 219 movl 8(%esp),%ecx 220 movss (%eax),%xmm0 221 divss (%edx),%xmm0 222 movss %xmm0,(%ecx) 223 .end 224 225 .inline sse_sqrtss,2 226 movl (%esp),%eax 227 movl 4(%esp),%edx 228 sqrtss (%eax),%xmm0 229 movss %xmm0,(%edx) 230 .end 231 232 .inline sse_ucomiss,2 233 movl (%esp),%eax 234 movl 4(%esp),%edx 235 movss (%eax),%xmm0 236 ucomiss (%edx),%xmm0 237 .end 238 239 .inline sse_comiss,2 240 movl (%esp),%eax 241 movl 4(%esp),%edx 242 movss (%eax),%xmm0 243 comiss (%edx),%xmm0 244 .end 245 246 .inline sse_cvtss2sd,2 247 movl (%esp),%eax 248 movl 4(%esp),%edx 249 cvtss2sd (%eax),%xmm0 250 movsd %xmm0,(%edx) 251 .end 252 253 .inline sse_cvtsi2ss,2 254 movl (%esp),%eax 255 movl 4(%esp),%edx 256 cvtsi2ss (%eax),%xmm0 257 movss %xmm0,(%edx) 258 .end 259 260 .inline sse_cvttss2si,2 261 movl (%esp),%eax 262 movl 4(%esp),%edx 263 cvttss2si (%eax),%ecx 264 movl %ecx,(%edx) 265 .end 266 267 .inline sse_cvtss2si,2 268 movl (%esp),%eax 269 movl 4(%esp),%edx 270 cvtss2si (%eax),%ecx 271 movl %ecx,(%edx) 272 .end 273 274 .inline sse_cmpeqsd,3 275 movl (%esp),%eax 276 movl 4(%esp),%edx 277 movl 8(%esp),%ecx 278 movsd (%eax),%xmm0 279 cmpeqsd (%edx),%xmm0 280 movsd %xmm0,(%ecx) 281 .end 282 283 .inline sse_cmpltsd,3 284 movl (%esp),%eax 285 movl 4(%esp),%edx 286 movl 8(%esp),%ecx 287 movsd (%eax),%xmm0 288 cmpltsd (%edx),%xmm0 289 movsd %xmm0,(%ecx) 290 .end 291 292 .inline sse_cmplesd,3 293 movl (%esp),%eax 294 movl 4(%esp),%edx 295 movl 8(%esp),%ecx 296 movsd (%eax),%xmm0 297 cmplesd (%edx),%xmm0 298 movsd %xmm0,(%ecx) 299 .end 300 301 .inline sse_cmpunordsd,3 302 movl (%esp),%eax 303 movl 4(%esp),%edx 304 movl 8(%esp),%ecx 305 movsd (%eax),%xmm0 306 cmpunordsd (%edx),%xmm0 307 movsd %xmm0,(%ecx) 308 .end 309 310 .inline sse_minsd,3 311 movl (%esp),%eax 312 movl 4(%esp),%edx 313 movl 8(%esp),%ecx 314 movsd (%eax),%xmm0 315 minsd (%edx),%xmm0 316 movsd %xmm0,(%ecx) 317 .end 318 319 .inline sse_maxsd,3 320 movl (%esp),%eax 321 movl 4(%esp),%edx 322 movl 8(%esp),%ecx 323 movsd (%eax),%xmm0 324 maxsd (%edx),%xmm0 325 movsd %xmm0,(%ecx) 326 .end 327 328 .inline sse_addsd,3 329 movl (%esp),%eax 330 movl 4(%esp),%edx 331 movl 8(%esp),%ecx 332 movsd (%eax),%xmm0 333 addsd (%edx),%xmm0 334 movsd %xmm0,(%ecx) 335 .end 336 337 .inline sse_subsd,3 338 movl (%esp),%eax 339 movl 4(%esp),%edx 340 movl 8(%esp),%ecx 341 movsd (%eax),%xmm0 342 subsd (%edx),%xmm0 343 movsd %xmm0,(%ecx) 344 .end 345 346 .inline sse_mulsd,3 347 movl (%esp),%eax 348 movl 4(%esp),%edx 349 movl 8(%esp),%ecx 350 movsd (%eax),%xmm0 351 mulsd (%edx),%xmm0 352 movsd %xmm0,(%ecx) 353 .end 354 355 .inline sse_divsd,3 356 movl (%esp),%eax 357 movl 4(%esp),%edx 358 movl 8(%esp),%ecx 359 movsd (%eax),%xmm0 360 divsd (%edx),%xmm0 361 movsd %xmm0,(%ecx) 362 .end 363 364 .inline sse_sqrtsd,2 365 movl (%esp),%eax 366 movl 4(%esp),%edx 367 sqrtsd (%eax),%xmm0 368 movsd %xmm0,(%edx) 369 .end 370 371 .inline sse_ucomisd,2 372 movl (%esp),%eax 373 movl 4(%esp),%edx 374 movsd (%eax),%xmm0 375 ucomisd (%edx),%xmm0 376 .end 377 378 .inline sse_comisd,2 379 movl (%esp),%eax 380 movl 4(%esp),%edx 381 movsd (%eax),%xmm0 382 comisd (%edx),%xmm0 383 .end 384 385 .inline sse_cvtsd2ss,2 386 movl (%esp),%eax 387 movl 4(%esp),%edx 388 cvtsd2ss (%eax),%xmm0 389 movss %xmm0,(%edx) 390 .end 391 392 .inline sse_cvtsi2sd,2 393 movl (%esp),%eax 394 movl 4(%esp),%edx 395 cvtsi2sd (%eax),%xmm0 396 movsd %xmm0,(%edx) 397 .end 398 399 .inline sse_cvttsd2si,2 400 movl (%esp),%eax 401 movl 4(%esp),%edx 402 cvttsd2si (%eax),%ecx 403 movl %ecx,(%edx) 404 .end 405 406 .inline sse_cvtsd2si,2 407 movl (%esp),%eax 408 movl 4(%esp),%edx 409 cvtsd2si (%eax),%ecx 410 movl %ecx,(%edx) 411 .end