aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2005-10-14 11:06:11 +0000
committerUros Bizjak <uros@kss-loka.si>2005-10-14 11:06:11 +0000
commit6916135f0525d87d0d0c923a2f4b5c14a0e46f36 (patch)
tree2b42f882979ceb19a50970e05a58ae46dcc218a2 /libgfortran
parent2d9822f7400f3cd296e974ad0fa84f6304a8acd9 (diff)
* config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
Change cw and cw_sse variables to unsigned. (SSE): New definition. (has_sse): Use it. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@105402 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog9
-rw-r--r--libgfortran/config/fpu-387.h9
2 files changed, 13 insertions, 5 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 16552eedb5e..64f188ffb9d 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,9 +1,16 @@
+2005-10-14 Uros Bizjak <uros@kss-loka.si>
+
+ * config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
+ Change cw and cw_sse variables to unsigned.
+ (SSE): New definition.
+ (has_sse): Use it.
+
2005-10-13 Thomas Koenig <Thomas.Koenig@online.de>
* io/unix.c(fd_alloc_r_at): Use read() instead of do_read()
only in case of special files (e.g. terminals).
-2005-20-13 Uros Bizjak <uros@kss-loka.si>
+2005-10-13 Uros Bizjak <uros@kss-loka.si>
* config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
diff --git a/libgfortran/config/fpu-387.h b/libgfortran/config/fpu-387.h
index e7f35182e0c..bf9fbc8efce 100644
--- a/libgfortran/config/fpu-387.h
+++ b/libgfortran/config/fpu-387.h
@@ -28,6 +28,7 @@ License along with libgfortran; see the file COPYING. If not,
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#define SSE (1 << 25)
static int
has_sse (void)
@@ -58,7 +59,7 @@ has_sse (void)
: "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
: "0" (1));
- if (edx & (1 << 25))
+ if (edx & SSE)
return 1;
return 0;
@@ -67,8 +68,8 @@ has_sse (void)
void set_fpu (void)
{
- short cw;
- int cw_sse;
+ unsigned short cw;
+ unsigned int cw_sse;
/* i387 -- see linux <fpu_control.h> header file for details. */
#define _FPU_MASK_IM 0x01
@@ -90,7 +91,7 @@ void set_fpu (void)
if (has_sse())
{
/* SSE */
- asm volatile ("stmxcsr %0" : : "=m" (cw_sse));
+ asm volatile ("stmxcsr %0" : "=m" (cw_sse));
cw_sse &= 0xFFFF0000;
if (options.fpe & GFC_FPE_INVALID) cw_sse |= 1 << 7;
if (options.fpe & GFC_FPE_DENORMAL) cw_sse |= 1 << 8;