⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 real.h

📁 这是完整的gcc源代码
💻 H
字号:
/* Front-end tree definitions for GNU compiler.   Copyright (C) 1989 Free Software Foundation, Inc.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 1, or (at your option)any later version.GNU CC is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */#ifndef REAL_H_INCLUDED#define REAL_H_INCLUDED/* If we are not cross-compiling, use a `double' to represent the   floating-point value.  Otherwise, use some other type   (probably a struct containing an array of longs).  */#ifndef REAL_VALUE_TYPE#define REAL_VALUE_TYPE double#else#define REAL_IS_NOT_DOUBLE#endif/* Compare two floating-point values for equality.  */#ifndef REAL_VALUES_EQUAL#define REAL_VALUES_EQUAL(x,y) ((x) == (y))#endif/* Compare two floating-point values for less than.  */#ifndef REAL_VALUES_LESS#define REAL_VALUES_LESS(x,y) ((x) < (y))#endif/* Scale X by Y powers of 2.  */#ifndef REAL_VALUE_LDEXP#define REAL_VALUE_LDEXP(x,y) ldexp (x, y)extern double ldexp ();#endif/* Convert the string X to a floating-point value.  */#ifndef REAL_VALUE_ATOF#define REAL_VALUE_ATOF(x) atof (x)extern double atof ();#endif/* Negate the floating-point value X.  */#ifndef REAL_VALUE_NEGATE#define REAL_VALUE_NEGATE(x) (- (x))#endif/* Truncate the floating-point value X to single-precision.  */#ifndef REAL_VALUE_TRUNCATE#define REAL_VALUE_TRUNCATE(x) ((float) (x))#endif/* Union type used for extracting real values from CONST_DOUBLEs   or putting them in.  */union real_extract {  REAL_VALUE_TYPE d;  int i[sizeof (REAL_VALUE_TYPE) / sizeof (int)];};/* For a CONST_DOUBLE:   The usual two ints that hold the value.   For a DImode, that is all there are;    and CONST_DOUBLE_LOW is the low-order word and ..._HIGH the high-order.   For a float, the number of ints varies,    and CONST_DOUBLE_LOW is the one that should come first *in memory*.    So use &CONST_DOUBLE_LOW(r) as the address of an array of ints.  */#define CONST_DOUBLE_LOW(r) XINT (r, 2)#define CONST_DOUBLE_HIGH(r) XINT (r, 3)/* Link for chain of all CONST_DOUBLEs in use in current function.  */#define CONST_DOUBLE_CHAIN(r) XEXP (r, 1)/* The MEM which represents this CONST_DOUBLE's value in memory,   or const0_rtx if no MEM has been made for it yet,   or cc0_rtx if it is not on the chain.  */#define CONST_DOUBLE_MEM(r) XEXP (r, 0)/* Function to return a real value (not a tree node)   from a given integer constant.  */REAL_VALUE_TYPE real_value_from_int_cst ();#endif /* Not REAL_H_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -