Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
8a1af320
Commit
8a1af320
authored
Nov 23, 2012
by
H.J. Lu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add the missing file
From-SVN: r193771
parent
05abb346
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
74 additions
and
0 deletions
+74
-0
libquadmath/quadmath-rounding-mode.h
+74
-0
No files found.
libquadmath/quadmath-rounding-mode.h
0 → 100644
View file @
8a1af320
/* GCC Quad-Precision Math Library
Copyright (C) 2012 Free Software Foundation, Inc.
This file is part of the libquadmath library.
Libquadmath is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
Libquadmath is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with libquadmath; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
Boston, MA 02110-1301, USA. */
#ifndef QUADMATH_ROUNDING_MODE_H
#define QUADMATH_ROUNDING_MODE_H
#include <stdbool.h>
#if defined(HAVE_FENV_H)
# include <fenv.h>
#endif
/* HAVE_FENV_H */
static
inline
int
get_rounding_mode
(
void
)
{
#if defined(HAVE_FENV_H) && (defined(FE_DOWNWARD) || defined(FE_TONEAREST) \
|| defined(FE_TOWARDZERO) || defined(FE_UPWARD))
return
fegetround
(
void
);
#else
return
0
;
#endif
}
static
inline
bool
round_away
(
bool
negative
,
bool
last_digit_odd
,
bool
half_bit
,
bool
more_bits
,
int
mode
)
{
switch
(
mode
)
{
#ifdef FE_DOWNWARD
case
FE_DOWNWARD
:
return
negative
&&
(
half_bit
||
more_bits
);
#endif
#ifdef FE_DOWNWARD
case
FE_TONEAREST
:
return
half_bit
&&
(
last_digit_odd
||
more_bits
);
#endif
#ifdef FE_TOWARDZERO
case
FE_TOWARDZERO
:
return
false
;
#endif
#ifdef FE_UPWARD
case
FE_UPWARD
:
return
!
negative
&&
(
half_bit
||
more_bits
);
#endif
default:
return
false
;
}
}
#endif
/* QUADMATH_ROUNDING_MODE_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment