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