Line 1... |
Line 1... |
|
/* =============================================================================
|
/*
|
|
===============================================================================
|
|
|
|
This GNU assembler source file is part of TestFloat, Release 2a, a package
|
This GNU assembler source file is part of TestFloat, Release 2a, a package
|
of programs for testing the correctness of floating-point arithmetic
|
of programs for testing the correctness of floating-point arithmetic
|
complying to the IEC/IEEE Standard for Floating-Point.
|
complying to the IEC/IEEE Standard for Floating-Point.
|
|
|
Line 18... |
Line 16... |
Derivative works are acceptable, even for commercial purposes, so long as
|
Derivative works are acceptable, even for commercial purposes, so long as
|
(1) they include prominent notice that the work is derivative, and (2) they
|
(1) they include prominent notice that the work is derivative, and (2) they
|
include prominent notice akin to these four paragraphs for those parts of
|
include prominent notice akin to these four paragraphs for those parts of
|
this code that are retained.
|
this code that are retained.
|
|
|
Modified for use with or1ksim's testsuite.
|
Modified for use with or1ksim's testsuite. Updated for GCC 4.5.1.
|
|
|
Contributor Julius Baxter
|
Contributor Julius Baxter
|
|
Contributor Jeremy Bennett
|
|
|
===============================================================================
|
============================================================================= */
|
*/
|
|
|
|
.text
|
.text
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_int32_to_float32
|
.global syst_int32_to_float32
|
_syst_int32_to_float32:
|
syst_int32_to_float32:
|
lf.itof.s r11, r3
|
lf.itof.s r11, r3
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
|
|
Line 46... |
Line 44... |
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_to_int32_round_to_zero
|
.global syst_float32_to_int32_round_to_zero
|
_syst_float32_to_int32_round_to_zero:
|
syst_float32_to_int32_round_to_zero:
|
lf.ftoi.s r11, r3
|
lf.ftoi.s r11, r3
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_to_int32
|
.global syst_float32_to_int32
|
_syst_float32_to_int32:
|
syst_float32_to_int32:
|
lf.ftoi.s r11, r3
|
lf.ftoi.s r11, r3
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_round_to_int
|
.global syst_float32_round_to_int
|
_syst_float32_round_to_int:
|
syst_float32_round_to_int:
|
lf.ftoi.s r11, r3
|
lf.ftoi.s r11, r3
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_add
|
.global syst_float32_add
|
_syst_float32_add:
|
syst_float32_add:
|
lf.add.s r11, r3, r4
|
lf.add.s r11, r3, r4
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_sub
|
.global syst_float32_sub
|
_syst_float32_sub:
|
syst_float32_sub:
|
lf.sub.s r11, r3, r4
|
lf.sub.s r11, r3, r4
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_mul
|
.global syst_float32_mul
|
_syst_float32_mul:
|
syst_float32_mul:
|
lf.mul.s r11, r3, r4
|
lf.mul.s r11, r3, r4
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_div
|
.global syst_float32_div
|
_syst_float32_div:
|
syst_float32_div:
|
lf.div.s r11, r3, r4
|
lf.div.s r11, r3, r4
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_eq
|
.global syst_float32_eq
|
_syst_float32_eq:
|
syst_float32_eq:
|
lf.sfeq.s r3, r4
|
lf.sfeq.s r3, r4
|
l.bnf 1f
|
l.bnf 1f
|
l.addi r11, r0, 0
|
l.addi r11, r0, 0
|
l.addi r11, r0, 1
|
l.addi r11, r0, 1
|
1: l.jr r9
|
1: l.jr r9
|
Line 137... |
Line 135... |
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_le
|
.global syst_float32_le
|
_syst_float32_le:
|
syst_float32_le:
|
lf.sfle.s r3, r4
|
lf.sfle.s r3, r4
|
l.bnf 1f
|
l.bnf 1f
|
l.addi r11, r0, 0
|
l.addi r11, r0, 0
|
l.addi r11, r0, 1
|
l.addi r11, r0, 1
|
1: l.jr r9
|
1: l.jr r9
|
Line 151... |
Line 149... |
/*
|
/*
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
*/
|
*/
|
.align 4
|
.align 4
|
.global _syst_float32_lt
|
.global syst_float32_lt
|
_syst_float32_lt:
|
syst_float32_lt:
|
lf.sflt.s r3, r4
|
lf.sflt.s r3, r4
|
l.bnf 1f
|
l.bnf 1f
|
l.addi r11, r0, 0
|
l.addi r11, r0, 0
|
l.addi r11, r0, 1
|
l.addi r11, r0, 1
|
1: l.jr r9
|
1: l.jr r9
|