Changeset b60faf7 in mainline


Ignore:
Timestamp:
2012-10-07T08:38:15Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e9d0ed4
Parents:
d948095
Message:

Use sub_float() for addends with different sign bit in softfloat1 test.

add_float() and sub_float() can only work with operands with the same
sign. Flip the sign bits and convert addition to subtraction as
necessary.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tester/float/softfloat1.c

    rd948095 rb60faf7  
    3131#include <sftypes.h>
    3232#include <add.h>
     33#include <sub.h>
    3334#include <bool.h>
    3435#include "../tester.h"
     
    7172                        sa.val = float_op_a[i];
    7273                        sb.val = float_op_b[j];
    73                         sc.data = add_float(sa.data, sb.data);
    74                        
     74                        if (sa.data.parts.sign == sb.data.parts.sign)
     75                                sc.data = add_float(sa.data, sb.data);
     76                        else if (sa.data.parts.sign) {
     77                                sa.data.parts.sign = 0;
     78                                sc.data = sub_float(sb.data, sa.data);
     79                        } else {
     80                                sb.data.parts.sign = 0;
     81                                sc.data = sub_float(sa.data, sb.data);
     82                        }
     83                               
    7584                        cmptype_t ic = (cmptype_t) (c * PRECISION);
    7685                        cmptype_t isc = (cmptype_t) (sc.val * PRECISION);
Note: See TracChangeset for help on using the changeset viewer.