1N/A * The contents of this file are subject to the terms of the 1N/A * Common Development and Distribution License (the "License"). 1N/A * You may not use this file except in compliance with the License. 1N/A * See the License for the specific language governing permissions 1N/A * and limitations under the License. 1N/A * When distributing Covered Code, include this CDDL HEADER in each 1N/A * If applicable, add the following below this CDDL HEADER, with the 1N/A * fields enclosed by brackets "[]" replaced with your own identifying 1N/A * information: Portions Copyright [yyyy] [name of copyright owner] 1N/A * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 1N/A * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 1N/A * Use is subject to license terms. 1N/A fmulp / z := x*log2(e) 1N/A f2xm1 / 2^(x*log2(e))-1 = e^x-1 1N/A movl 12(%rsp),%ecx / ecx <-- hi_32(sgnfcnd(x)) 1N/A cmpl $0x80000000,%ecx / hi_32(|x|) = hi_32(INF)? 1N/A jne .NaN_or_pinf / if not, x is NaN 1N/A movl 8(%rsp),%edx / edx <-- lo_32(x) 1N/A cmpl $0,%edx / lo_32(x) = 0? 1N/A jne .NaN_or_pinf / if not, x is NaN 1N/A movl 16(%rsp),%eax / ax <-- sign&bexp((x)) 1N/A andl $0x8000,%eax / here, x is infinite, but +/-? 1N/A jz .NaN_or_pinf / branch if x = +INF 1N/A fld1 / Here, x = -inf, so return -1 1N/A / Here, x = NaN or +inf, so load x and return immediately.