diff --git a/.gitignore b/.gitignore
index 8e104f3e64..5458a26994 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,8 +57,8 @@ coverage.txt
go.sum
-life/resolver/builtins/build
-life/resolver/softfloat/*
+life/resolver/builtins/build/
+
mpc.rlp
consensus/cbft/data/
diff --git a/Makefile b/Makefile
index 0768bf8b03..ac5b5fc6d5 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,20 @@ platon-with-mpc:
@echo "Done building platon with mpc."
@echo "Run \"$(GOBIN)/platon\" to launch platon."
+platon-with-vc:
+ build/build_deps.sh
+ build/build_snark.sh
+ build/env.sh go run build/ci.go install -vc on ./cmd/platon
+ @echo "Done building platon with vc."
+ @echo "Run \"$(GOBIN)/platon\" to launch platon."
+
+platon-with-mv:
+ build/build_deps.sh
+ build/build_snark.sh
+ build/env.sh go run build/ci.go install -mv on ./cmd/platon
+ @echo "Done building platon with vc."
+ @echo "Run \"$(GOBIN)/platon\" to launch platon."
+
swarm:
build/env.sh go run build/ci.go install ./cmd/swarm
@echo "Done building."
@@ -40,6 +54,16 @@ all-with-mpc:
build/build_deps.sh
build/env.sh go run build/ci.go install -mpc on
+all-with-vc:
+ build/build_deps.sh
+ build/build_snark.sh
+ build/env.sh go run build/ci.go install -vc on
+
+all-with-mv:
+ build/build_deps.sh
+ build/build_snark.sh
+ build/env.sh go run build/ci.go install -mv on
+
android:
build/env.sh go run build/ci.go aar --local
@echo "Done building."
diff --git a/README.md b/README.md
index 421cf0b0aa..dbb82e23c2 100644
--- a/README.md
+++ b/README.md
@@ -127,4 +127,4 @@ Check the balance:
OK, it seems that the chain is running correctly
-For more information, please visit our [wiki](https://github.com/PlatONnetwork/wiki/wiki)
\ No newline at end of file
+For more information, please visit our [wiki](https://github.com/PlatONnetwork/wiki/wiki)
diff --git a/build/build_snark.sh b/build/build_snark.sh
new file mode 100644
index 0000000000..c0db730004
--- /dev/null
+++ b/build/build_snark.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+
+DISTRO=""
+Get_Dist_Name()
+{
+ if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
+ DISTRO='CentOS'
+ PM='yum'
+ elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then
+ DISTRO='RHEL'
+ PM='yum'
+ elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then
+ DISTRO='Aliyun'
+ PM='yum'
+ elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then
+ DISTRO='Fedora'
+ PM='yum'
+ elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then
+ DISTRO='Debian'
+ PM='apt'
+ elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then
+ DISTRO='Ubuntu'
+ PM='apt'
+ elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then
+ DISTRO='Raspbian'
+ PM='apt'
+ else
+ DISTRO='unknow'
+ fi
+# echo $DISTRO;
+}
+Get_Dist_Name
+echo $DISTRO
+
+if [ ! -f "build/build_snark.sh" ]; then
+ echo "$0 must be run from the root of the repository."
+ exit 2
+fi
+
+root=`pwd`
+root=$root/life/resolver
+
+if [ "`ls $root/vc`" = "" ]; then
+ git submodule add https://github.com/PlatONnetwork/libcsnark.git life/resolver/vc
+fi
+
+if [ "`ls $root/vc/build`" = "" ]; then
+ cd $root/vc
+ mkdir -p build
+ git submodule update --init --recursive
+fi
+
+if [ "`ls $root/libcsnark`" = "" ]; then
+ cd $root
+ mkdir -p libcsnark
+fi
+
+# Build vc
+SF_BUILD=$root/vc/build
+MAKE="make"
+if [ `expr substr $(uname -s) 1 5` = "Linux" ]; then
+ if [ "$DISTRO" = "Ubuntu" ]; then
+ sudo apt-get install llvm-6.0-dev llvm-6.0 libclang-6.0-dev
+ sudo apt-get install libgmpxx4ldbl libgmp-dev libprocps4-dev
+ elif [ "$DISTRO" = "CentOS" ]; then
+ sudo yum install -y llvm clang gmp procps
+ else
+ echo "not support system $DISTRO"
+ fi
+else
+ echo "not support system $(uname -s)"
+ exit 0
+fi
+
+cd $SF_BUILD
+#$MAKE clean
+cmake ../ -DMONTGOMERY_OUTPUT=OFF -DBINARY_OUTPUT=OFF
+$MAKE
+cp ./src/libcsnark.a ../../libcsnark/libcsnark.a
+cp ./depends/libsnark/depends/libff/libff/libff.a ../../libcsnark/libff.a
+cp ./depends/libsnark/libsnark/libsnark.a ../../libcsnark/libsnark.a
+
diff --git a/build/ci.go b/build/ci.go
index 0308a126f1..63eee0f9b9 100644
--- a/build/ci.go
+++ b/build/ci.go
@@ -218,6 +218,8 @@ func doInstall(cmdline []string) {
cc = flag.String("cc", "", "C compiler to cross build with")
mpc = flag.String("mpc", "off", "Switch of mpc , on for compiling MPC, off for without compiling")
gcflags = flag.String("gcflags", "", "Turn off compiler code optimization and function inlining")
+ vc = flag.String("vc", "off", "Switch of vc , on for compiling VC, off for without compiling")
+ mv = flag.String("mv", "off", "Switch of mv , on for compilingMPC and VC, off for without compiling")
)
flag.CommandLine.Parse(cmdline)
env := build.Env()
@@ -252,6 +254,12 @@ func doInstall(cmdline []string) {
if *gcflags == "on" {
goinstall.Args = append(goinstall.Args, "-gcflags=-N -l")
}
+ if *vc == "on" {
+ goinstall.Args = append(goinstall.Args, "-tags=vcon")
+ }
+ if *mv == "on" {
+ goinstall.Args = append(goinstall.Args, "-tags=mpcon vcon")
+ }
goinstall.Args = append(goinstall.Args, packages...)
build.MustRun(goinstall)
return
diff --git a/cmd/platon/config.go b/cmd/platon/config.go
index 141470912e..cb20ef6267 100644
--- a/cmd/platon/config.go
+++ b/cmd/platon/config.go
@@ -140,6 +140,9 @@ func makeConfigNode(ctx *cli.Context) (*node.Node, gethConfig) {
// pass on the rpc port to mpc pool conf.
cfg.Eth.MPCPool.LocalRpcPort = cfg.Node.HTTPPort
+ // pass on the rpc port to vc pool conf.
+ cfg.Eth.VCPool.LocalRpcPort = cfg.Node.HTTPPort
+
// load cbft config file.
if cbftConfig := cfg.Eth.LoadCbftConfig(cfg.Node); cbftConfig != nil {
cfg.Eth.CbftConfig = *cbftConfig
diff --git a/cmd/platon/main.go b/cmd/platon/main.go
index eaa50c9119..e8d5701730 100644
--- a/cmd/platon/main.go
+++ b/cmd/platon/main.go
@@ -172,6 +172,11 @@ var (
utils.MPCIceFileFlag,
utils.MPCActorFlag,
}
+ vcFlags = []cli.Flag{
+ utils.VCEnabledFlag,
+ utils.VCActorFlag,
+ utils.VCPasswordFlag,
+ }
)
func init() {
@@ -218,6 +223,8 @@ func init() {
// for mpc
app.Flags = append(app.Flags, mpcFlags...)
+ // for vc
+ app.Flags = append(app.Flags, vcFlags...)
app.Before = func(ctx *cli.Context) error {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/cmd/platon/usage.go b/cmd/platon/usage.go
index 310d0fc0cd..44c1b3fa58 100644
--- a/cmd/platon/usage.go
+++ b/cmd/platon/usage.go
@@ -253,6 +253,14 @@ var AppHelpFlagGroups = []flagGroup{
utils.MPCIceFileFlag,
},
},
+ {
+ Name: "VC COMPUTE",
+ Flags: []cli.Flag{
+ utils.VCEnabledFlag,
+ utils.VCActorFlag,
+ utils.VCPasswordFlag,
+ },
+ },
{
Name: "MISC",
},
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 8c40ad366b..fab0fcba53 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -282,7 +282,7 @@ var (
Value: eth.DefaultConfig.TxPool.GlobalQueue,
}
TxPoolGlobalTxCountFlag = cli.Uint64Flag{
- Name: "txpool.globaltxcount",
+ Name: "txpool.globaltxcount",
Usage: "Maximum number of transactions for package",
Value: eth.DefaultConfig.TxPool.GlobalTxCount,
}
@@ -395,8 +395,6 @@ var (
Value: "",
}
-
-
VMEnableDebugFlag = cli.BoolFlag{
Name: "vmdebug",
Usage: "Record information useful for VM and contract debugging",
@@ -641,7 +639,7 @@ var (
Value: "",
}
MPCActorFlag = cli.StringFlag{
- Name: "mpc.actor",
+ Name: "mpc.actor",
Usage: "The address of actor to exec mpc compute",
Value: "",
}
@@ -649,7 +647,21 @@ var (
Name: "mpc",
Usage: "Enable mpc compute",
}
+ VCEnabledFlag = cli.BoolFlag{
+ Name: "vc",
+ Usage: "Enable vc compute",
+ }
+ VCActorFlag = cli.StringFlag{
+ Name: "vc.actor",
+ Usage: "The address of vc to exec set result",
+ Value: "",
+ }
+ VCPasswordFlag = cli.StringFlag{
+ Name: "vc.password",
+ Usage: "the pwd of unlock actor",
+ Value: "",
+ }
)
// MakeDataDir retrieves the currently requested data directory, terminating
@@ -909,7 +921,6 @@ func setEtherbase(ctx *cli.Context, ks *keystore.KeyStore, cfg *eth.Config) {
}
}
-
// MakePasswordList reads password lines from the file specified by the global --password flag.
func MakePasswordList(ctx *cli.Context) []string {
path := ctx.GlobalString(PasswordFileFlag.Name)
@@ -1108,6 +1119,21 @@ func setMpcPool(ctx *cli.Context, cfg *core.MPCPoolConfig) {
}
}
+func setVcPool(ctx *cli.Context, cfg *core.VCPoolConfig) {
+ if ctx.GlobalIsSet(VCEnabledFlag.Name) {
+ cfg.VCEnable = ctx.GlobalBool(VCEnabledFlag.Name)
+ }
+ if ctx.GlobalIsSet(VCActorFlag.Name) {
+ cfg.VcActor = common.HexToAddress(ctx.GlobalString(VCActorFlag.Name))
+ fmt.Println("cfg.VcActor", cfg.VcActor)
+ }
+
+ if ctx.GlobalIsSet(VCPasswordFlag.Name) {
+ cfg.VcPassword = ctx.GlobalString(VCPasswordFlag.Name)
+ }
+
+}
+
func setEthash(ctx *cli.Context, cfg *eth.Config) {
if ctx.GlobalIsSet(EthashCacheDirFlag.Name) {
cfg.Ethash.CacheDir = ctx.GlobalString(EthashCacheDirFlag.Name)
@@ -1192,6 +1218,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
setTxPool(ctx, &cfg.TxPool)
// for mpc compute
setMpcPool(ctx, &cfg.MPCPool)
+ setVcPool(ctx, &cfg.VCPool)
setEthash(ctx, cfg)
if ctx.GlobalIsSet(SyncModeFlag.Name) {
@@ -1453,7 +1480,7 @@ func MakeChain(ctx *cli.Context, stack *node.Node) (chain *core.BlockChain, chai
Fatalf("--%s must be either 'full' or 'archive'", GCModeFlag.Name)
}
cache := &core.CacheConfig{
- Disabled: /*ctx.GlobalString(GCModeFlag.Name) == "archive"*/ true,
+ Disabled:/*ctx.GlobalString(GCModeFlag.Name) == "archive"*/ true,
TrieNodeLimit: eth.DefaultConfig.TrieCache,
TrieTimeLimit: eth.DefaultConfig.TrieTimeout,
}
diff --git a/consensus/cbft/cbft.go b/consensus/cbft/cbft.go
index 75a5f7e18d..45999bcfc9 100644
--- a/consensus/cbft/cbft.go
+++ b/consensus/cbft/cbft.go
@@ -2,6 +2,11 @@
package cbft
import (
+ "bytes"
+ "container/list"
+ "crypto/ecdsa"
+ "encoding/hex"
+ "errors"
"github.com/PlatONnetwork/PlatON-Go/common"
"github.com/PlatONnetwork/PlatON-Go/common/hexutil"
"github.com/PlatONnetwork/PlatON-Go/consensus"
@@ -17,11 +22,6 @@ import (
"github.com/PlatONnetwork/PlatON-Go/params"
"github.com/PlatONnetwork/PlatON-Go/rlp"
"github.com/PlatONnetwork/PlatON-Go/rpc"
- "bytes"
- "container/list"
- "crypto/ecdsa"
- "encoding/hex"
- "errors"
"math"
"math/big"
"sync"
@@ -91,7 +91,7 @@ var cbft *Cbft
// New creates a concurrent BFT consensus engine
func New(config *params.CbftConfig, blockSignatureCh chan *cbfttypes.BlockSignature, cbftResultCh chan *cbfttypes.CbftResult, highestLogicalBlockCh chan *types.Block) *Cbft {
pposm.PrintObject("Get ppos config:", *config)
- _ppos := newPpos(/*config.InitialNodes, */config)
+ _ppos := newPpos( /*config.InitialNodes, */ config)
cbft = &Cbft{
config: config,
@@ -439,10 +439,10 @@ func (cbft *Cbft) sign(ext *BlockExt) {
//send the BlockSignature to channel
blockSign := &cbfttypes.BlockSignature{
- SignHash: sealHash,
- Hash: blockHash,
- Number: ext.block.Number(),
- Signature: sign,
+ SignHash: sealHash,
+ Hash: blockHash,
+ Number: ext.block.Number(),
+ Signature: sign,
ParentHash: ext.block.ParentHash(),
}
cbft.blockSignOutCh <- blockSign
@@ -749,10 +749,22 @@ func (cbft *Cbft) setDescendantInTree(child *BlockExt) {
// removeBadBlock removes bad block executed error from the tree structure and cbft.blockExtMap.
func (cbft *Cbft) removeBadBlock(badBlock *BlockExt) {
tailorTree(badBlock)
- for _, child := range badBlock.children {
+ cbft.removeByTailored(badBlock)
+ /*for _, child := range badBlock.children {
child.parent = nil
}
- delete(cbft.blockExtMap, badBlock.block.Hash())
+ delete(cbft.blockExtMap, badBlock.block.Hash())*/
+}
+
+func (cbft *Cbft) removeByTailored(badBlock *BlockExt) {
+ if len(badBlock.children) > 0 {
+ for _, child := range badBlock.children {
+ cbft.removeByTailored(child)
+ delete(cbft.blockExtMap, child.block.Hash())
+ }
+ } else {
+ delete(cbft.blockExtMap, badBlock.block.Hash())
+ }
}
// signReceiver handles the received block signature
@@ -1155,14 +1167,16 @@ func (cbft *Cbft) flushReadyBlock() bool {
// tailorTree tailors the old tree from new root
func tailorTree(newRoot *BlockExt) {
- for i := 0; i < len(newRoot.parent.children); i++ {
- //remove newRoot from its parent's children list
- if newRoot.parent.children[i].block.Hash() == newRoot.block.Hash() {
- newRoot.parent.children = append(newRoot.parent.children[:i], newRoot.parent.children[i+1:]...)
- break
+ if newRoot.parent != nil && newRoot.parent.children != nil {
+ for i := 0; i < len(newRoot.parent.children); i++ {
+ //remove newRoot from its parent's children list
+ if newRoot.parent.children[i].block.Hash() == newRoot.block.Hash() {
+ newRoot.parent.children = append(newRoot.parent.children[:i], newRoot.parent.children[i+1:]...)
+ break
+ }
}
+ newRoot.parent = nil
}
- newRoot.parent = nil
}
// cleanByTailoredTree removes all blocks in the tree which has been tailored.
@@ -1816,4 +1830,4 @@ func (cbft *Cbft) GetOwnNodeID() discover.NodeID {
func (cbft *Cbft) SetNodeCache(state *state.StateDB, parentNumber, currentNumber *big.Int, parentHash, currentHash common.Hash) error {
log.Info("cbft SetNodeCache", "parentNumber", parentNumber, "parentHash", parentHash, "currentNumber", currentNumber, "currentHash", currentHash)
return cbft.ppos.SetNodeCache(state, parentNumber, currentNumber, parentHash, currentHash)
-}
\ No newline at end of file
+}
diff --git a/core/blockchain.go b/core/blockchain.go
index 0baab01436..775afbe130 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -18,6 +18,15 @@
package core
import (
+ "errors"
+ "fmt"
+ "io"
+ "math/big"
+ mrand "math/rand"
+ "sync"
+ "sync/atomic"
+ "time"
+
"github.com/PlatONnetwork/PlatON-Go/common"
"github.com/PlatONnetwork/PlatON-Go/common/mclock"
"github.com/PlatONnetwork/PlatON-Go/common/prque"
@@ -34,15 +43,7 @@ import (
"github.com/PlatONnetwork/PlatON-Go/params"
"github.com/PlatONnetwork/PlatON-Go/rlp"
"github.com/PlatONnetwork/PlatON-Go/trie"
- "errors"
- "fmt"
"github.com/hashicorp/golang-lru"
- "io"
- "math/big"
- mrand "math/rand"
- "sync"
- "sync/atomic"
- "time"
)
var (
@@ -136,9 +137,9 @@ type BlockChain struct {
badBlocks *lru.Cache // Bad block cache
shouldPreserve func(*types.Block) bool // Function used to determine whether should preserve the given block.
- shouldElectionFn shouldElectionFn
- shouldSwitchFn shouldSwitchFn
- attemptAddConsensusPeerFn attemptAddConsensusPeerFn
+ shouldElectionFn shouldElectionFn
+ shouldSwitchFn shouldSwitchFn
+ attemptAddConsensusPeerFn attemptAddConsensusPeerFn
}
// NewBlockChain returns a fully initialised block chain using information
@@ -939,7 +940,8 @@ func (bc *BlockChain) WriteBlockWithState(block *types.Block, receipts []*types.
return NonStatTy, err
}
- log.Debug("【The root when the write chain after calls commit】", "blocknumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "root", root.Hex())
+ // TODO
+ //log.Debug("【The root when the write chain after calls commit】", "blocknumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "root", root.Hex())
triedb := bc.stateCache.TrieDB()
@@ -1044,8 +1046,9 @@ func (bc *BlockChain) WriteBlockWithState(block *types.Block, receipts []*types.
bc.insert(block)
// parse block and retrieves txs
- receipts:= bc.GetReceiptsByHash(block.Hash())
+ receipts := bc.GetReceiptsByHash(block.Hash())
MPC_POOL.InjectTxs(block, receipts, bc, state)
+ VC_POOL.InjectTxs(block, receipts, bc, state)
}
bc.futureBlocks.Remove(block.Hash())
return status, nil
@@ -1205,9 +1208,11 @@ func (bc *BlockChain) insertChain(chain types.Blocks) (int, []interface{}, []*ty
if err != nil {
return i, events, coalescedLogs, err
}
- root := state.IntermediateRoot(bc.Config().IsEIP158(block.Number()))
- log.Debug("【Node synchronization: call inserChain】Before executing the transaction", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
-
+
+ // TODO
+ //root := state.IntermediateRoot(bc.Config().IsEIP158(block.Number()))
+ //log.Debug("【Node synchronization: call inserChain】Before executing the transaction", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+
// Process block using the parent state as reference point.
receipts, logs, usedGas, err := bc.processor.Process(block, state, bc.vmConfig)
if err != nil {
@@ -1269,8 +1274,11 @@ func (bc *BlockChain) insertChain(chain types.Blocks) (int, []interface{}, []*ty
//joey.lyu
func (bc *BlockChain) ProcessDirectly(block *types.Block, state *state.StateDB, parent *types.Block) (types.Receipts, error) {
log.Info("-----------ProcessDirectly---------", "blockNumber", block.NumberU64(), "parentNumber", parent.NumberU64(), "parentStateRoot", parent.Root())
- root := state.IntermediateRoot(bc.Config().IsEIP158(block.Number()))
- log.Debug("【The Consensus node synchronization】Before executing the transaction", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+
+ // TODO
+ //root := state.IntermediateRoot(bc.Config().IsEIP158(block.Number()))
+ //log.Debug("【The Consensus node synchronization】Before executing the transaction", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+
// Process block using the parent state as reference point.
receipts, logs, usedGas, err := bc.processor.Process(block, state, bc.vmConfig)
if err != nil {
diff --git a/core/blockchain_cache.go b/core/blockchain_cache.go
index e204ff25cb..9940ea85ea 100644
--- a/core/blockchain_cache.go
+++ b/core/blockchain_cache.go
@@ -71,6 +71,7 @@ func (bcc *BlockChainCache) ReadReceipts(sealHash common.Hash) []*types.Receipt
bcc.receiptsMu.RLock()
defer bcc.receiptsMu.RUnlock()
if obj, exist := bcc.receiptsCache[sealHash]; exist {
+
return obj.receipts
}
return nil
diff --git a/core/ppos/candidate_state.go b/core/ppos/candidate_state.go
index 058c740b1c..4f8c265bdb 100644
--- a/core/ppos/candidate_state.go
+++ b/core/ppos/candidate_state.go
@@ -150,6 +150,7 @@ func (c *CandidatePool) initDataByState(state vm.StateDB, flag int) error {
return CandidateDecodeErr
} else {
if nil != ca {
+ PrintObject("Id:"+ witnessId.String()+", pre can", ca)
c.preOriginCandidates[witnessId] = ca
} else {
delete(c.preOriginCandidates, witnessId)
@@ -174,6 +175,7 @@ func (c *CandidatePool) initDataByState(state vm.StateDB, flag int) error {
return CandidateDecodeErr
} else {
if nil != ca {
+ PrintObject("Id:"+ witnessId.String()+", cur can", ca)
c.originCandidates[witnessId] = ca
} else {
delete(c.originCandidates, witnessId)
@@ -199,6 +201,7 @@ func (c *CandidatePool) initDataByState(state vm.StateDB, flag int) error {
return CandidateDecodeErr
} else {
if nil != ca {
+ PrintObject("Id:"+ witnessId.String()+", next can", ca)
c.nextOriginCandidates[witnessId] = ca
} else {
delete(c.nextOriginCandidates, witnessId)
@@ -229,6 +232,7 @@ func (c *CandidatePool) initDataByState(state vm.StateDB, flag int) error {
return CandidateDecodeErr
} else {
if nil != ca {
+ PrintObject("Id:"+ immediateId.String()+", im can", ca)
c.immediateCandates[immediateId] = ca
canCache = append(canCache, ca)
} else {
@@ -258,6 +262,7 @@ func (c *CandidatePool) initDataByState(state vm.StateDB, flag int) error {
return CandidateDecodeErr
} else {
if nil != arr && len(arr) != 0 {
+ PrintObject("Id:"+ defeatId.String()+", defeat canArr", arr)
c.defeatCandidates[defeatId] = arr
} else {
delete(c.defeatCandidates, defeatId)
@@ -1057,6 +1062,7 @@ func (c *CandidatePool) GetAllWitness(state *state.StateDB) ([]*discover.Node, [
}
func (c *CandidatePool) GetRefundInterval() uint64 {
+ log.Info("Call GetRefundInterval", "RefundBlockNumber", c.RefundBlockNumber)
return c.RefundBlockNumber
}
@@ -1368,9 +1374,9 @@ func (c *CandidatePool) MaxCount() uint64 {
func getPreviousWitnessIdsState(state vm.StateDB) ([]discover.NodeID, error) {
var witnessIds []discover.NodeID
- log.Debug("Call getPreviousWitnessIdsState DecodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessListKey(), len(PreviousWitnessListKey()), common.Bytes2Hex(PreviousWitnessListKey())))
+ //log.Debug("Call getPreviousWitnessIdsState DecodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessListKey(), len(PreviousWitnessListKey()), common.Bytes2Hex(PreviousWitnessListKey())))
if valByte := state.GetState(common.CandidateAddr, PreviousWitnessListKey()); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getPreviousWitnessIdsState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getPreviousWitnessIdsState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &witnessIds); nil != err {
return nil, err
}
@@ -1381,16 +1387,16 @@ func getPreviousWitnessIdsState(state vm.StateDB) ([]discover.NodeID, error) {
}
func setPreviosWitnessIdsState(state vm.StateDB, arrVal []byte) {
- log.Debug("SETTING Call setPreviosWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessListKey(), len(PreviousWitnessListKey()), common.Bytes2Hex(PreviousWitnessListKey())))
- log.Debug("SETTING Call setPreviosWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
+ //log.Debug("SETTING Call setPreviosWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessListKey(), len(PreviousWitnessListKey()), common.Bytes2Hex(PreviousWitnessListKey())))
+ //log.Debug("SETTING Call setPreviosWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
state.SetState(common.CandidateAddr, PreviousWitnessListKey(), arrVal)
}
func getPreviousWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Candidate, error) {
var can types.Candidate
- log.Debug("Call getPreviousWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessKey(id), len(PreviousWitnessKey(id)), common.Bytes2Hex(PreviousWitnessKey(id))))
+ //log.Debug("Call getPreviousWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessKey(id), len(PreviousWitnessKey(id)), common.Bytes2Hex(PreviousWitnessKey(id))))
if valByte := state.GetState(common.CandidateAddr, PreviousWitnessKey(id)); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getPreviousWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getPreviousWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &can); nil != err {
return nil, err
}
@@ -1401,16 +1407,16 @@ func getPreviousWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Can
}
func setPreviousWitnessState(state vm.StateDB, id discover.NodeID, val []byte) {
- log.Debug("SETTING Call setPreviousWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessKey(id), len(PreviousWitnessKey(id)), common.Bytes2Hex(PreviousWitnessKey(id))))
- log.Debug("SETTING Call setPreviousWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
+ //log.Debug("SETTING Call setPreviousWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", PreviousWitnessKey(id), len(PreviousWitnessKey(id)), common.Bytes2Hex(PreviousWitnessKey(id))))
+ //log.Debug("SETTING Call setPreviousWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
state.SetState(common.CandidateAddr, PreviousWitnessKey(id), val)
}
func getWitnessIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
var witnessIds []discover.NodeID
- log.Debug("Call getWitnessIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessListKey(), len(WitnessListKey()), common.Bytes2Hex(WitnessListKey())))
+ //log.Debug("Call getWitnessIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessListKey(), len(WitnessListKey()), common.Bytes2Hex(WitnessListKey())))
if valByte := state.GetState(common.CandidateAddr, WitnessListKey()); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getWitnessIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getWitnessIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &witnessIds); nil != err {
return nil, err
}
@@ -1421,16 +1427,16 @@ func getWitnessIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
}
func setWitnessIdsState(state vm.StateDB, arrVal []byte) {
- log.Debug("SETTING Call setWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessListKey(), len(WitnessListKey()), common.Bytes2Hex(WitnessListKey())))
- log.Debug("SETTING Call setWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
+ //log.Debug("SETTING Call setWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessListKey(), len(WitnessListKey()), common.Bytes2Hex(WitnessListKey())))
+ //log.Debug("SETTING Call setWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
state.SetState(common.CandidateAddr, WitnessListKey(), arrVal)
}
func getWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Candidate, error) {
var can types.Candidate
- log.Debug("Call getWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessKey(id), len(WitnessKey(id)), common.Bytes2Hex(WitnessKey(id))))
+ //log.Debug("Call getWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessKey(id), len(WitnessKey(id)), common.Bytes2Hex(WitnessKey(id))))
if valByte := state.GetState(common.CandidateAddr, WitnessKey(id)); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &can); nil != err {
return nil, err
}
@@ -1441,16 +1447,16 @@ func getWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Candidate,
}
func setWitnessState(state vm.StateDB, id discover.NodeID, val []byte) {
- log.Debug("SETTING Call setWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessKey(id), len(WitnessKey(id)), common.Bytes2Hex(WitnessKey(id))))
- log.Debug("SETTING Call setWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
+ //log.Debug("SETTING Call setWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", WitnessKey(id), len(WitnessKey(id)), common.Bytes2Hex(WitnessKey(id))))
+ //log.Debug("SETTING Call setWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
state.SetState(common.CandidateAddr, WitnessKey(id), val)
}
func getNextWitnessIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
var nextWitnessIds []discover.NodeID
- log.Debug("Call getNextWitnessIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessListKey(), len(NextWitnessListKey()), common.Bytes2Hex(NextWitnessListKey())))
+ //log.Debug("Call getNextWitnessIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessListKey(), len(NextWitnessListKey()), common.Bytes2Hex(NextWitnessListKey())))
if valByte := state.GetState(common.CandidateAddr, NextWitnessListKey()); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getNextWitnessIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getNextWitnessIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &nextWitnessIds); nil != err {
return nil, err
}
@@ -1461,16 +1467,16 @@ func getNextWitnessIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
}
func setNextWitnessIdsState(state vm.StateDB, arrVal []byte) {
- log.Debug("SETTING Call setNextWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessListKey(), len(NextWitnessListKey()), common.Bytes2Hex(NextWitnessListKey())))
- log.Debug("SETTING Call setNextWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
+ //log.Debug("SETTING Call setNextWitnessIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessListKey(), len(NextWitnessListKey()), common.Bytes2Hex(NextWitnessListKey())))
+ //log.Debug("SETTING Call setNextWitnessIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
state.SetState(common.CandidateAddr, NextWitnessListKey(), arrVal)
}
func getNextWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Candidate, error) {
var can types.Candidate
- log.Debug("Call getNextWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessKey(id), len(NextWitnessKey(id)), common.Bytes2Hex(NextWitnessKey(id))))
+ //log.Debug("Call getNextWitnessByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessKey(id), len(NextWitnessKey(id)), common.Bytes2Hex(NextWitnessKey(id))))
if valByte := state.GetState(common.CandidateAddr, NextWitnessKey(id)); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getNextWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getNextWitnessByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &can); nil != err {
return nil, err
}
@@ -1481,16 +1487,16 @@ func getNextWitnessByState(state vm.StateDB, id discover.NodeID) (*types.Candida
}
func setNextWitnessState(state vm.StateDB, id discover.NodeID, val []byte) {
- log.Debug("SETTING Call setNextWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessKey(id), len(NextWitnessKey(id)), common.Bytes2Hex(NextWitnessKey(id))))
- log.Debug("SETTING Call setNextWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
+ //log.Debug("SETTING Call setNextWitnessState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", NextWitnessKey(id), len(NextWitnessKey(id)), common.Bytes2Hex(NextWitnessKey(id))))
+ //log.Debug("SETTING Call setNextWitnessState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
state.SetState(common.CandidateAddr, NextWitnessKey(id), val)
}
func getImmediateIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
var immediateIds []discover.NodeID
- log.Debug("Call getImmediateIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateListKey(), len(ImmediateListKey()), common.Bytes2Hex(ImmediateListKey())))
+ //log.Debug("Call getImmediateIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateListKey(), len(ImmediateListKey()), common.Bytes2Hex(ImmediateListKey())))
if valByte := state.GetState(common.CandidateAddr, ImmediateListKey()); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getImmediateIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getImmediateIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &immediateIds); nil != err {
return nil, err
}
@@ -1501,16 +1507,16 @@ func getImmediateIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
}
func setImmediateIdsState(state vm.StateDB, arrVal []byte) {
- log.Debug("SETTING Call setImmediateIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateListKey(), len(ImmediateListKey()), common.Bytes2Hex(ImmediateListKey())))
- log.Debug("SETTING Call setImmediateIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
+ //log.Debug("SETTING Call setImmediateIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateListKey(), len(ImmediateListKey()), common.Bytes2Hex(ImmediateListKey())))
+ //log.Debug("SETTING Call setImmediateIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
state.SetState(common.CandidateAddr, ImmediateListKey(), arrVal)
}
func getImmediateByState(state vm.StateDB, id discover.NodeID) (*types.Candidate, error) {
var can types.Candidate
- log.Debug("Call getImmediateByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateKey(id), len(ImmediateKey(id)), common.Bytes2Hex(ImmediateKey(id))))
+ //log.Debug("Call getImmediateByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateKey(id), len(ImmediateKey(id)), common.Bytes2Hex(ImmediateKey(id))))
if valByte := state.GetState(common.CandidateAddr, ImmediateKey(id)); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getImmediateByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getImmediateByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &can); nil != err {
return nil, err
}
@@ -1521,16 +1527,16 @@ func getImmediateByState(state vm.StateDB, id discover.NodeID) (*types.Candidate
}
func setImmediateState(state vm.StateDB, id discover.NodeID, val []byte) {
- log.Debug("SETTING Call setImmediateState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateKey(id), len(ImmediateKey(id)), common.Bytes2Hex(ImmediateKey(id))))
- log.Debug("SETTING Call setImmediateState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
+ //log.Debug("SETTING Call setImmediateState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", ImmediateKey(id), len(ImmediateKey(id)), common.Bytes2Hex(ImmediateKey(id))))
+ //log.Debug("SETTING Call setImmediateState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
state.SetState(common.CandidateAddr, ImmediateKey(id), val)
}
func getDefeatIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
var defeatIds []discover.NodeID
- log.Debug("Call getDefeatIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatListKey(), len(DefeatListKey()), common.Bytes2Hex(DefeatListKey())))
+ //log.Debug("Call getDefeatIdsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatListKey(), len(DefeatListKey()), common.Bytes2Hex(DefeatListKey())))
if valByte := state.GetState(common.CandidateAddr, DefeatListKey()); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getDefeatIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getDefeatIdsByState DecodeBytes", "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &defeatIds); nil != err {
return nil, err
}
@@ -1541,16 +1547,16 @@ func getDefeatIdsByState(state vm.StateDB) ([]discover.NodeID, error) {
}
func setDefeatIdsState(state vm.StateDB, arrVal []byte) {
- log.Debug("SETTING Call setDefeatIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatListKey(), len(DefeatListKey()), common.Bytes2Hex(DefeatListKey())))
- log.Debug("SETTING Call setDefeatIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
+ //log.Debug("SETTING Call setDefeatIdsState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatListKey(), len(DefeatListKey()), common.Bytes2Hex(DefeatListKey())))
+ //log.Debug("SETTING Call setDefeatIdsState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", arrVal, len(arrVal), common.Bytes2Hex(arrVal)))
state.SetState(common.CandidateAddr, DefeatListKey(), arrVal)
}
func getDefeatsByState(state vm.StateDB, id discover.NodeID) ([]*types.Candidate, error) {
var canArr []*types.Candidate
- log.Debug("Call getDefeatsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatKey(id), len(DefeatKey(id)), common.Bytes2Hex(DefeatKey(id))))
+ //log.Debug("Call getDefeatsByState DecodeBytes", "Key's content", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatKey(id), len(DefeatKey(id)), common.Bytes2Hex(DefeatKey(id))))
if valByte := state.GetState(common.CandidateAddr, DefeatKey(id)); nil != valByte && len(valByte) != 0 {
- log.Debug("Call getDefeatsByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
+ //log.Debug("Call getDefeatsByState DecodeBytes", "nodeId", id.String(), "[]byte context", fmt.Sprintf(" Pointer:%p ,Value:%+v ,Len:%d,Content' Hash:%v", valByte, valByte, len(valByte), common.Bytes2Hex(valByte)))
if err := rlp.DecodeBytes(valByte, &canArr); nil != err {
return nil, err
}
@@ -1561,8 +1567,8 @@ func getDefeatsByState(state vm.StateDB, id discover.NodeID) ([]*types.Candidate
}
func setDefeatState(state vm.StateDB, id discover.NodeID, val []byte) {
- log.Debug("SETTING Call setDefeatState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatKey(id), len(DefeatKey(id)), common.Bytes2Hex(DefeatKey(id))))
- log.Debug("SETTING Call setDefeatState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
+ //log.Debug("SETTING Call setDefeatState EncodeBytes", "Key's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", DefeatKey(id), len(DefeatKey(id)), common.Bytes2Hex(DefeatKey(id))))
+ //log.Debug("SETTING Call setDefeatState EncodeBytes", "Value's content:", fmt.Sprintf(" Value:%+v ,Len:%d,Content' Hash:%v", val, len(val), common.Bytes2Hex(val)))
state.SetState(common.CandidateAddr, DefeatKey(id), val)
}
diff --git a/core/state_processor.go b/core/state_processor.go
index 40c33556a7..6df55723eb 100644
--- a/core/state_processor.go
+++ b/core/state_processor.go
@@ -78,9 +78,11 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg
receipts = append(receipts, receipt)
allLogs = append(allLogs, receipt.Logs...)
}
- root := statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
- log.Debug("After executing the transaction,Before calling notify series func", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
- log.Debug("After executing the transaction,Before calling notify series func", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
+
+ // TODO
+ //root := statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
+ //log.Debug("After executing the transaction,Before calling notify series func", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+ //log.Debug("After executing the transaction,Before calling notify series func", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
if cbftEngine, ok := p.bc.engine.(consensus.Bft); ok {
// Election call(if match condition)
@@ -94,16 +96,20 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg
cbftEngine.Switch(statedb)
}
}
- root = statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
- log.Debug("After executing the transaction,After calling the notify series func, And before finalize", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
- log.Debug("After executing the transaction,After calling the notify series func, And before finalize", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
+
+ // TODO
+ //root = statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
+ //log.Debug("After executing the transaction,After calling the notify series func, And before finalize", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+ //log.Debug("After executing the transaction,After calling the notify series func, And before finalize", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
// Finalize the block, applying any consensus engine specific extras (e.g. block rewards)
p.engine.Finalize(p.bc, header, statedb, block.Transactions(), block.Uncles(), receipts)
- root = statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
- log.Debug("After executing the transaction,After call finalize", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
- log.Debug("After executing the transaction,After call finalize", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
+
+ // TODO
+ //root = statedb.IntermediateRoot(p.bc.Config().IsEIP158(header.Number))
+ //log.Debug("After executing the transaction,After call finalize", "blockNumber", block.NumberU64(), "blockHash", block.Hash().Hex(), "block.root", block.Root().Hex(), "Real-time state.root", root.Hex())
+ //log.Debug("After executing the transaction,After call finalize", "receipt.root", types.DeriveSha(receipts), "bloom", types.CreateBloom(receipts))
if cbftEngine, ok := p.bc.engine.(consensus.Bft); ok {
// SetNodeCache
diff --git a/core/vc_list.go b/core/vc_list.go
new file mode 100644
index 0000000000..ae0187018e
--- /dev/null
+++ b/core/vc_list.go
@@ -0,0 +1,51 @@
+package core
+
+import (
+ "container/heap"
+ "github.com/PlatONnetwork/PlatON-Go/core/types"
+)
+
+type vcHeap []*types.TransactionWrap
+
+func (h vcHeap) Len() int { return len(h) }
+
+func (h vcHeap) Swap(i, j int) {
+ h[i], h[j] = h[j], h[i]
+}
+
+func (h vcHeap) Less(i, j int) bool {
+ return h[i].Bn < h[j].Bn
+}
+
+func (h *vcHeap) Push(x interface{}) {
+ *h = append(*h, x.(*types.TransactionWrap))
+}
+
+func (h *vcHeap) Pop() interface{} {
+ old := *h
+ n := len(old)
+ x := old[n-1]
+ *h = old[0 : n-1]
+ return x
+}
+
+type vcList struct {
+ all *vcLookup
+ items *vcHeap
+ stales int
+}
+
+func newVCList(all *vcLookup) *vcList {
+ return &vcList{
+ all: all,
+ items: new(vcHeap),
+ }
+}
+
+func (l *vcList) Put(tx *types.TransactionWrap) {
+ heap.Push(l.items, tx)
+}
+
+func (l *vcList) Pop() *types.TransactionWrap {
+ return heap.Pop(l.items).(*types.TransactionWrap)
+}
diff --git a/core/vc_pool.go b/core/vc_pool.go
new file mode 100644
index 0000000000..e9ffe3d372
--- /dev/null
+++ b/core/vc_pool.go
@@ -0,0 +1,592 @@
+package core
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "math/big"
+ "net/http"
+ "os"
+ "path/filepath"
+ "reflect"
+ "strconv"
+ "strings"
+ "sync"
+ "time"
+
+ //"github.com/PlatONnetwork/PlatON-Go/accounts"
+ //"github.com/PlatONnetwork/PlatON-Go/accounts/keystore"
+ "github.com/PlatONnetwork/PlatON-Go/common"
+ "github.com/PlatONnetwork/PlatON-Go/common/math"
+ "github.com/PlatONnetwork/PlatON-Go/core/state"
+ "github.com/PlatONnetwork/PlatON-Go/core/types"
+ "github.com/PlatONnetwork/PlatON-Go/core/vm"
+ "github.com/PlatONnetwork/PlatON-Go/crypto"
+ "github.com/PlatONnetwork/PlatON-Go/event"
+ "github.com/PlatONnetwork/PlatON-Go/life/utils"
+ "github.com/PlatONnetwork/PlatON-Go/log"
+ "github.com/PlatONnetwork/PlatON-Go/params"
+ "github.com/PlatONnetwork/PlatON-Go/rlp"
+)
+
+var VC_POOL *VCPool
+
+const (
+ TX_VC = TX_MPC + 1
+)
+
+type VCBlockChain interface {
+ CurrentBlock() *types.Block
+ GetBlock(hash common.Hash, number uint64) *types.Block
+
+ SubscribeChainHeadEvent(ch chan<- ChainHeadEvent) event.Subscription
+}
+
+type VCPoolConfig struct {
+ VCEnable bool // the switch of vc compute
+ NoLocals bool // Whether local transaction handling should be disabled
+ Journal string // Journal of local transactions to survive node restarts
+ Rejournal time.Duration // Time interval to regenerate the local transaction journal
+ GlobalQueue uint64 // Maximum number of non-executable transaction slots for all accounts
+ Lifetime time.Duration // Maximum amount of time non-executable transaction are queued
+
+ LocalRpcPort int // LocalRpcPort of local rpc port
+ IceConf string // ice conf to init vm
+ VcActor common.Address // the actor of VC compute
+ VcPassword string // the actor of VC compute
+}
+
+var DefaultVCPoolConfig = VCPoolConfig{
+ Journal: "VC_transactions.rlp",
+ Rejournal: time.Second * 4,
+ GlobalQueue: 1024,
+ Lifetime: 3 * time.Hour,
+}
+
+type VCPool struct {
+ config VCPoolConfig
+ chainconfig *params.ChainConfig
+ chain *BlockChain
+
+ mu sync.RWMutex
+ all *vcLookup // All transactions to allow lookups
+ queue *vcList // All transactions sorted by price
+ work_pool *GoroutinePool
+ quiteSign chan interface{}
+
+ wg sync.WaitGroup // for shutdown sync
+}
+
+func NewVCPool(config VCPoolConfig, chainconfig *params.ChainConfig, chain *BlockChain) *VCPool {
+ pool := &VCPool{
+ config: config,
+ chainconfig: chainconfig,
+ chain: chain,
+ all: newVCLookup(),
+ work_pool: new(GoroutinePool),
+ }
+
+ pool.queue = newVCList(pool.all)
+ pool.work_pool.Init(3, 10)
+
+ pool.wg.Add(1)
+ go pool.loop()
+
+ //start work pool
+ go pool.work_pool.Start()
+
+ // save to global attr
+ VC_POOL = pool
+
+ return pool
+}
+
+func genCompInput(taskid string) string {
+ var input [][]byte
+ input = make([][]byte, 0)
+ log.Debug("VC genCompInput", "taskid", taskid)
+ input = append(input, utils.Int64ToBytes(2))
+ input = append(input, []byte("real_compute"))
+ input = append(input, utils.String2bytes(taskid))
+
+ // var result []byte
+ // input = append(input, result)
+ buffer := new(bytes.Buffer)
+ err := rlp.Encode(buffer, input)
+ if err != nil {
+ fmt.Println("geninput fail.", err)
+ }
+ return common.Bytes2Hex(buffer.Bytes())
+}
+
+func genSetResultInput(taskid string, result []byte) string {
+ var input [][]byte
+ input = make([][]byte, 0)
+ input = append(input, utils.Int64ToBytes(2))
+ input = append(input, []byte("set_result"))
+ input = append(input, utils.String2bytes(taskid))
+ input = append(input, result)
+
+ buffer := new(bytes.Buffer)
+ err := rlp.Encode(buffer, input)
+ if err != nil {
+ fmt.Println("geninput fail.", err)
+ return ""
+ }
+
+ //log.Debug("VC genSetResultInput", "result", common.Bytes2Hex(buffer.Bytes()))
+ return common.Bytes2Hex(buffer.Bytes())
+}
+
+//send POST
+func (pool *VCPool) Post(url string, data interface{}, contentType string) (content string, err error) {
+ jsonStr, _ := json.Marshal(data)
+ fmt.Println(string(jsonStr))
+ req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
+ req.Header.Add("content-type", contentType)
+ if err != nil {
+ return "", err
+ }
+ defer req.Body.Close()
+
+ client := &http.Client{Timeout: 5 * time.Second}
+ resp, error := client.Do(req)
+ if error != nil {
+ return "", err
+ }
+ defer resp.Body.Close()
+
+ result, _ := ioutil.ReadAll(resp.Body)
+ content = string(result)
+ return content, nil
+}
+
+func (pool *VCPool) real_compute(tx *types.TransactionWrap) error {
+ pool.mu.Lock()
+ signer := types.MakeSigner(pool.chainconfig, big.NewInt(int64(tx.Bn)))
+ caller, _, err := signer.SignatureAndSender(tx.Transaction)
+ if err != nil {
+ log.Warn("Get sig fail", "hash", tx.Hash())
+ return err
+ }
+
+ bc := pool.chain
+ header := pool.chain.CurrentHeader()
+
+ state, err := bc.State()
+ if err != nil {
+ return err
+ }
+
+ gp := new(GasPool).AddGas(math.MaxUint64)
+
+ input := genCompInput(tx.TaskId)
+ msg := types.NewMessage(caller, tx.To(), 0, new(big.Int).SetInt64(0),
+ tx.Gas(), tx.GasPrice(), common.Hex2Bytes(input), false)
+ context := NewEVMContext(msg, header, bc, nil)
+ evm := vm.NewEVM(context, state, bc.chainConfig, bc.vmConfig)
+ log.Debug("start evm call real_compute")
+ ret, _, vmerr, err := ApplyMessage(evm, msg, gp)
+ if vmerr || err != nil {
+ log.Error("ApplyMessage real_compute wrong ", "vmerr", vmerr, "error", err)
+ return err
+ }
+ pool.mu.Unlock()
+
+ //fmt.Println(ret)
+ //TODO rm 64 bytes messy code
+ if len(ret) < 64 {
+ log.Error("ApplyMessage real_compute return error ")
+ return fmt.Errorf("return len error")
+ }
+
+ res := ret[64:len(ret)]
+ //fmt.Println(string(res))
+ //var a accounts.Account
+ fmt.Println("unlock: ", pool.config.VcActor.Hex())
+ //fmt.Println("password ", pool.config.VcPassword)
+ data := genSetResultInput(tx.TaskId, bytes.TrimLeft(res, "\x00"))
+ //a.Address = pool.config.VcActor
+ //ks := keystore.NewKeyStore(filepath.Join("./build/bin/data/", "keystore"), keystore.StandardScryptN, keystore.StandardScryptP)
+ //ks.Unlock(a, pool.config.VcPassword)
+
+ vc_data := make(map[string]interface{})
+ vc_data["jsonrpc"] = "2.0"
+ vc_data["method"] = "eth_sendTransaction"
+ params := make([]map[string]interface{}, 1)
+ param := make(map[string]interface{})
+ param["from"] = pool.config.VcActor.Hex()
+ param["to"] = (*(tx.To())).Hex()
+ param["gas"] = "0x166709"
+ param["gasPrice"] = "0x8250de00"
+ param["value"] = "0x0"
+ param["data"] = "0x" + data
+ params[0] = param
+ vc_data["params"] = params
+ vc_data["id"] = 1
+
+ url := "http://127.0.0.1:" + strconv.FormatUint(uint64(pool.config.LocalRpcPort), 10)
+ format := "application/json"
+ postres, err := pool.Post(url, vc_data, format)
+ if err != nil {
+ return err
+ }
+ fmt.Println(strings.ToLower(string(postres)))
+ //log.Debug("start evm call over")
+ return nil
+}
+
+func (pool *VCPool) loop() {
+
+ defer pool.wg.Done()
+
+ var prevQueued int
+
+ report := time.NewTicker(statsReportInterval)
+ defer report.Stop()
+
+ pop := time.NewTicker(time.Second * 1)
+
+ // Keep waiting for and reacting to the various events
+ for {
+ select {
+ case <-report.C:
+ pool.mu.RLock()
+ _, queued := pool.stats()
+ pool.mu.RUnlock()
+ if queued != prevQueued {
+ log.Debug("VC transaction pool status report", "queued", queued)
+ prevQueued = queued
+ }
+ //debug.FreeOSMemory()
+
+ case <-pool.quiteSign:
+ return
+
+ case <-pop.C:
+ if pool.queue.items.Len() > 0 {
+
+ pool.mu.Lock()
+ tx := pool.queue.Pop()
+ bn := pool.chain.CurrentBlock().Number().Int64()
+ // 最新区块小于当前存储的,表示发生了分叉,移除交易
+ // 如果交易所属块与最新区块未间隔20个确认区块,则不进行处理
+ log.Debug("start evm ------------------------------------------------call ", "bn", bn)
+ if bn < int64(tx.Bn) || (bn-int64(tx.Bn)) >= MinBlockConfirms {
+ pool.all.Remove(tx.Hash())
+ } else {
+ pool.queue.Put(tx)
+ }
+ pool.mu.Unlock()
+
+ if (bn - int64(tx.Bn)) >= MinBlockConfirms {
+ pool.work_pool.AddTask(func() error {
+ return pool.real_compute(tx)
+ })
+ }
+
+ }
+ }
+ }
+}
+
+func (pool *VCPool) LoadActor() error {
+ absPath, err := filepath.Abs(DEFAULT_ACTOR_FILE_NAME)
+ if err != nil {
+ return err
+ }
+ if _, err := os.Stat(absPath); os.IsNotExist(err) {
+ return nil
+ }
+ res, _ := ioutil.ReadFile(absPath)
+ pool.config.VcActor = common.BytesToAddress(res)
+ fmt.Println(pool.config.VcActor.Hex())
+ return nil
+}
+
+// Stop terminates the VC transaction pool.
+func (pool *VCPool) Stop() {
+ pool.quiteSign <- true
+ pool.work_pool.Stop()
+ pool.wg.Wait()
+
+ log.Info("Transaction pool stopped")
+}
+
+// SubscribeNewTxsEvent registers a subscription of NewTxsEvent and
+// starts sending event to the given channel.
+func (pool *VCPool) SubscribeNewTxsEvent(ch chan<- NewTxsEvent) event.Subscription {
+ //return pool.scope.Track(pool.txFeed.Subscribe(ch))
+ return nil
+}
+
+func (pool *VCPool) AddLocals(txs []*types.TransactionWrap) []error {
+ return pool.addTxs(txs)
+}
+
+func (pool *VCPool) addTxs(txs []*types.TransactionWrap) []error {
+ pool.mu.Lock()
+ defer pool.mu.Unlock()
+
+ return pool.addTxsLocked(txs)
+}
+
+func (pool *VCPool) addTxsLocked(txs []*types.TransactionWrap) []error {
+ errs := make([]error, len(txs))
+ for i, tx := range txs {
+ var replace bool
+ if replace, errs[i] = pool.add(tx); errs[i] == nil && !replace {
+ log.Warn("load txs from rlp fail", "hash", tx.Hash())
+ }
+ }
+ return errs
+}
+
+func (pool *VCPool) Stats() (int, int) {
+ pool.mu.RLock()
+ defer pool.mu.RUnlock()
+
+ return pool.stats()
+}
+
+func (pool *VCPool) stats() (int, int) {
+ return 0, len(pool.queue.all.txs)
+}
+
+func (pool *VCPool) local() types.TransactionWraps {
+ VCTxs := make([]*types.TransactionWrap, 0)
+ for _, v := range pool.queue.all.txs {
+ VCTxs = append(VCTxs, v)
+ }
+ return VCTxs
+}
+
+func (pool *VCPool) validateTx(tx *types.TransactionWrap) (err error) {
+ input := tx.Data()
+ if input == nil || len(input) <= 1 {
+ return fmt.Errorf("Invalid input")
+ }
+ ptr := new(interface{})
+ err = rlp.Decode(bytes.NewReader(input), &ptr)
+ if err != nil {
+ return err
+ }
+ rlpList := reflect.ValueOf(ptr).Elem().Interface()
+ if _, ok := rlpList.([]interface{}); !ok {
+ return fmt.Errorf("Invalid rlp encoded")
+ }
+ iRlpList := rlpList.([]interface{})
+ if len(iRlpList) < 2 {
+ return fmt.Errorf("Invalid input. ele must greater than 2")
+ }
+ var (
+ txType int
+ funcName string
+ )
+ if v, ok := iRlpList[0].([]byte); ok {
+ txType = int(common.BytesToInt64(v))
+ }
+
+ if txType != TX_VC {
+ return fmt.Errorf("Invalid tx type")
+ }
+ if v, ok := iRlpList[1].([]byte); ok {
+ funcName = string(v)
+ }
+ tx.FuncName = funcName
+ return nil
+}
+
+func (pool *VCPool) InjectTxs(block *types.Block, receipts types.Receipts, bc *BlockChain, state *state.StateDB) {
+ if !pool.config.VCEnable {
+ log.Info("Wow ~ VC Disable...")
+ return
+ }
+
+ for _, tx := range block.Transactions() {
+ isSave := false
+ var taskId string
+ for _, receipt := range receipts {
+ if len(receipt.Logs) == 0 {
+ continue
+ }
+
+ if bytes.Equal(receipt.TxHash.Bytes(), tx.Hash().Bytes()) { // fail
+ if receipt.Status == 1 {
+ // valid logs : error = 1 -> success
+ if tid, err := vc_verifyStartCalcLogs(receipt.Logs); err == nil {
+ taskId = tid
+ isSave = true
+ break
+ }
+ }
+ }
+ }
+ if isSave {
+ wrap := &types.TransactionWrap{
+ Transaction: tx,
+ Bn: block.NumberU64(),
+ TaskId: taskId,
+ }
+
+ // basic validatel
+ if err := pool.validateTx(wrap); err != nil {
+ log.Trace("God ~ Discarding invalid VC transaction", "hash", wrap.Hash(), "err", err)
+ return
+ }
+ // actor validate
+ // if err := pool.validateActor(wrap, bc, state); err != nil {
+ // log.Trace("God ~ Discarding the actor not belong to current VC contract.", "hash", wrap.Hash(), "err", err)
+ // return
+ log.Debug("Wow ~ VC add pool--------------------------------------...")
+ // }
+ pool.add(wrap)
+ }
+ }
+}
+
+func (pool *VCPool) add(tx *types.TransactionWrap) (bool, error) {
+
+ hash := tx.Hash()
+ if pool.all.Get(hash) != nil {
+ log.Trace("God ~ Discarding already known transaction", "hash", hash)
+ return false, fmt.Errorf("known VC transaction: %x", hash)
+ }
+
+ // If the transaction fails basic validation, discard it
+ if err := pool.validateTx(tx); err != nil {
+ log.Trace("God ~ Discarding invalid VC transaction", "hash", hash, "err", err)
+ return false, err
+ }
+
+ replace, err := pool.enqueueTx(hash, tx)
+ if err != nil {
+ return false, err
+ }
+
+ pool.journalTx(tx)
+
+ log.Debug("Pooled new future VC transaction", "hash", hash, "to", tx.To())
+ return replace, nil
+}
+
+func (pool *VCPool) enqueueTx(hash common.Hash, tx *types.TransactionWrap) (bool, error) {
+ if pool.all.Get(hash) == nil {
+ pool.all.Add(tx)
+ pool.queue.items.Push(tx)
+ }
+ return true, nil
+}
+
+// 写入文件
+func (pool *VCPool) journalTx(tx *types.TransactionWrap) {
+
+}
+
+// addTx enqueues a single transaction into the pool if it is valid.
+func (pool *VCPool) addTx(tx *types.TransactionWrap) error {
+ pool.mu.Lock()
+ defer pool.mu.Unlock()
+
+ // Try to inject the transaction and update any state
+ _, err := pool.add(tx)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+type vcLookup struct {
+ txs map[common.Hash]*types.TransactionWrap
+ lock sync.RWMutex
+}
+
+// newTxLookup returns a new VCLookup structure.
+func newVCLookup() *vcLookup {
+ return &vcLookup{
+ txs: make(map[common.Hash]*types.TransactionWrap),
+ }
+}
+
+// Range calls f on each key and value present in the map.
+func (t *vcLookup) Range(f func(hash common.Hash, tx *types.TransactionWrap) bool) {
+ t.lock.RLock()
+ defer t.lock.RUnlock()
+
+ for key, value := range t.txs {
+ if !f(key, value) {
+ break
+ }
+ }
+}
+
+// Get returns a transaction if it exists in the lookup, or nil if not found.
+func (t *vcLookup) Get(hash common.Hash) *types.TransactionWrap {
+ t.lock.RLock()
+ defer t.lock.RUnlock()
+
+ return t.txs[hash]
+}
+
+// Count returns the current number of items in the lookup.
+func (t *vcLookup) Count() int {
+ t.lock.RLock()
+ defer t.lock.RUnlock()
+ return len(t.txs)
+}
+
+// Add adds a transaction to the lookup.
+func (t *vcLookup) Add(tx *types.TransactionWrap) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+ t.txs[tx.Hash()] = tx
+}
+
+// Remove removes a transaction from the lookup.
+func (t *vcLookup) Remove(hash common.Hash) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+ delete(t.txs, hash)
+}
+
+// start_calc_event -> sha3("start_calc_event")
+func vc_verifyStartCalcLogs(logs []*types.Log) (string, error) {
+ topic := crypto.Keccak256([]byte("start_compute_event"))
+ for _, log := range logs {
+ if len(log.Topics) == 0 {
+ return "", fmt.Errorf("Reason: %v", "No topic found")
+ }
+ //log.Trace(("start evm call")
+ for _, top := range log.Topics {
+ if bytes.EqualFold(topic, top.Bytes()) {
+ // found valid log
+ ptr := new(interface{})
+ err := rlp.Decode(bytes.NewReader(log.Data), &ptr)
+ if err != nil {
+ return "", fmt.Errorf("Decode data of log got err: %v", err.Error())
+ }
+ rlpList := reflect.ValueOf(ptr).Elem().Interface()
+ if _, ok := rlpList.([]interface{}); !ok {
+ return "", fmt.Errorf("Reason: %v", "Invalid RLPList format")
+ }
+ iRlpList := rlpList.([]interface{})
+ // [0] -> code [1] -> taskId
+ var (
+ code uint64
+ taskId string
+ )
+ if v, ok := iRlpList[0].([]byte); ok {
+ code = uint64(common.BytesToInt64(common.PaddingLeft(v, 8)))
+ }
+ if v, ok := iRlpList[1].([]byte); ok {
+ taskId = string(v)
+ }
+ if code == 1 {
+ return taskId, nil
+ }
+ }
+ }
+ }
+ return "", fmt.Errorf("Invalid logs for event on topic : { %v }", topic)
+}
diff --git a/core/vc_work_pool.go b/core/vc_work_pool.go
new file mode 100644
index 0000000000..bbe38a5267
--- /dev/null
+++ b/core/vc_work_pool.go
@@ -0,0 +1,63 @@
+package core
+
+import "fmt"
+
+type GoroutinePool struct {
+ Queue chan func() error
+ Number int
+ Total int
+
+ result chan error
+ finishCallback func()
+}
+
+func (self *GoroutinePool) Init(number int, total int) {
+ self.Queue = make(chan func() error, total)
+ self.Number = number
+ self.Total = total
+ self.result = make(chan error, total)
+}
+
+func (self *GoroutinePool) Start() {
+ for i := 0; i < self.Number; i++ {
+ go func() {
+ for {
+ task, ok := <-self.Queue
+ if !ok {
+ break
+ }
+
+ err := task()
+ self.result <- err
+ }
+ }()
+ }
+
+ for j := 0; j < self.Total; j++ {
+ res, ok := <-self.result
+ if !ok {
+ break
+ }
+
+ if res != nil {
+ fmt.Println(res)
+ }
+ }
+
+ if self.finishCallback != nil {
+ self.finishCallback()
+ }
+}
+
+func (self *GoroutinePool) Stop() {
+ close(self.Queue)
+ close(self.result)
+}
+
+func (self *GoroutinePool) AddTask(task func() error) {
+ self.Queue <- task
+}
+
+func (self *GoroutinePool) SetFinishCallback(callback func()) {
+ self.finishCallback = callback
+}
diff --git a/core/vm/ppos_precontracts.go b/core/vm/ppos_precontracts.go
index 52b6d8e209..5b24bccd35 100644
--- a/core/vm/ppos_precontracts.go
+++ b/core/vm/ppos_precontracts.go
@@ -20,17 +20,17 @@ import (
)
var (
- ErrOwnerNotonly = errors.New("Node ID cannot bind multiple owners")
+ ErrOwnerNotOnly = errors.New("Node ID cannot bind multiple owners")
ErrPermissionDenied = errors.New("Transaction from address permission denied")
ErrFeeIllegal = errors.New("The fee is illegal")
- ErrDepositEmpyt = errors.New("Deposit balance not zero")
- ErrWithdrawEmpyt = errors.New("No withdrawal amount")
+ ErrDepositEmpty = errors.New("Deposit balance not zero")
+ ErrWithdrawEmpty = errors.New("No withdrawal amount")
ErrParamsRlpDecode = errors.New("Rlp decode faile")
ErrParamsBaselen = errors.New("Params Base length does not match")
ErrParamsLen = errors.New("Params length does not match")
ErrUndefFunction = errors.New("Undefined function")
ErrTxType = errors.New("Transaction type does not match the function")
- ErrCandidatePoolContextEmpyt = errors.New("CandidatePoolContext is nil")
+ ErrCandidatePoolContextEmpty = errors.New("CandidatePoolContext is nil")
ErrCandidateNotExist = errors.New("The candidate is not exist")
)
@@ -97,7 +97,7 @@ func (c *CandidateContract) Run(input []byte) ([]byte, error) {
}
var source [][]byte
if err := rlp.Decode(bytes.NewReader(input), &source); nil != err {
- log.Error("Failed to Run==> ", "ErrParamsRlpDecode: ", ErrParamsRlpDecode.Error())
+ log.Error("Failed to Run==> ", "ErrParamsRlpDecode: ", err.Error())
return nil, ErrParamsRlpDecode
}
if len(source) < 2 {
@@ -105,8 +105,8 @@ func (c *CandidateContract) Run(input []byte) ([]byte, error) {
return nil, ErrParamsBaselen
}
if c.Evm.CandidatePoolContext == nil {
- log.Error("Failed to Run==> ", "ErrCandidateEmpyt: ", ErrCandidatePoolContextEmpyt.Error())
- return nil, ErrCandidatePoolContextEmpyt
+ log.Error("Failed to Run==> ", "ErrCandidateEmpty: ", ErrCandidatePoolContextEmpty.Error())
+ return nil, ErrCandidatePoolContextEmpty
}
if _, ok := command[byteutil.BytesToString(source[1])]; !ok {
log.Error("Failed to Run==> ", "ErrUndefFunction: ", ErrUndefFunction.Error())
@@ -145,7 +145,7 @@ func (c *CandidateContract) Run(input []byte) ([]byte, error) {
if _, errOk := result[1].Interface().(error); !errOk {
return result[0].Bytes(), nil
}
- log.Error("Result of Run==> ", "result[1]: ", result[1].Interface().(error).Error())
+ log.Error("Result of Run==> ", "result[1]: err ", result[1].Interface().(error).Error())
return result[0].Bytes(), result[1].Interface().(error)
}
@@ -164,8 +164,15 @@ func (c *CandidateContract) CandidateDeposit(nodeId discover.NodeID, owner commo
return nil, ErrFeeIllegal
}
if deposit.Cmp(big.NewInt(0)) < 1 {
- log.Error("Failed to CandidateDeposit==> ", "ErrDepositEmpyt: ", ErrDepositEmpyt.Error())
- return nil, ErrDepositEmpyt
+ log.Error("Failed to CandidateDeposit==> ", "ErrDepositEmpty: ", ErrDepositEmpty.Error())
+ return nil, ErrDepositEmpty
+ }
+ addr := c.Evm.CandidatePoolContext.GetOwner(c.Evm.StateDB, nodeId)
+ if common.ZeroAddr != addr {
+ if ok := bytes.Equal(addr.Bytes(), owner.Bytes()); !ok {
+ log.Error("Failed to CandidateDeposit==> ", "ErrOwnerNotOnly: ", ErrOwnerNotOnly.Error())
+ return nil, ErrOwnerNotOnly
+ }
}
can, err := c.Evm.CandidatePoolContext.GetCandidate(c.Evm.StateDB, nodeId)
if nil != err {
@@ -174,10 +181,6 @@ func (c *CandidateContract) CandidateDeposit(nodeId discover.NodeID, owner commo
}
var alldeposit *big.Int
if nil != can {
- if ok := bytes.Equal(can.Owner.Bytes(), owner.Bytes()); !ok {
- log.Error("Failed to CandidateDeposit==> ", "ErrOwnerNotonly: ", ErrOwnerNotonly.Error())
- return nil, ErrOwnerNotonly
- }
alldeposit = new(big.Int).Add(can.Deposit, deposit)
log.Info("CandidateDeposit==> ", "alldeposit: ", alldeposit, " can.Deposit: ", can.Deposit, " deposit: ", deposit)
} else {
@@ -218,18 +221,16 @@ func (c *CandidateContract) CandidateApplyWithdraw(nodeId discover.NodeID, withd
log.Error("Failed to CandidateApplyWithdraw==> ", "GetCandidate return err: ", err.Error())
return nil, err
}
-
if nil == can {
log.Error("Failed to CandidateApplyWithdraw==> ", "ErrCandidateNotExist: ", ErrCandidateNotExist.Error())
return nil, ErrCandidateNotExist
}
-
if can.Deposit.Cmp(big.NewInt(0)) < 1 {
- log.Error("Failed to CandidateApplyWithdraw==> ", "ErrWithdrawEmpyt: ", err.Error())
- return nil, ErrWithdrawEmpyt
+ log.Error("Failed to CandidateApplyWithdraw==> ", "ErrWithdrawEmpty: ", ErrWithdrawEmpty.Error())
+ return nil, ErrWithdrawEmpty
}
if ok := bytes.Equal(can.Owner.Bytes(), from.Bytes()); !ok {
- log.Error("Failed to CandidateApplyWithdraw==> ", "ErrPermissionDenied: ", err.Error())
+ log.Error("Failed to CandidateApplyWithdraw==> ", "ErrPermissionDenied: ", ErrPermissionDenied.Error())
return nil, ErrPermissionDenied
}
if withdraw.Cmp(can.Deposit) > 0 {
@@ -282,7 +283,9 @@ func (c *CandidateContract) CandidateWithdrawInfos(nodeId discover.NodeID) ([]by
}
r := WithdrawInfos{true, "success", make([]WithdrawInfo, len(infos))}
for i, v := range infos {
- r.Infos[i] = WithdrawInfo{v.Deposit, v.BlockNumber, c.Evm.CandidatePoolContext.GetRefundInterval()}
+ refundBlockNumber := c.Evm.CandidatePoolContext.GetRefundInterval()
+ log.Debug("Call CandidateWithdrawInfos==> ", "Deposit", v.Deposit, "BlockNumber", v.BlockNumber, "RefundBlockNumber", refundBlockNumber)
+ r.Infos[i] = WithdrawInfo{v.Deposit, v.BlockNumber, refundBlockNumber}
}
data, _ := json.Marshal(r)
sdata := DecodeResultStr(string(data))
@@ -323,7 +326,7 @@ func (c *CandidateContract) CandidateDetails(nodeId discover.NodeID) ([]byte, er
return sdata, err
}
if nil == candidate {
- log.Warn("Failed to CandidateDetails==> ", "The query does not exist")
+ log.Warn("Failed to CandidateDetails==> The query does not exist")
candidate := types.Candidate{}
data, _ := json.Marshal(candidate)
sdata := DecodeResultStr(string(data))
@@ -348,7 +351,7 @@ func (c *CandidateContract) GetBatchCandidateDetail(nodeIds []discover.NodeID) (
return sdata, err
}
if 0 == len(candidates) {
- log.Warn("Failed to GetBatchCandidateDetail==> ", "The query does not exist")
+ log.Warn("Failed to GetBatchCandidateDetail==> The query does not exist")
candidates := make([]types.Candidate, 0)
data, _ := json.Marshal(candidates)
sdata := DecodeResultStr(string(data))
@@ -356,7 +359,7 @@ func (c *CandidateContract) GetBatchCandidateDetail(nodeIds []discover.NodeID) (
}
data, _ := json.Marshal(candidates)
sdata := DecodeResultStr(string(data))
- log.Info("Result of GetBatchCandidateDetail==> ", "json: ", string(data), " []byte: ", sdata)
+ log.Info("Result of GetBatchCandidateDetail==> ", "len(candidates): ", len(candidates), "json: ", string(data))
return sdata, nil
}
@@ -364,7 +367,7 @@ func (c *CandidateContract) GetBatchCandidateDetail(nodeIds []discover.NodeID) (
func (c *CandidateContract) CandidateList() ([]byte, error) {
candidates := c.Evm.CandidatePoolContext.GetChosens(c.Evm.StateDB)
if 0 == len(candidates) {
- log.Warn("Failed to CandidateList==> ", "The query does not exist")
+ log.Warn("Failed to CandidateList==> The query does not exist")
candidates := make([]types.Candidate, 0)
data, _ := json.Marshal(candidates)
sdata := DecodeResultStr(string(data))
@@ -372,7 +375,7 @@ func (c *CandidateContract) CandidateList() ([]byte, error) {
}
data, _ := json.Marshal(candidates)
sdata := DecodeResultStr(string(data))
- log.Info("Result of CandidateList==> ", "json: ", string(data), " []byte: ", sdata)
+ log.Info("Result of CandidateList==> ", "len(candidates): ", len(candidates), "json: ", string(data))
return sdata, nil
}
@@ -380,7 +383,7 @@ func (c *CandidateContract) CandidateList() ([]byte, error) {
func (c *CandidateContract) VerifiersList() ([]byte, error) {
verifiers := c.Evm.CandidatePoolContext.GetChairpersons(c.Evm.StateDB)
if 0 == len(verifiers) {
- log.Warn("Failed to VerifiersList==> ", "The query does not exist")
+ log.Warn("Failed to VerifiersList==> The query does not exist")
verifiers := make([]types.Candidate, 0)
data, _ := json.Marshal(verifiers)
sdata := DecodeResultStr(string(data))
@@ -388,7 +391,7 @@ func (c *CandidateContract) VerifiersList() ([]byte, error) {
}
data, _ := json.Marshal(verifiers)
sdata := DecodeResultStr(string(data))
- log.Info("Result of VerifiersList==> ", "json: ", string(data), " []byte: ", sdata)
+ log.Info("Result of VerifiersList==> ", "len(verifiers): ", len(verifiers), "json: ", string(data))
return sdata, nil
}
diff --git a/eth/backend.go b/eth/backend.go
index e097ae09d7..4b9004b615 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -18,10 +18,6 @@
package eth
import (
- "github.com/PlatONnetwork/PlatON-Go/consensus/cbft"
- "github.com/PlatONnetwork/PlatON-Go/core/cbfttypes"
- "github.com/PlatONnetwork/PlatON-Go/core/state"
- "github.com/PlatONnetwork/PlatON-Go/p2p/discover"
"errors"
"fmt"
"math/big"
@@ -29,6 +25,11 @@ import (
"sync"
"sync/atomic"
+ "github.com/PlatONnetwork/PlatON-Go/consensus/cbft"
+ "github.com/PlatONnetwork/PlatON-Go/core/cbfttypes"
+ "github.com/PlatONnetwork/PlatON-Go/core/state"
+ "github.com/PlatONnetwork/PlatON-Go/p2p/discover"
+
"github.com/PlatONnetwork/PlatON-Go/accounts"
"github.com/PlatONnetwork/PlatON-Go/common"
"github.com/PlatONnetwork/PlatON-Go/common/hexutil"
@@ -76,7 +77,8 @@ type Ethereum struct {
protocolManager *ProtocolManager
lesServer LesServer
// modify
- mpcPool *core.MPCPool
+ mpcPool *core.MPCPool
+ vcPool *core.VCPool
// DB interfaces
chainDb ethdb.Database // Block chain database
@@ -163,7 +165,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
EnablePreimageRecording: config.EnablePreimageRecording,
EWASMInterpreter: config.EWASMInterpreter,
EVMInterpreter: config.EVMInterpreter,
- ConsoleOutput: config.Debug,
+ ConsoleOutput: config.Debug,
}
cacheConfig = &core.CacheConfig{Disabled: config.NoPruning, TrieNodeLimit: config.TrieCache, TrieTimeLimit: config.TrieTimeout}
)
@@ -204,6 +206,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
config.MPCPool.Lifetime = core.DefaultMPCPoolConfig.Lifetime
}
eth.mpcPool = core.NewMPCPool(config.MPCPool, eth.chainConfig, eth.blockchain)
+ eth.vcPool = core.NewVCPool(config.VCPool, eth.chainConfig, eth.blockchain)
if eth.protocolManager, err = NewProtocolManager(eth.chainConfig, config.SyncMode, config.NetworkId, eth.eventMux, eth.txPool, eth.engine, eth.blockchain, chainDb); err != nil {
return nil, err
@@ -624,15 +627,14 @@ func (s *Ethereum) Stop() error {
return nil
}
-
-func setPposConfig (pposConfig *PposConfig) *params.PposConfig{
+func setPposConfig(pposConfig *PposConfig) *params.PposConfig {
return ¶ms.PposConfig{
- Candidate: ¶ms.CandidateConfig{
- Threshold: pposConfig.Candidate.Threshold,
- DepositLimit: pposConfig.Candidate.DepositLimit,
- MaxChair: pposConfig.Candidate.MaxChair,
- MaxCount: pposConfig.Candidate.MaxCount,
- RefundBlockNumber: pposConfig.Candidate.RefundBlockNumber,
+ Candidate: ¶ms.CandidateConfig{
+ Threshold: pposConfig.Candidate.Threshold,
+ DepositLimit: pposConfig.Candidate.DepositLimit,
+ MaxChair: pposConfig.Candidate.MaxChair,
+ MaxCount: pposConfig.Candidate.MaxCount,
+ RefundBlockNumber: pposConfig.Candidate.RefundBlockNumber,
},
}
-}
\ No newline at end of file
+}
diff --git a/eth/config.go b/eth/config.go
index df1651d0e4..881fd3cd9b 100644
--- a/eth/config.go
+++ b/eth/config.go
@@ -17,8 +17,8 @@
package eth
import (
- "github.com/PlatONnetwork/PlatON-Go/node"
"fmt"
+ "github.com/PlatONnetwork/PlatON-Go/node"
"math/big"
"os"
"os/user"
@@ -49,13 +49,13 @@ var DefaultConfig = Config{
MaxLatency: 600,
LegalCoefficient: 1.0,
Duration: 10,
- Ppos: &PposConfig{
+ Ppos: &PposConfig{
Candidate: &CandidateConfig{
- Threshold: "1000000000000000000000000",
- DepositLimit: 10,
- MaxCount: 7,
- MaxChair: 100,
- RefundBlockNumber: 512,
+ Threshold: "1000000000000000000000000",
+ DepositLimit: 10,
+ MaxChair: 7,
+ MaxCount: 100,
+ RefundBlockNumber: 512,
},
},
},
@@ -82,8 +82,8 @@ var DefaultConfig = Config{
Percentile: 60,
},
- MPCPool: core.DefaultMPCPoolConfig ,
-
+ MPCPool: core.DefaultMPCPoolConfig,
+ VCPool: core.DefaultVCPoolConfig,
}
func init() {
@@ -107,7 +107,7 @@ type Config struct {
// If nil, the Ethereum main net block is used.
Genesis *core.Genesis `toml:",omitempty"`
- CbftConfig CbftConfig `toml:",omitempty"`
+ CbftConfig CbftConfig `toml:",omitempty"`
// Protocol options
NetworkId uint64 // Network ID to use for selecting peers to connect to
@@ -155,39 +155,36 @@ type Config struct {
// Type of the EVM interpreter ("" for default)
EVMInterpreter string
-
// MPC pool options
MPCPool core.MPCPoolConfig
-
- Debug bool
+ VCPool core.VCPoolConfig
+ Debug bool
}
type CbftConfig struct {
- Period uint64 `json:"period"` // Number of seconds between blocks to enforce
- Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint
- MaxLatency int64 `json:"maxLatency"`
- LegalCoefficient float64 `json:"legalCoefficient"`
- Duration int64 `json:"duration"`
- Ppos *PposConfig `json:"ppos"`
+ Period uint64 `json:"period"` // Number of seconds between blocks to enforce
+ Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint
+ MaxLatency int64 `json:"maxLatency"`
+ LegalCoefficient float64 `json:"legalCoefficient"`
+ Duration int64 `json:"duration"`
+ Ppos *PposConfig `json:"ppos"`
}
-
type PposConfig struct {
- Candidate *CandidateConfig `json:"candidate"`
+ Candidate *CandidateConfig `json:"candidate"`
}
type CandidateConfig struct {
// min deposit allow threshold
- Threshold string `json:"threshold"`
+ Threshold string `json:"threshold"`
// min deposit limit percentage
- DepositLimit uint64 `json:"depositLimit"`
+ DepositLimit uint64 `json:"depositLimit"`
// allow immediate elected max count
- MaxCount uint64 `json:"maxCount"`
+ MaxCount uint64 `json:"maxCount"`
// allow witness max count
- MaxChair uint64 `json:"maxChair"`
+ MaxChair uint64 `json:"maxChair"`
// allow block interval for refunds
- RefundBlockNumber uint64 `json:"refundBlockNumber"`
-
+ RefundBlockNumber uint64 `json:"refundBlockNumber"`
}
type configMarshaling struct {
diff --git a/life/resolver/cplusplus.go b/life/resolver/cplusplus.go
index e2f9547fa5..17de2c4135 100644
--- a/life/resolver/cplusplus.go
+++ b/life/resolver/cplusplus.go
@@ -9,16 +9,17 @@ package resolver
// #include "print128.h"
import "C"
import (
- "github.com/PlatONnetwork/PlatON-Go/common"
- inner "github.com/PlatONnetwork/PlatON-Go/common/math"
- "github.com/PlatONnetwork/PlatON-Go/crypto"
- "github.com/PlatONnetwork/PlatON-Go/life/compiler"
- "github.com/PlatONnetwork/PlatON-Go/life/exec"
"bytes"
"encoding/binary"
"fmt"
"math"
"math/big"
+
+ "github.com/PlatONnetwork/PlatON-Go/common"
+ inner "github.com/PlatONnetwork/PlatON-Go/common/math"
+ "github.com/PlatONnetwork/PlatON-Go/crypto"
+ "github.com/PlatONnetwork/PlatON-Go/life/compiler"
+ "github.com/PlatONnetwork/PlatON-Go/life/exec"
)
var (
@@ -156,6 +157,17 @@ func newCfcSet() map[string]map[string]*exec.FunctionImport {
"getState": &exec.FunctionImport{Execute: envGetState, GasCost: envGetStateGasCost},
"getStateSize": &exec.FunctionImport{Execute: envGetStateSize, GasCost: envGetStateSizeGasCost},
+ // support for vc
+ "vc_InitGadgetEnv": &exec.FunctionImport{Execute: envInitGadgetEnv, GasCost: envInitGadgetEnvGasCost},
+ "vc_UninitGadgetEnv": &exec.FunctionImport{Execute: envUninitGadgetEnv, GasCost: envUninitGadgetEnvGasCost},
+ "vc_CreatePBVar": &exec.FunctionImport{Execute: envCreatePBVarEnv, GasCost: envCreatePBVarGasCost},
+ "vc_CreateGadget": &exec.FunctionImport{Execute: envCreateGadgetEnv, GasCost: envCreateGadgetGasCost},
+ "vc_SetVar": &exec.FunctionImport{Execute: envSetVarEnv, GasCost: envSetVarGasCost},
+ "vc_SetRetIndex": &exec.FunctionImport{Execute: envSetRetIndexEnv, GasCost: envSetRetIndexGasCost},
+ "vc_GenerateWitness": &exec.FunctionImport{Execute: envGenWitnessEnv, GasCost: envGenWitnessGasCost},
+ "vc_GenerateProofAndResult": &exec.FunctionImport{Execute: envGenProofAndResultEnv, GasCost: envGenProofAndResultGasCost},
+ "vc_Verify": &exec.FunctionImport{Execute: envVerifyEnv, GasCost: envVerifyGasCost},
+
// supplement
"getCallerNonce": &exec.FunctionImport{Execute: envGetCallerNonce, GasCost: constGasFunc(compiler.GasQuickStep)},
"callTransfer": &exec.FunctionImport{Execute: envCallTransfer, GasCost: constGasFunc(compiler.GasQuickStep)},
@@ -429,8 +441,6 @@ func envCalloc(vm *exec.VirtualMachine) int64 {
size := int(int32(vm.GetCurrentFrame().Locals[1]))
total := num * size
-
-
pos := mem.Malloc(total)
return int64(pos)
@@ -630,7 +640,7 @@ func envSetState(vm *exec.VirtualMachine) int64 {
copyKey := make([]byte, keyLen)
copyValue := make([]byte, valueLen)
- copy(copyKey, vm.Memory.Memory[key : key+keyLen])
+ copy(copyKey, vm.Memory.Memory[key:key+keyLen])
copy(copyValue, vm.Memory.Memory[value:value+valueLen])
vm.Context.StateDB.SetState(copyKey, copyValue)
return 0
diff --git a/life/resolver/goLayer.h b/life/resolver/goLayer.h
new file mode 100644
index 0000000000..b182bef7da
--- /dev/null
+++ b/life/resolver/goLayer.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include
+
+typedef int int32;
+typedef unsigned int uint32;
+typedef long long int64;
+typedef unsigned long long uint64;
+
+//extern "C"
+//{
+ void gadget_initEnv();
+ void gadget_uninitEnv();
+ void gadget_createPBVar(int64 varAddr);
+ unsigned char gadget_createGadget(int64 input0, int64 input1,
+ int64 input2, int64 res, int32 Type);
+ void gadget_setVar(int64 varAddr, int64 Val, unsigned char is_unsigned);
+ void gadget_setRetIndex(int64 RetAddr);
+ void gadget_generateWitness();
+ unsigned char GenerateProofAndResult(const char *pPKEY, char *pProof,
+ int prSize, char *pResult, int resSize);
+ unsigned char Verify(const char *pVKEY, const char *pPoorf,
+ const char *pInput, const char *pOutput);
+//};
+
+
+
diff --git a/life/resolver/libcsnark/libcsnark.a b/life/resolver/libcsnark/libcsnark.a
new file mode 100644
index 0000000000..c11b10d7cb
Binary files /dev/null and b/life/resolver/libcsnark/libcsnark.a differ
diff --git a/life/resolver/libcsnark/libff.a b/life/resolver/libcsnark/libff.a
new file mode 100644
index 0000000000..50c4b3d0c3
Binary files /dev/null and b/life/resolver/libcsnark/libff.a differ
diff --git a/life/resolver/libcsnark/libsnark.a b/life/resolver/libcsnark/libsnark.a
new file mode 100644
index 0000000000..f0b0898e40
Binary files /dev/null and b/life/resolver/libcsnark/libsnark.a differ
diff --git a/life/resolver/softfloat b/life/resolver/softfloat
new file mode 160000
index 0000000000..b64af41c32
--- /dev/null
+++ b/life/resolver/softfloat
@@ -0,0 +1 @@
+Subproject commit b64af41c3276f97f0e181920400ee056b9c88037
diff --git a/life/resolver/softfloat/.gitignore b/life/resolver/softfloat/.gitignore
deleted file mode 100644
index bfdb59292f..0000000000
--- a/life/resolver/softfloat/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build/*/*.o
-build/*/*.a
diff --git a/life/resolver/softfloat/COPYING.txt b/life/resolver/softfloat/COPYING.txt
deleted file mode 100644
index b5690face0..0000000000
--- a/life/resolver/softfloat/COPYING.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-
-License for Berkeley SoftFloat Release 3e
-
-John R. Hauser
-2018 January 20
-
-The following applies to the whole of SoftFloat Release 3e as well as to
-each source file individually.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions, and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/life/resolver/softfloat/README.html b/life/resolver/softfloat/README.html
deleted file mode 100644
index e695c2bd82..0000000000
--- a/life/resolver/softfloat/README.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-Berkeley SoftFloat Package Overview
-
-
-
-
-Package Overview for Berkeley SoftFloat Release 3e
-
-
-John R. Hauser
-2018 January 20
-
-
-
-Berkeley SoftFloat is a software implementation of binary floating-point that
-conforms to the IEEE Standard for Floating-Point Arithmetic.
-SoftFloat is distributed in the form of C source code.
-Building the SoftFloat sources generates a library file (typically
-softfloat.a
or libsoftfloat.a
) containing the
-floating-point subroutines.
-
-
-
-The SoftFloat package is documented in the following files in the
-doc
subdirectory:
-
-
-
-Other files in the package comprise the source code for SoftFloat.
-
-
-
-
diff --git a/life/resolver/softfloat/README.md b/life/resolver/softfloat/README.md
deleted file mode 100644
index d468020492..0000000000
--- a/life/resolver/softfloat/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Package Overview for Berkeley SoftFloat Release 3e
-==================================================
-
-John R. Hauser
-2018 January 20
-
-
-Berkeley SoftFloat is a software implementation of binary floating-point
-that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat
-is distributed in the form of C source code. Building the SoftFloat sources
-generates a library file (typically `softfloat.a` or `libsoftfloat.a`)
-containing the floating-point subroutines.
-
-
-The SoftFloat package is documented in the following files in the `doc`
-subdirectory:
-
-* [SoftFloat.html](http://www.jhauser.us/arithmetic/SoftFloat-3/doc/SoftFloat.html) Documentation for using the SoftFloat functions.
-* [SoftFloat-source.html](http://www.jhauser.us/arithmetic/SoftFloat-3/doc/SoftFloat-source.html) Documentation for building SoftFloat.
-* [SoftFloat-history.html](http://www.jhauser.us/arithmetic/SoftFloat-3/doc/SoftFloat-history.html) History of the major changes to SoftFloat.
-
-Other files in the package comprise the source code for SoftFloat.
-
diff --git a/life/resolver/softfloat/README.txt b/life/resolver/softfloat/README.txt
deleted file mode 100644
index 1613c76718..0000000000
--- a/life/resolver/softfloat/README.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Package Overview for Berkeley SoftFloat Release 3e
-
-John R. Hauser
-2018 January 20
-
-Berkeley SoftFloat is a software implementation of binary floating-point
-that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat
-is distributed in the form of C source code. Building the SoftFloat sources
-generates a library file (typically "softfloat.a" or "libsoftfloat.a")
-containing the floating-point subroutines.
-
-The SoftFloat package is documented in the following files in the "doc"
-subdirectory:
-
- SoftFloat.html Documentation for using the SoftFloat functions.
- SoftFloat-source.html Documentation for building SoftFloat.
- SoftFloat-history.html History of the major changes to SoftFloat.
-
-Other files in the package comprise the source code for SoftFloat.
-
diff --git a/life/resolver/softfloat/build/Linux-386-GCC/Makefile b/life/resolver/softfloat/build/Linux-386-GCC/Makefile
deleted file mode 100644
index faeb397283..0000000000
--- a/life/resolver/softfloat/build/Linux-386-GCC/Makefile
+++ /dev/null
@@ -1,325 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
- $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Linux-386-GCC/platform.h b/life/resolver/softfloat/build/Linux-386-GCC/platform.h
deleted file mode 100644
index d514dbc408..0000000000
--- a/life/resolver/softfloat/build/Linux-386-GCC/platform.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Linux-386-SSE2-GCC/Makefile b/life/resolver/softfloat/build/Linux-386-SSE2-GCC/Makefile
deleted file mode 100644
index ced977b699..0000000000
--- a/life/resolver/softfloat/build/Linux-386-SSE2-GCC/Makefile
+++ /dev/null
@@ -1,325 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086-SSE
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
- $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Linux-386-SSE2-GCC/platform.h b/life/resolver/softfloat/build/Linux-386-SSE2-GCC/platform.h
deleted file mode 100644
index d514dbc408..0000000000
--- a/life/resolver/softfloat/build/Linux-386-SSE2-GCC/platform.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/Makefile b/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/Makefile
deleted file mode 100644
index a1e7c8303c..0000000000
--- a/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/Makefile
+++ /dev/null
@@ -1,323 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= ARM-VFPv2
-
-SOFTFLOAT_OPTS ?= -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
- $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/platform.h b/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/platform.h
deleted file mode 100644
index d514dbc408..0000000000
--- a/life/resolver/softfloat/build/Linux-ARM-VFPv2-GCC/platform.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Linux-x86_64-GCC/Makefile b/life/resolver/softfloat/build/Linux-x86_64-GCC/Makefile
deleted file mode 100644
index 2ee5dad849..0000000000
--- a/life/resolver/softfloat/build/Linux-x86_64-GCC/Makefile
+++ /dev/null
@@ -1,390 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086-SSE
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration -DSOFTFLOAT_FAST_INT64 \
- $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS = $(SOURCE_DIR)/include/opts-GCC.h
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_eq128$(OBJ) \
- s_le128$(OBJ) \
- s_lt128$(OBJ) \
- s_shortShiftLeft128$(OBJ) \
- s_shortShiftRight128$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJam64Extra$(OBJ) \
- s_shortShiftRightJam128$(OBJ) \
- s_shortShiftRightJam128Extra$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJam64Extra$(OBJ) \
- s_shiftRightJam128$(OBJ) \
- s_shiftRightJam128Extra$(OBJ) \
- s_shiftRightJam256M$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_add128$(OBJ) \
- s_add256M$(OBJ) \
- s_sub128$(OBJ) \
- s_sub256M$(OBJ) \
- s_mul64ByShifted32To128$(OBJ) \
- s_mul64To128$(OBJ) \
- s_mul128By32$(OBJ) \
- s_mul128To256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80UIToCommonNaN$(OBJ) \
- s_commonNaNToExtF80UI$(OBJ) \
- s_propagateNaNExtF80UI$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128UIToCommonNaN$(OBJ) \
- s_commonNaNToF128UI$(OBJ) \
- s_propagateNaNF128UI$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_normSubnormalExtF80Sig$(OBJ) \
- s_roundPackToExtF80$(OBJ) \
- s_normRoundPackToExtF80$(OBJ) \
- s_addMagsExtF80$(OBJ) \
- s_subMagsExtF80$(OBJ) \
- s_normSubnormalF128Sig$(OBJ) \
- s_roundPackToF128$(OBJ) \
- s_normRoundPackToF128$(OBJ) \
- s_addMagsF128$(OBJ) \
- s_subMagsF128$(OBJ) \
- s_mulAddF128$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80_to_ui32$(OBJ) \
- extF80_to_ui64$(OBJ) \
- extF80_to_i32$(OBJ) \
- extF80_to_i64$(OBJ) \
- extF80_to_ui32_r_minMag$(OBJ) \
- extF80_to_ui64_r_minMag$(OBJ) \
- extF80_to_i32_r_minMag$(OBJ) \
- extF80_to_i64_r_minMag$(OBJ) \
- extF80_to_f16$(OBJ) \
- extF80_to_f32$(OBJ) \
- extF80_to_f64$(OBJ) \
- extF80_to_f128$(OBJ) \
- extF80_roundToInt$(OBJ) \
- extF80_add$(OBJ) \
- extF80_sub$(OBJ) \
- extF80_mul$(OBJ) \
- extF80_div$(OBJ) \
- extF80_rem$(OBJ) \
- extF80_sqrt$(OBJ) \
- extF80_eq$(OBJ) \
- extF80_le$(OBJ) \
- extF80_lt$(OBJ) \
- extF80_eq_signaling$(OBJ) \
- extF80_le_quiet$(OBJ) \
- extF80_lt_quiet$(OBJ) \
- extF80_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128_to_ui32$(OBJ) \
- f128_to_ui64$(OBJ) \
- f128_to_i32$(OBJ) \
- f128_to_i64$(OBJ) \
- f128_to_ui32_r_minMag$(OBJ) \
- f128_to_ui64_r_minMag$(OBJ) \
- f128_to_i32_r_minMag$(OBJ) \
- f128_to_i64_r_minMag$(OBJ) \
- f128_to_f16$(OBJ) \
- f128_to_f32$(OBJ) \
- f128_to_extF80$(OBJ) \
- f128_to_f64$(OBJ) \
- f128_roundToInt$(OBJ) \
- f128_add$(OBJ) \
- f128_sub$(OBJ) \
- f128_mul$(OBJ) \
- f128_mulAdd$(OBJ) \
- f128_div$(OBJ) \
- f128_rem$(OBJ) \
- f128_sqrt$(OBJ) \
- f128_eq$(OBJ) \
- f128_le$(OBJ) \
- f128_lt$(OBJ) \
- f128_eq_signaling$(OBJ) \
- f128_le_quiet$(OBJ) \
- f128_lt_quiet$(OBJ) \
- f128_isSignalingNaN$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Linux-x86_64-GCC/platform.h b/life/resolver/softfloat/build/Linux-x86_64-GCC/platform.h
deleted file mode 100644
index c5e06f8e9d..0000000000
--- a/life/resolver/softfloat/build/Linux-x86_64-GCC/platform.h
+++ /dev/null
@@ -1,54 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#define SOFTFLOAT_INTRINSIC_INT128 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Win32-MinGW/Makefile b/life/resolver/softfloat/build/Win32-MinGW/Makefile
deleted file mode 100644
index faeb397283..0000000000
--- a/life/resolver/softfloat/build/Win32-MinGW/Makefile
+++ /dev/null
@@ -1,325 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
- $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Win32-MinGW/platform.h b/life/resolver/softfloat/build/Win32-MinGW/platform.h
deleted file mode 100644
index d514dbc408..0000000000
--- a/life/resolver/softfloat/build/Win32-MinGW/platform.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Win32-SSE2-MinGW/Makefile b/life/resolver/softfloat/build/Win32-SSE2-MinGW/Makefile
deleted file mode 100644
index ced977b699..0000000000
--- a/life/resolver/softfloat/build/Win32-SSE2-MinGW/Makefile
+++ /dev/null
@@ -1,325 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086-SSE
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
- $(C_INCLUDES) -O2 -o $@
-MAKELIB = ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Win32-SSE2-MinGW/platform.h b/life/resolver/softfloat/build/Win32-SSE2-MinGW/platform.h
deleted file mode 100644
index d514dbc408..0000000000
--- a/life/resolver/softfloat/build/Win32-SSE2-MinGW/platform.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/Win64-MinGW-w64/Makefile b/life/resolver/softfloat/build/Win64-MinGW-w64/Makefile
deleted file mode 100644
index ea6d3c2b64..0000000000
--- a/life/resolver/softfloat/build/Win64-MinGW-w64/Makefile
+++ /dev/null
@@ -1,390 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-SOURCE_DIR ?= ../../source
-SPECIALIZE_TYPE ?= 8086-SSE
-
-SOFTFLOAT_OPTS ?= \
- -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
- -DSOFTFLOAT_FAST_DIV64TO32
-
-DELETE = rm -f
-C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-COMPILE_C = \
- x86_64-w64-mingw32-gcc -c -Werror-implicit-function-declaration \
- -DSOFTFLOAT_FAST_INT64 $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
-MAKELIB = x86_64-w64-mingw32-gcc-ar crs $@
-
-OBJ = .o
-LIB = .a
-
-OTHER_HEADERS = $(SOURCE_DIR)/include/opts-GCC.h
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_eq128$(OBJ) \
- s_le128$(OBJ) \
- s_lt128$(OBJ) \
- s_shortShiftLeft128$(OBJ) \
- s_shortShiftRight128$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJam64Extra$(OBJ) \
- s_shortShiftRightJam128$(OBJ) \
- s_shortShiftRightJam128Extra$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJam64Extra$(OBJ) \
- s_shiftRightJam128$(OBJ) \
- s_shiftRightJam128Extra$(OBJ) \
- s_shiftRightJam256M$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_add128$(OBJ) \
- s_add256M$(OBJ) \
- s_sub128$(OBJ) \
- s_sub256M$(OBJ) \
- s_mul64ByShifted32To128$(OBJ) \
- s_mul64To128$(OBJ) \
- s_mul128By32$(OBJ) \
- s_mul128To256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80UIToCommonNaN$(OBJ) \
- s_commonNaNToExtF80UI$(OBJ) \
- s_propagateNaNExtF80UI$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128UIToCommonNaN$(OBJ) \
- s_commonNaNToF128UI$(OBJ) \
- s_propagateNaNF128UI$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_normSubnormalExtF80Sig$(OBJ) \
- s_roundPackToExtF80$(OBJ) \
- s_normRoundPackToExtF80$(OBJ) \
- s_addMagsExtF80$(OBJ) \
- s_subMagsExtF80$(OBJ) \
- s_normSubnormalF128Sig$(OBJ) \
- s_roundPackToF128$(OBJ) \
- s_normRoundPackToF128$(OBJ) \
- s_addMagsF128$(OBJ) \
- s_subMagsF128$(OBJ) \
- s_mulAddF128$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80_to_ui32$(OBJ) \
- extF80_to_ui64$(OBJ) \
- extF80_to_i32$(OBJ) \
- extF80_to_i64$(OBJ) \
- extF80_to_ui32_r_minMag$(OBJ) \
- extF80_to_ui64_r_minMag$(OBJ) \
- extF80_to_i32_r_minMag$(OBJ) \
- extF80_to_i64_r_minMag$(OBJ) \
- extF80_to_f16$(OBJ) \
- extF80_to_f32$(OBJ) \
- extF80_to_f64$(OBJ) \
- extF80_to_f128$(OBJ) \
- extF80_roundToInt$(OBJ) \
- extF80_add$(OBJ) \
- extF80_sub$(OBJ) \
- extF80_mul$(OBJ) \
- extF80_div$(OBJ) \
- extF80_rem$(OBJ) \
- extF80_sqrt$(OBJ) \
- extF80_eq$(OBJ) \
- extF80_le$(OBJ) \
- extF80_lt$(OBJ) \
- extF80_eq_signaling$(OBJ) \
- extF80_le_quiet$(OBJ) \
- extF80_lt_quiet$(OBJ) \
- extF80_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128_to_ui32$(OBJ) \
- f128_to_ui64$(OBJ) \
- f128_to_i32$(OBJ) \
- f128_to_i64$(OBJ) \
- f128_to_ui32_r_minMag$(OBJ) \
- f128_to_ui64_r_minMag$(OBJ) \
- f128_to_i32_r_minMag$(OBJ) \
- f128_to_i64_r_minMag$(OBJ) \
- f128_to_f16$(OBJ) \
- f128_to_f32$(OBJ) \
- f128_to_extF80$(OBJ) \
- f128_to_f64$(OBJ) \
- f128_roundToInt$(OBJ) \
- f128_add$(OBJ) \
- f128_sub$(OBJ) \
- f128_mul$(OBJ) \
- f128_mulAdd$(OBJ) \
- f128_div$(OBJ) \
- f128_rem$(OBJ) \
- f128_sqrt$(OBJ) \
- f128_eq$(OBJ) \
- f128_le$(OBJ) \
- f128_lt$(OBJ) \
- f128_eq_signaling$(OBJ) \
- f128_le_quiet$(OBJ) \
- f128_lt_quiet$(OBJ) \
- f128_isSignalingNaN$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/Win64-MinGW-w64/platform.h b/life/resolver/softfloat/build/Win64-MinGW-w64/platform.h
deleted file mode 100644
index c5e06f8e9d..0000000000
--- a/life/resolver/softfloat/build/Win64-MinGW-w64/platform.h
+++ /dev/null
@@ -1,54 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
-#else
-#define INLINE extern inline
-#endif
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-#define SOFTFLOAT_BUILTIN_CLZ 1
-#define SOFTFLOAT_INTRINSIC_INT128 1
-#include "opts-GCC.h"
-
diff --git a/life/resolver/softfloat/build/libsoftfloat.a b/life/resolver/softfloat/build/libsoftfloat.a
deleted file mode 100644
index 85f11b3bcd..0000000000
Binary files a/life/resolver/softfloat/build/libsoftfloat.a and /dev/null differ
diff --git a/life/resolver/softfloat/build/template-FAST_INT64/Makefile b/life/resolver/softfloat/build/template-FAST_INT64/Makefile
deleted file mode 100644
index 78e7ff5aa7..0000000000
--- a/life/resolver/softfloat/build/template-FAST_INT64/Makefile
+++ /dev/null
@@ -1,391 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile template is part of the SoftFloat IEEE Floating-Point
-# Arithmetic Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-# Edit lines marked with `==>'. See "SoftFloat-source.html".
-
-==> SOURCE_DIR ?= ../../source
-==> SPECIALIZE_TYPE ?= 8086
-
-==> SOFTFLOAT_OPTS ?= \
-==> -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
-==> -DSOFTFLOAT_FAST_DIV64TO32
-
-==> DELETE = rm -f
-==> C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-==> COMPILE_C = \
-==> cc -c -DSOFTFLOAT_FAST_INT64 $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
-==> MAKELIB = ar crs $@
-
-==> OBJ = .o
-==> LIB = .a
-
-==> OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_eq128$(OBJ) \
- s_le128$(OBJ) \
- s_lt128$(OBJ) \
- s_shortShiftLeft128$(OBJ) \
- s_shortShiftRight128$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJam64Extra$(OBJ) \
- s_shortShiftRightJam128$(OBJ) \
- s_shortShiftRightJam128Extra$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJam64Extra$(OBJ) \
- s_shiftRightJam128$(OBJ) \
- s_shiftRightJam128Extra$(OBJ) \
- s_shiftRightJam256M$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_add128$(OBJ) \
- s_add256M$(OBJ) \
- s_sub128$(OBJ) \
- s_sub256M$(OBJ) \
- s_mul64ByShifted32To128$(OBJ) \
- s_mul64To128$(OBJ) \
- s_mul128By32$(OBJ) \
- s_mul128To256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80UIToCommonNaN$(OBJ) \
- s_commonNaNToExtF80UI$(OBJ) \
- s_propagateNaNExtF80UI$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128UIToCommonNaN$(OBJ) \
- s_commonNaNToF128UI$(OBJ) \
- s_propagateNaNF128UI$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_normSubnormalExtF80Sig$(OBJ) \
- s_roundPackToExtF80$(OBJ) \
- s_normRoundPackToExtF80$(OBJ) \
- s_addMagsExtF80$(OBJ) \
- s_subMagsExtF80$(OBJ) \
- s_normSubnormalF128Sig$(OBJ) \
- s_roundPackToF128$(OBJ) \
- s_normRoundPackToF128$(OBJ) \
- s_addMagsF128$(OBJ) \
- s_subMagsF128$(OBJ) \
- s_mulAddF128$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80_to_ui32$(OBJ) \
- extF80_to_ui64$(OBJ) \
- extF80_to_i32$(OBJ) \
- extF80_to_i64$(OBJ) \
- extF80_to_ui32_r_minMag$(OBJ) \
- extF80_to_ui64_r_minMag$(OBJ) \
- extF80_to_i32_r_minMag$(OBJ) \
- extF80_to_i64_r_minMag$(OBJ) \
- extF80_to_f16$(OBJ) \
- extF80_to_f32$(OBJ) \
- extF80_to_f64$(OBJ) \
- extF80_to_f128$(OBJ) \
- extF80_roundToInt$(OBJ) \
- extF80_add$(OBJ) \
- extF80_sub$(OBJ) \
- extF80_mul$(OBJ) \
- extF80_div$(OBJ) \
- extF80_rem$(OBJ) \
- extF80_sqrt$(OBJ) \
- extF80_eq$(OBJ) \
- extF80_le$(OBJ) \
- extF80_lt$(OBJ) \
- extF80_eq_signaling$(OBJ) \
- extF80_le_quiet$(OBJ) \
- extF80_lt_quiet$(OBJ) \
- extF80_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128_to_ui32$(OBJ) \
- f128_to_ui64$(OBJ) \
- f128_to_i32$(OBJ) \
- f128_to_i64$(OBJ) \
- f128_to_ui32_r_minMag$(OBJ) \
- f128_to_ui64_r_minMag$(OBJ) \
- f128_to_i32_r_minMag$(OBJ) \
- f128_to_i64_r_minMag$(OBJ) \
- f128_to_f16$(OBJ) \
- f128_to_f32$(OBJ) \
- f128_to_extF80$(OBJ) \
- f128_to_f64$(OBJ) \
- f128_roundToInt$(OBJ) \
- f128_add$(OBJ) \
- f128_sub$(OBJ) \
- f128_mul$(OBJ) \
- f128_mulAdd$(OBJ) \
- f128_div$(OBJ) \
- f128_rem$(OBJ) \
- f128_sqrt$(OBJ) \
- f128_eq$(OBJ) \
- f128_le$(OBJ) \
- f128_lt$(OBJ) \
- f128_eq_signaling$(OBJ) \
- f128_le_quiet$(OBJ) \
- f128_lt_quiet$(OBJ) \
- f128_isSignalingNaN$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/template-FAST_INT64/platform.h b/life/resolver/softfloat/build/template-FAST_INT64/platform.h
deleted file mode 100644
index 20946587b3..0000000000
--- a/life/resolver/softfloat/build/template-FAST_INT64/platform.h
+++ /dev/null
@@ -1,50 +0,0 @@
-
-/*============================================================================
-
-This C header template is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-// Edit lines marked with `==>'. See "SoftFloat-source.html".
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define INLINE inline
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define THREAD_LOCAL _Thread_local
-
diff --git a/life/resolver/softfloat/build/template-not-FAST_INT64/Makefile b/life/resolver/softfloat/build/template-not-FAST_INT64/Makefile
deleted file mode 100644
index 48b2cd6bfb..0000000000
--- a/life/resolver/softfloat/build/template-not-FAST_INT64/Makefile
+++ /dev/null
@@ -1,325 +0,0 @@
-
-#=============================================================================
-#
-# This Makefile template is part of the SoftFloat IEEE Floating-Point
-# Arithmetic Package, Release 3e, by John R. Hauser.
-#
-# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-# University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#=============================================================================
-
-# Edit lines marked with `==>'. See "SoftFloat-source.html".
-
-==> SOURCE_DIR ?= ../../source
-==> SPECIALIZE_TYPE ?= 8086
-
-==> SOFTFLOAT_OPTS ?= \
-==> -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
-==> -DSOFTFLOAT_FAST_DIV64TO32
-
-==> DELETE = rm -f
-==> C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
-==> COMPILE_C = cc -c $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
-==> MAKELIB = ar crs $@
-
-==> OBJ = .o
-==> LIB = .a
-
-==> OTHER_HEADERS =
-
-.PHONY: all
-all: softfloat$(LIB)
-
-OBJS_PRIMITIVES = \
- s_compare96M$(OBJ) \
- s_compare128M$(OBJ) \
- s_shortShiftLeft64To96M$(OBJ) \
- s_shortShiftLeftM$(OBJ) \
- s_shiftLeftM$(OBJ) \
- s_shortShiftRightM$(OBJ) \
- s_shortShiftRightJam64$(OBJ) \
- s_shortShiftRightJamM$(OBJ) \
- s_shiftRightJam32$(OBJ) \
- s_shiftRightJam64$(OBJ) \
- s_shiftRightJamM$(OBJ) \
- s_shiftRightM$(OBJ) \
- s_countLeadingZeros8$(OBJ) \
- s_countLeadingZeros16$(OBJ) \
- s_countLeadingZeros32$(OBJ) \
- s_countLeadingZeros64$(OBJ) \
- s_addM$(OBJ) \
- s_addCarryM$(OBJ) \
- s_addComplCarryM$(OBJ) \
- s_negXM$(OBJ) \
- s_sub1XM$(OBJ) \
- s_subM$(OBJ) \
- s_mul64To128M$(OBJ) \
- s_mul128MTo256M$(OBJ) \
- s_approxRecip_1Ks$(OBJ) \
- s_approxRecip32_1$(OBJ) \
- s_approxRecipSqrt_1Ks$(OBJ) \
- s_approxRecipSqrt32_1$(OBJ) \
- s_remStepMBy32$(OBJ) \
-
-OBJS_SPECIALIZE = \
- softfloat_raiseFlags$(OBJ) \
- s_f16UIToCommonNaN$(OBJ) \
- s_commonNaNToF16UI$(OBJ) \
- s_propagateNaNF16UI$(OBJ) \
- s_f32UIToCommonNaN$(OBJ) \
- s_commonNaNToF32UI$(OBJ) \
- s_propagateNaNF32UI$(OBJ) \
- s_f64UIToCommonNaN$(OBJ) \
- s_commonNaNToF64UI$(OBJ) \
- s_propagateNaNF64UI$(OBJ) \
- extF80M_isSignalingNaN$(OBJ) \
- s_extF80MToCommonNaN$(OBJ) \
- s_commonNaNToExtF80M$(OBJ) \
- s_propagateNaNExtF80M$(OBJ) \
- f128M_isSignalingNaN$(OBJ) \
- s_f128MToCommonNaN$(OBJ) \
- s_commonNaNToF128M$(OBJ) \
- s_propagateNaNF128M$(OBJ) \
-
-OBJS_OTHERS = \
- s_roundToUI32$(OBJ) \
- s_roundMToUI64$(OBJ) \
- s_roundToI32$(OBJ) \
- s_roundMToI64$(OBJ) \
- s_normSubnormalF16Sig$(OBJ) \
- s_roundPackToF16$(OBJ) \
- s_normRoundPackToF16$(OBJ) \
- s_addMagsF16$(OBJ) \
- s_subMagsF16$(OBJ) \
- s_mulAddF16$(OBJ) \
- s_normSubnormalF32Sig$(OBJ) \
- s_roundPackToF32$(OBJ) \
- s_normRoundPackToF32$(OBJ) \
- s_addMagsF32$(OBJ) \
- s_subMagsF32$(OBJ) \
- s_mulAddF32$(OBJ) \
- s_normSubnormalF64Sig$(OBJ) \
- s_roundPackToF64$(OBJ) \
- s_normRoundPackToF64$(OBJ) \
- s_addMagsF64$(OBJ) \
- s_subMagsF64$(OBJ) \
- s_mulAddF64$(OBJ) \
- s_tryPropagateNaNExtF80M$(OBJ) \
- s_invalidExtF80M$(OBJ) \
- s_normExtF80SigM$(OBJ) \
- s_roundPackMToExtF80M$(OBJ) \
- s_normRoundPackMToExtF80M$(OBJ) \
- s_addExtF80M$(OBJ) \
- s_compareNonnormExtF80M$(OBJ) \
- s_isNaNF128M$(OBJ) \
- s_tryPropagateNaNF128M$(OBJ) \
- s_invalidF128M$(OBJ) \
- s_shiftNormSigF128M$(OBJ) \
- s_roundPackMToF128M$(OBJ) \
- s_normRoundPackMToF128M$(OBJ) \
- s_addF128M$(OBJ) \
- s_mulAddF128M$(OBJ) \
- softfloat_state$(OBJ) \
- ui32_to_f16$(OBJ) \
- ui32_to_f32$(OBJ) \
- ui32_to_f64$(OBJ) \
- ui32_to_extF80M$(OBJ) \
- ui32_to_f128M$(OBJ) \
- ui64_to_f16$(OBJ) \
- ui64_to_f32$(OBJ) \
- ui64_to_f64$(OBJ) \
- ui64_to_extF80M$(OBJ) \
- ui64_to_f128M$(OBJ) \
- i32_to_f16$(OBJ) \
- i32_to_f32$(OBJ) \
- i32_to_f64$(OBJ) \
- i32_to_extF80M$(OBJ) \
- i32_to_f128M$(OBJ) \
- i64_to_f16$(OBJ) \
- i64_to_f32$(OBJ) \
- i64_to_f64$(OBJ) \
- i64_to_extF80M$(OBJ) \
- i64_to_f128M$(OBJ) \
- f16_to_ui32$(OBJ) \
- f16_to_ui64$(OBJ) \
- f16_to_i32$(OBJ) \
- f16_to_i64$(OBJ) \
- f16_to_ui32_r_minMag$(OBJ) \
- f16_to_ui64_r_minMag$(OBJ) \
- f16_to_i32_r_minMag$(OBJ) \
- f16_to_i64_r_minMag$(OBJ) \
- f16_to_f32$(OBJ) \
- f16_to_f64$(OBJ) \
- f16_to_extF80M$(OBJ) \
- f16_to_f128M$(OBJ) \
- f16_roundToInt$(OBJ) \
- f16_add$(OBJ) \
- f16_sub$(OBJ) \
- f16_mul$(OBJ) \
- f16_mulAdd$(OBJ) \
- f16_div$(OBJ) \
- f16_rem$(OBJ) \
- f16_sqrt$(OBJ) \
- f16_eq$(OBJ) \
- f16_le$(OBJ) \
- f16_lt$(OBJ) \
- f16_eq_signaling$(OBJ) \
- f16_le_quiet$(OBJ) \
- f16_lt_quiet$(OBJ) \
- f16_isSignalingNaN$(OBJ) \
- f32_to_ui32$(OBJ) \
- f32_to_ui64$(OBJ) \
- f32_to_i32$(OBJ) \
- f32_to_i64$(OBJ) \
- f32_to_ui32_r_minMag$(OBJ) \
- f32_to_ui64_r_minMag$(OBJ) \
- f32_to_i32_r_minMag$(OBJ) \
- f32_to_i64_r_minMag$(OBJ) \
- f32_to_f16$(OBJ) \
- f32_to_f64$(OBJ) \
- f32_to_extF80M$(OBJ) \
- f32_to_f128M$(OBJ) \
- f32_roundToInt$(OBJ) \
- f32_add$(OBJ) \
- f32_sub$(OBJ) \
- f32_mul$(OBJ) \
- f32_mulAdd$(OBJ) \
- f32_div$(OBJ) \
- f32_rem$(OBJ) \
- f32_sqrt$(OBJ) \
- f32_eq$(OBJ) \
- f32_le$(OBJ) \
- f32_lt$(OBJ) \
- f32_eq_signaling$(OBJ) \
- f32_le_quiet$(OBJ) \
- f32_lt_quiet$(OBJ) \
- f32_isSignalingNaN$(OBJ) \
- f64_to_ui32$(OBJ) \
- f64_to_ui64$(OBJ) \
- f64_to_i32$(OBJ) \
- f64_to_i64$(OBJ) \
- f64_to_ui32_r_minMag$(OBJ) \
- f64_to_ui64_r_minMag$(OBJ) \
- f64_to_i32_r_minMag$(OBJ) \
- f64_to_i64_r_minMag$(OBJ) \
- f64_to_f16$(OBJ) \
- f64_to_f32$(OBJ) \
- f64_to_extF80M$(OBJ) \
- f64_to_f128M$(OBJ) \
- f64_roundToInt$(OBJ) \
- f64_add$(OBJ) \
- f64_sub$(OBJ) \
- f64_mul$(OBJ) \
- f64_mulAdd$(OBJ) \
- f64_div$(OBJ) \
- f64_rem$(OBJ) \
- f64_sqrt$(OBJ) \
- f64_eq$(OBJ) \
- f64_le$(OBJ) \
- f64_lt$(OBJ) \
- f64_eq_signaling$(OBJ) \
- f64_le_quiet$(OBJ) \
- f64_lt_quiet$(OBJ) \
- f64_isSignalingNaN$(OBJ) \
- extF80M_to_ui32$(OBJ) \
- extF80M_to_ui64$(OBJ) \
- extF80M_to_i32$(OBJ) \
- extF80M_to_i64$(OBJ) \
- extF80M_to_ui32_r_minMag$(OBJ) \
- extF80M_to_ui64_r_minMag$(OBJ) \
- extF80M_to_i32_r_minMag$(OBJ) \
- extF80M_to_i64_r_minMag$(OBJ) \
- extF80M_to_f16$(OBJ) \
- extF80M_to_f32$(OBJ) \
- extF80M_to_f64$(OBJ) \
- extF80M_to_f128M$(OBJ) \
- extF80M_roundToInt$(OBJ) \
- extF80M_add$(OBJ) \
- extF80M_sub$(OBJ) \
- extF80M_mul$(OBJ) \
- extF80M_div$(OBJ) \
- extF80M_rem$(OBJ) \
- extF80M_sqrt$(OBJ) \
- extF80M_eq$(OBJ) \
- extF80M_le$(OBJ) \
- extF80M_lt$(OBJ) \
- extF80M_eq_signaling$(OBJ) \
- extF80M_le_quiet$(OBJ) \
- extF80M_lt_quiet$(OBJ) \
- f128M_to_ui32$(OBJ) \
- f128M_to_ui64$(OBJ) \
- f128M_to_i32$(OBJ) \
- f128M_to_i64$(OBJ) \
- f128M_to_ui32_r_minMag$(OBJ) \
- f128M_to_ui64_r_minMag$(OBJ) \
- f128M_to_i32_r_minMag$(OBJ) \
- f128M_to_i64_r_minMag$(OBJ) \
- f128M_to_f16$(OBJ) \
- f128M_to_f32$(OBJ) \
- f128M_to_f64$(OBJ) \
- f128M_to_extF80M$(OBJ) \
- f128M_roundToInt$(OBJ) \
- f128M_add$(OBJ) \
- f128M_sub$(OBJ) \
- f128M_mul$(OBJ) \
- f128M_mulAdd$(OBJ) \
- f128M_div$(OBJ) \
- f128M_rem$(OBJ) \
- f128M_sqrt$(OBJ) \
- f128M_eq$(OBJ) \
- f128M_le$(OBJ) \
- f128M_lt$(OBJ) \
- f128M_eq_signaling$(OBJ) \
- f128M_le_quiet$(OBJ) \
- f128M_lt_quiet$(OBJ) \
-
-OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
-
-$(OBJS_ALL): \
- $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
- $(SOURCE_DIR)/include/primitives.h
-$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
- $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
- $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
- $(SOURCE_DIR)/include/softfloat.h
-
-$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$*.c
-
-$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
- $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
-
-softfloat$(LIB): $(OBJS_ALL)
- $(DELETE) $@
- $(MAKELIB) $^
-
-.PHONY: clean
-clean:
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
-
diff --git a/life/resolver/softfloat/build/template-not-FAST_INT64/platform.h b/life/resolver/softfloat/build/template-not-FAST_INT64/platform.h
deleted file mode 100644
index 20946587b3..0000000000
--- a/life/resolver/softfloat/build/template-not-FAST_INT64/platform.h
+++ /dev/null
@@ -1,50 +0,0 @@
-
-/*============================================================================
-
-This C header template is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-// Edit lines marked with `==>'. See "SoftFloat-source.html".
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define LITTLEENDIAN 1
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define INLINE inline
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-==> #define THREAD_LOCAL _Thread_local
-
diff --git a/life/resolver/softfloat/doc/SoftFloat-history.html b/life/resolver/softfloat/doc/SoftFloat-history.html
deleted file mode 100644
index d81c6bc5a2..0000000000
--- a/life/resolver/softfloat/doc/SoftFloat-history.html
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-Berkeley SoftFloat History
-
-
-
-
-History of Berkeley SoftFloat, to Release 3e
-
-
-John R. Hauser
-2018 January 20
-
-
-
-Release 3e (2018 January)
-
-
-
--
-Changed the default numeric code for optional rounding mode
odd
-(round to odd, also known as jamming) from 5 to 6.
-
- -
-Modified the behavior of rounding mode
odd
when rounding to an
-integer value (either conversion to an integer format or a
-‘roundToInt
’ function).
-Previously, for those cases only, rounding mode odd
acted the same
-as rounding to minimum magnitude.
-Now all operations are rounded consistently.
-
- -
-Fixed some errors in the specialization code modeling Intel x86 floating-point,
-specifically the integers returned on invalid operations and the propagation of
-NaN payloads in a few rare cases.
-
-
-
-Added specialization code modeling ARM floating-point, conforming to VFPv2 or
-later.
-
-
-
-Added an example target for ARM processors.
-
-
-
-Fixed a minor bug whereby function
f16_to_ui64
might return a
-different integer than expected in the case that the floating-point operand is
-negative.
-
- -
-Added example target-specific optimization for GCC, employing GCC instrinsics
-and support for 128-bit integer arithmetic.
-
-
-
-Made other minor improvements.
-
-
-
-
-Release 3d (2017 August)
-
-
-
--
-Fixed bugs in the square root functions for 64-bit
-double-precision, 80-bit double-extended-precision, and
-128-bit quadruple-precision.
-For 64-bit double-precision (
f64_sqrt
), the result
-could sometimes be off by 1 unit in the last place
-(1 ulp) from what it should be.
-For the larger formats, the square root could be wrong in a large portion of
-the less-significant bits.
-(A bug in f128_sqrt
was first reported by Alexei Sibidanov.)
-
-
-
-
-Release 3c (2017 February)
-
-
-
--
-Added optional rounding mode
odd
(round to odd, also known as
-jamming).
-
- -
-Corrected the documentation concerning non-canonical representations in
-80-bit double-extended-precision.
-
-
-
-
-Release 3b (2016 July)
-
-
-
--
-Implemented the common 16-bit “half-precision”
-floating-point format (
float16_t
).
-
- -
-Made the integer values returned on invalid conversions to integer formats
-be determined by the port-specific specialization instead of being the same for
-all ports.
-
-
-
-Added preprocessor macro
THREAD_LOCAL
to allow the floating-point
-state (modes and exception flags) to be made per-thread.
-
- -
-Modified the provided Makefiles to allow some options to be overridden from the
-
make
command.
-
- -
-Made other minor improvements.
-
-
-
-
-Release 3a (2015 October)
-
-
-
--
-Replaced the license text supplied by the University of California, Berkeley.
-
-
-
-
-Release 3 (2015 February)
-
-
-
--
-Complete rewrite, funded by the University of California, Berkeley, and
-consequently having a different use license than earlier releases.
-Major changes included renaming most types and functions, upgrading some
-algorithms, restructuring the source files, and making SoftFloat into a true
-library.
-
-
-
-Added functions to convert between floating-point and unsigned integers, both
-32-bit and 64-bit (
uint32_t
and
-uint64_t
).
-
- -
-Added functions for fused multiply-add, for all supported floating-point
-formats except 80-bit double-extended-precision.
-
-
-
-Added support for a fifth rounding mode,
near_maxMag
(round to
-nearest, with ties to maximum magnitude, away from zero).
-
- -
-Dropped the
timesoftfloat
program (now part of the Berkeley
-TestFloat package).
-
-
-
-
-Release 2c (2015 January)
-
-
-
--
-Fixed mistakes affecting some 64-bit processors.
-
-
-
-Further improved the documentation and the wording for the legal restrictions
-on using SoftFloat releases through 2c (not applicable to
-Release 3 or later).
-
-
-
-
-Release 2b (2002 May)
-
-
-
--
-Made minor updates to the documentation, including improved wording for the
-legal restrictions on using SoftFloat.
-
-
-
-
-Release 2a (1998 December)
-
-
-
--
-Added functions to convert between 64-bit integers
-(
int64
) and all supported floating-point formats.
-
- -
-Fixed a bug in all 64-bit-version square root functions except
-
float32_sqrt
that caused the result sometimes to be off by
-1 unit in the last place (1 ulp) from what it should
-be.
-(Bug discovered by Paul Donahue.)
-
- -
-Improved the Makefiles.
-
-
-
-Release 2 (1997 June)
-
-
-
--
-Created the 64-bit (
bits64
) version, adding the
-floatx80
and float128
formats.
-
- -
-Changed the source directory structure, splitting the sources into a
-
bits32
and a bits64
version.
-Renamed environment.h
to milieu.h
to avoid confusion
-with environment variables.
-
- -
-Fixed a small error that caused
float64_round_to_int
often to
-round the wrong way in nearest/even mode when the operand was between
-220 and 221 and halfway between two integers.
-
-
-
-
-Release 1a (1996 July)
-
-
-
--
-Corrected a mistake that caused borderline underflow cases not to raise the
-underflow flag when they should have.
-(Problem reported by Doug Priest.)
-
-
-
-Added the
float_detect_tininess
variable to control whether
-tininess is detected before or after rounding.
-
-
-
-
-Release 1 (1996 July)
-
-
-
--
-Original release, based on work done for the International Computer Science
-Institute (ICSI) in Berkeley, California.
-
-
-
-
-
-
diff --git a/life/resolver/softfloat/doc/SoftFloat-source.html b/life/resolver/softfloat/doc/SoftFloat-source.html
deleted file mode 100644
index 4ff9d4c45a..0000000000
--- a/life/resolver/softfloat/doc/SoftFloat-source.html
+++ /dev/null
@@ -1,686 +0,0 @@
-
-
-
-
-Berkeley SoftFloat Source Documentation
-
-
-
-
-Berkeley SoftFloat Release 3e: Source Documentation
-
-
-John R. Hauser
-2018 January 20
-
-
-
-Contents
-
-
-
-
-
-1. Introduction |
-2. Limitations |
-3. Acknowledgments and License |
-4. SoftFloat Package Directory Structure |
-5. Issues for Porting SoftFloat to a New Target |
-
- |
- 5.1. Standard Headers <stdbool.h> and
- <stdint.h> |
-
- | 5.2. Specializing Floating-Point Behavior |
- | 5.3. Macros for Build Options |
- | 5.4. Adapting a Template Target Directory |
-
- | 5.5. Target-Specific Optimization of Primitive Functions |
-
-6. Testing SoftFloat |
-
- 7. Providing SoftFloat as a Common Library for Applications |
-
-8. Contact Information |
-
-
-
-
-1. Introduction
-
-
-This document gives information needed for compiling and/or porting Berkeley
-SoftFloat, a library of C functions implementing binary floating-point
-conforming to the IEEE Standard for Floating-Point Arithmetic.
-For basic documentation about SoftFloat refer to
-SoftFloat.html
.
-
-
-
-The source code for SoftFloat is intended to be relatively machine-independent
-and should be compilable with any ISO-Standard C compiler that also supports
-64-bit integers.
-SoftFloat has been successfully compiled with the GNU C Compiler
-(gcc
) for several platforms.
-
-
-
-Release 3 of SoftFloat was a complete rewrite relative to
-Release 2 or earlier.
-Changes to the interface of SoftFloat functions are documented in
-SoftFloat.html
.
-The current version of SoftFloat is Release 3e.
-
-
-
-2. Limitations
-
-
-SoftFloat assumes the computer has an addressable byte size of either 8 or
-16 bits.
-(Nearly all computers in use today have 8-bit bytes.)
-
-
-
-SoftFloat is written in C and is designed to work with other C code.
-The C compiler used must conform at a minimum to the 1989 ANSI standard for the
-C language (same as the 1990 ISO standard) and must in addition support basic
-arithmetic on 64-bit integers.
-Earlier releases of SoftFloat included implementations of 32-bit
-single-precision and 64-bit double-precision floating-point that
-did not require 64-bit integers, but this option is not supported
-starting with Release 3.
-Since 1999, ISO standards for C have mandated compiler support for
-64-bit integers.
-A compiler conforming to the 1999 C Standard or later is recommended but not
-strictly required.
-
-
-
-C Standard header files <stdbool.h>
and
-<stdint.h>
are required for defining standard Boolean and
-integer types.
-If these headers are not supplied with the C compiler, minimal substitutes must
-be provided.
-SoftFloat’s dependence on these headers is detailed later in
-section 5.1, Standard Headers <stdbool.h>
-and <stdint.h>
.
-
-
-
-3. Acknowledgments and License
-
-
-The SoftFloat package was written by me, John R. Hauser.
-Release 3 of SoftFloat was a completely new implementation
-supplanting earlier releases.
-The project to create Release 3 (now through 3e) was
-done in the employ of the University of California, Berkeley, within the
-Department of Electrical Engineering and Computer Sciences, first for the
-Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
-The work was officially overseen by Prof. Krste Asanovic, with funding provided
-by these sources:
-
-
-
-
-
-
-Par Lab: |
- |
-
-Microsoft (Award #024263), Intel (Award #024894), and U.C. Discovery
-(Award #DIG07-10227), with additional support from Par Lab affiliates Nokia,
-NVIDIA, Oracle, and Samsung.
- |
-
-
-ASPIRE Lab: |
- |
-
-DARPA PERFECT program (Award #HR0011-12-2-0016), with additional support from
-ASPIRE industrial sponsor Intel and ASPIRE affiliates Google, Nokia, NVIDIA,
-Oracle, and Samsung.
- |
-
-
-
-
-
-
-The following applies to the whole of SoftFloat Release 3e as well
-as to each source file individually.
-
-
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
-University of California.
-All rights reserved.
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-
--
-
-Redistributions of source code must retain the above copyright notice, this
-list of conditions, and the following disclaimer.
-
-
- -
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions, and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-
- -
-
-Neither the name of the University nor the names of its contributors may be
-used to endorse or promote products derived from this software without specific
-prior written permission.
-
-
-
-
-
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS”,
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED.
-IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-4. SoftFloat Package Directory Structure
-
-
-Because SoftFloat is targeted to multiple platforms, its source code is
-slightly scattered between target-specific and target-independent directories
-and files.
-The supplied directory structure is as follows:
-
-
-doc
-source
- include
- 8086
- 8086-SSE
- ARM-VFPv2
- ARM-VFPv2-defaultNaN
-build
- template-FAST_INT64
- template-not-FAST_INT64
- Linux-386-GCC
- Linux-386-SSE2-GCC
- Linux-x86_64-GCC
- Linux-ARM-VFPv2-GCC
- Win32-MinGW
- Win32-SSE2-MinGW
- Win64-MinGW-w64
-
-
-The majority of the SoftFloat sources are provided in the source
-directory.
-The include
subdirectory contains several header files
-(unsurprisingly), while the other subdirectories of source
contain
-source files that specialize the floating-point behavior to match particular
-processor families:
-
-
-8086
--
-Intel’s older, 8087-derived floating-point, extended to all supported
-floating-point types
-
-8086-SSE
--
-Intel’s x86 processors with Streaming SIMD Extensions (SSE) and later
-compatible extensions, having 8087 behavior for 80-bit
-double-extended-precision (
extFloat80_t
) and SSE behavior for
-other floating-point types
-
-ARM-VFPv2
--
-ARM’s VFPv2 or later floating-point, with NaN payload propagation
-
-ARM-VFPv2-defaultNaN
--
-ARM’s VFPv2 or later floating-point, with the “default NaN”
-option
-
-
-
-If other specializations are attempted, these would be expected to be other
-subdirectories of source
alongside the ones listed above.
-Specialization is covered later, in section 5.2, Specializing
-Floating-Point Behavior.
-
-
-
-The build
directory is intended to contain a subdirectory for each
-target platform for which a build of the SoftFloat library may be created.
-For each build target, the target’s subdirectory is where all derived
-object files and the completed SoftFloat library (typically
-softfloat.a
or libsoftfloat.a
) are created.
-The two template
subdirectories are not actual build targets but
-contain sample files for creating new target directories.
-(The meaning of FAST_INT64
will be explained later.)
-
-
-
-Ignoring the template
directories, the supplied target directories
-are intended to follow a naming system of
-<execution-environment>-<compiler>
.
-For the example targets,
-<execution-environment>
is
-Linux-386
, Linux-386-SSE2
,
-Linux-x86_64
,
-Linux-ARM-VFPv2
, Win32
,
-Win32-SSE2
, or Win64
, and
-<compiler>
is GCC
,
-MinGW
, or MinGW-w64
.
-
-
-
-All of the supplied target directories are merely examples that may or may not
-be correct for compiling on any particular system.
-Despite requests, there are currently no plans to include and maintain in the
-SoftFloat package the build files needed for a great many users’
-compilation environments, which can span a huge range of operating systems,
-compilers, and other tools.
-
-
-
-As supplied, each target directory contains two files:
-
-
-Makefile
-platform.h
-
-
-The provided Makefile
is written for GNU make
.
-A build of SoftFloat for the specific target is begun by executing the
-make
command with the target directory as the current directory.
-A completely different build tool can be used if an appropriate
-Makefile
equivalent is created.
-
-
-
-The platform.h
header file exists to provide a location for
-additional C declarations specific to the build target.
-Every C source file of SoftFloat contains a #include
for
-platform.h
.
-In many cases, the contents of platform.h
can be as simple as one
-or two lines of code.
-At the other extreme, to get maximal performance from SoftFloat, it may be
-desirable to include in header platform.h
(directly or via
-#include
) declarations for numerous target-specific optimizations.
-Such possibilities are discussed in the next section, Issues for Porting
-SoftFloat to a New Target.
-If the target’s compiler or library has bugs or other shortcomings,
-workarounds for these issues may also be possible with target-specific
-declarations in platform.h
, avoiding the need to modify the main
-SoftFloat sources.
-
-
-
-5. Issues for Porting SoftFloat to a New Target
-
-5.1. Standard Headers <stdbool.h>
and <stdint.h>
-
-
-The SoftFloat sources make use of standard headers
-<stdbool.h>
and <stdint.h>
, which have
-been part of the ISO C Standard Library since 1999.
-With any recent compiler, these standard headers are likely to be supported,
-even if the compiler does not claim complete conformance to the latest ISO C
-Standard.
-For older or nonstandard compilers, substitutes for
-<stdbool.h>
and <stdint.h>
may need to be
-created.
-SoftFloat depends on these names from <stdbool.h>
:
-
-
-bool
-true
-false
-
-
-and on these names from <stdint.h>
:
-
-
-uint16_t
-uint32_t
-uint64_t
-int32_t
-int64_t
-UINT64_C
-INT64_C
-uint_least8_t
-uint_fast8_t
-uint_fast16_t
-uint_fast32_t
-uint_fast64_t
-int_fast8_t
-int_fast16_t
-int_fast32_t
-int_fast64_t
-
-
-
-
-
-5.2. Specializing Floating-Point Behavior
-
-
-The IEEE Floating-Point Standard allows for some flexibility in a conforming
-implementation, particularly concerning NaNs.
-The SoftFloat source
directory is supplied with some
-specialization subdirectories containing possible definitions for this
-implementation-specific behavior.
-For example, the 8086
and 8086-SSE
-subdirectories have source files that specialize SoftFloat’s behavior to
-match that of Intel’s x86 line of processors.
-The files in a specialization subdirectory must determine:
-
--
-whether tininess for underflow is detected before or after rounding by default;
-
-
-how signaling NaNs are distinguished from quiet NaNs;
-
-
-what (if anything) special happens when exceptions are raised;
-
-
-the default generated quiet NaNs;
-
-
-how NaNs are propagated from function inputs to output; and
-
-
-the integer results returned when conversions to integer type raise the
-invalid exception.
-
-
-
-
-As provided, the build process for a target expects to involve exactly
-one specialization directory that defines all of these
-implementation-specific details for the target.
-A specialization directory such as 8086
is expected to contain a
-header file called specialize.h
, together with whatever other
-source files are needed to complete the specialization.
-
-
-
-A new build target may use an existing specialization, such as the ones
-provided by the 8086
and 8086-SSE
-subdirectories.
-If a build target needs a new specialization, different from any existing ones,
-it is recommended that a new specialization directory be created for this
-purpose.
-The specialize.h
header file from any of the provided
-specialization subdirectories can be used as a model for what definitions are
-needed.
-
-
-
-5.3. Macros for Build Options
-
-
-The SoftFloat source files adapt the floating-point implementation according to
-several C preprocessor macros:
-
-
-LITTLEENDIAN
--
-Must be defined for little-endian machines; must not be defined for big-endian
-machines.
-
INLINE
--
-Specifies the sequence of tokens used to indicate that a C function should be
-inlined.
-If macro
INLINE_LEVEL
is defined with a value of 1 or higher, this
-macro must be defined; otherwise, this macro is ignored and need not be
-defined.
-For compilers that conform to the C Standard’s rules for inline
-functions, this macro can be defined as the single keyword inline
.
-For other compilers that follow a convention pre-dating the standardization of
-inline
, this macro may need to be defined to extern
-inline
.
- THREAD_LOCAL
--
-Can be defined to a sequence of tokens that, when appearing at the start of a
-variable declaration, indicates to the C compiler that the variable is
-per-thread, meaning that each execution thread gets its own separate
-instance of the variable.
-This macro is used in header
softfloat.h
in the declarations of
-variables softfloat_roundingMode
,
-softfloat_detectTininess
, extF80_roundingPrecision
,
-and softfloat_exceptionFlags
.
-If macro THREAD_LOCAL
is left undefined, these variables will
-default to being ordinary global variables.
-Depending on the compiler, possible valid definitions of this macro include
-_Thread_local
and __thread
.
-
-
-SOFTFLOAT_ROUND_ODD
--
-Can be defined to enable support for optional rounding mode
-
softfloat_round_odd
.
-
-
-INLINE_LEVEL
--
-Can be defined to an integer to determine the degree of inlining requested of
-the compiler.
-Larger numbers request that more inlining be done.
-If this macro is not defined or is defined to a value less than 1
-(zero or negative), no inlining is requested.
-The maximum effective value is no higher than 5.
-Defining this macro to a value greater than 5 is the same as defining it
-to 5.
-
SOFTFLOAT_FAST_INT64
--
-Can be defined to indicate that the build target’s implementation of
-64-bit arithmetic is efficient.
-For newer 64-bit processors, this macro should usually be defined.
-For very small microprocessors whose buses and registers are 8-bit
-or 16-bit in size, this macro should usually not be defined.
-Whether this macro should be defined for a 32-bit processor may
-depend on the target machine and the applications that will use SoftFloat.
-
SOFTFLOAT_FAST_DIV32TO16
--
-Can be defined to indicate that the target’s division operator
-in C (written as
/
) is reasonably efficient for
-dividing a 32-bit unsigned integer by a 16-bit
-unsigned integer.
-Setting this macro may affect the performance of function f16_div
.
- SOFTFLOAT_FAST_DIV64TO32
--
-Can be defined to indicate that the target’s division operator
-in C (written as
/
) is reasonably efficient for
-dividing a 64-bit unsigned integer by a 32-bit
-unsigned integer.
-Setting this macro may affect the performance of division, remainder, and
-square root operations other than f16_div
.
-
-
-
-
-
-Following the usual custom for C, for most of these macros (all
-except INLINE
, THREAD_LOCAL
, and
-INLINE_LEVEL
), the content of any definition is irrelevant;
-what matters is a macro’s effect on #ifdef
directives.
-
-
-
-It is recommended that any definitions of macros LITTLEENDIAN
,
-INLINE
, and THREAD_LOCAL
be made in a build
-target’s platform.h
header file, because these macros are
-expected to be determined inflexibly by the target machine and compiler.
-The other five macros select options and control optimization, and thus might
-be better located in the target’s Makefile (or its equivalent).
-
-
-
-5.4. Adapting a Template Target Directory
-
-
-In the build
directory, two template
subdirectories
-provide models for new target directories.
-Two different templates exist because different functions are needed in the
-SoftFloat library depending on whether macro SOFTFLOAT_FAST_INT64
-is defined.
-If macro SOFTFLOAT_FAST_INT64
will be defined,
-template-FAST_INT64
is the template to use;
-otherwise, template-not-FAST_INT64
is the appropriate
-template.
-A new target directory can be created by copying the correct template directory
-and editing the files inside.
-To avoid confusion, it would be wise to refrain from editing the files within a
-template directory directly.
-
-
-
-5.5. Target-Specific Optimization of Primitive Functions
-
-
-Header file primitives.h
(in directory
-source/include
) declares macros and functions for numerous
-underlying arithmetic operations upon which many of SoftFloat’s
-floating-point functions are ultimately built.
-The SoftFloat sources include implementations of all of these functions/macros,
-written as standard C code, so a complete and correct SoftFloat library can be
-created using only the supplied code for all functions.
-However, for many targets, SoftFloat’s performance can be improved by
-substituting target-specific implementations of some of the functions/macros
-declared in primitives.h
.
-
-
-
-For example, primitives.h
declares a function called
-softfloat_countLeadingZeros32
that takes an unsigned
-32-bit integer as an argument and returns the number of the
-integer’s most-significant bits that are zeros.
-While the SoftFloat sources include an implementation of this function written
-in standard C, many processors can perform this same function
-directly in only one or two machine instructions.
-An alternative, target-specific implementation that maps to those instructions
-is likely to be more efficient than the generic C code from the SoftFloat
-package.
-
-
-
-A build target can replace the supplied version of any function or macro of
-primitives.h
by defining a macro with the same name in the
-target’s platform.h
header file.
-For this purpose, it may be helpful for platform.h
to
-#include
header file primitiveTypes.h
, which defines
-types used for arguments and results of functions declared in
-primitives.h
.
-When a desired replacement implementation is a function, not a macro, it is
-sufficient for platform.h
to include the line
-
-
-#define <function-name> <function-name>
-
-
-where <function-name>
is the name of the
-function.
-This technically defines <function-name>
-as a macro, but one that resolves to the same name, which may then be a
-function.
-(A preprocessor that conforms to the C Standard is required to limit recursive
-macro expansion from being applied more than once.)
-
-
-
-The supplied header file opts-GCC.h
(in directory
-source/include
) provides an example of target-specific
-optimization for the GCC compiler.
-Each GCC target example in the build
directory has
-
-#include "opts-GCC.h"
-
-in its platform.h
header file.
-Before opts-GCC.h
is included, the following macros must be
-defined (or not) to control which features are invoked:
-
-
-SOFTFLOAT_BUILTIN_CLZ
--
-If defined, SoftFloat’s internal
-‘
countLeadingZeros
’ functions use intrinsics
-__builtin_clz
and __builtin_clzll
.
-
-SOFTFLOAT_INTRINSIC_INT128
--
-If defined, SoftFloat makes use of GCC’s nonstandard 128-bit
-integer type
__int128
.
-
-
-
-On some machines, these improvements are observed to increase the speeds of
-f64_mul
and f128_mul
by around 20 to 25%, although
-other functions receive less dramatic boosts, or none at all.
-Results can vary greatly across different platforms.
-
-
-
-6. Testing SoftFloat
-
-
-SoftFloat can be tested using the testsoftfloat
program by the
-same author.
-This program is part of the Berkeley TestFloat package available at the Web
-page
-http://www.jhauser.us/arithmetic/TestFloat.html
.
-The TestFloat package also has a program called timesoftfloat
that
-measures the speed of SoftFloat’s floating-point functions.
-
-
-
-7. Providing SoftFloat as a Common Library for Applications
-
-
-Header file softfloat.h
defines the SoftFloat interface as seen by
-clients.
-If the SoftFloat library will be made a common library for programs on a
-system, the supplied softfloat.h
has a couple of deficiencies for
-this purpose:
-
--
-As supplied,
softfloat.h
depends on another header,
-softfloat_types.h
, that is not intended for public use but which
-must also be visible to the programmer’s compiler.
- -
-More troubling, at the time
softfloat.h
is included in a C source
-file, macros SOFTFLOAT_FAST_INT64
and THREAD_LOCAL
-must be defined, or not defined, consistent with how these macro were defined
-when the SoftFloat library was built.
-
-In the situation that new programs may regularly #include
header
-file softfloat.h
, it is recommended that a custom, self-contained
-version of this header file be created that eliminates these issues.
-
-
-
-8. Contact Information
-
-
-At the time of this writing, the most up-to-date information about SoftFloat
-and the latest release can be found at the Web page
-http://www.jhauser.us/arithmetic/SoftFloat.html
.
-
-
-
-
-
diff --git a/life/resolver/softfloat/doc/SoftFloat.html b/life/resolver/softfloat/doc/SoftFloat.html
deleted file mode 100644
index b72b407f4f..0000000000
--- a/life/resolver/softfloat/doc/SoftFloat.html
+++ /dev/null
@@ -1,1527 +0,0 @@
-
-
-
-
-Berkeley SoftFloat Library Interface
-
-
-
-
-Berkeley SoftFloat Release 3e: Library Interface
-
-
-John R. Hauser
-2018 January 20
-
-
-
-Contents
-
-
-
-
-
-1. Introduction |
-2. Limitations |
-3. Acknowledgments and License |
-4. Types and Functions |
- | 4.1. Boolean and Integer Types |
- | 4.2. Floating-Point Types |
- | 4.3. Supported Floating-Point Functions |
-
- |
- 4.4. Non-canonical Representations in extFloat80_t |
-
- | 4.5. Conventions for Passing Arguments and Results |
-5. Reserved Names |
-6. Mode Variables |
- | 6.1. Rounding Mode |
- | 6.2. Underflow Detection |
-
- |
- 6.3. Rounding Precision for the 80-Bit Extended Format |
-
-7. Exceptions and Exception Flags |
-8. Function Details |
- | 8.1. Conversions from Integer to Floating-Point |
- | 8.2. Conversions from Floating-Point to Integer |
- | 8.3. Conversions Among Floating-Point Types |
- | 8.4. Basic Arithmetic Functions |
- | 8.5. Fused Multiply-Add Functions |
- | 8.6. Remainder Functions |
- | 8.7. Round-to-Integer Functions |
- | 8.8. Comparison Functions |
- | 8.9. Signaling NaN Test Functions |
- | 8.10. Raise-Exception Function |
-9. Changes from SoftFloat Release 2 |
- | 9.1. Name Changes |
- | 9.2. Changes to Function Arguments |
- | 9.3. Added Capabilities |
- | 9.4. Better Compatibility with the C Language |
- | 9.5. New Organization as a Library |
- | 9.6. Optimization Gains (and Losses) |
-10. Future Directions |
-11. Contact Information |
-
-
-
-
-1. Introduction
-
-
-Berkeley SoftFloat is a software implementation of binary floating-point that
-conforms to the IEEE Standard for Floating-Point Arithmetic.
-The current release supports five binary formats: 16-bit
-half-precision, 32-bit single-precision, 64-bit
-double-precision, 80-bit double-extended-precision, and
-128-bit quadruple-precision.
-The following functions are supported for each format:
-
--
-addition, subtraction, multiplication, division, and square root;
-
-
-fused multiply-add as defined by the IEEE Standard, except for
-80-bit double-extended-precision;
-
-
-remainder as defined by the IEEE Standard;
-
-
-round to integral value;
-
-
-comparisons;
-
-
-conversions to/from other supported formats; and
-
-
-conversions to/from 32-bit and 64-bit integers,
-signed and unsigned.
-
-All operations required by the original 1985 version of the IEEE Floating-Point
-Standard are implemented, except for conversions to and from decimal.
-
-
-
-This document gives information about the types defined and the routines
-implemented by SoftFloat.
-It does not attempt to define or explain the IEEE Floating-Point Standard.
-Information about the standard is available elsewhere.
-
-
-
-The current version of SoftFloat is Release 3e.
-This release modifies the behavior of the rarely used odd rounding mode
-(round to odd, also known as jamming), and also adds some new
-specialization and optimization examples for those compiling SoftFloat.
-
-
-
-The previous Release 3d fixed bugs that were found in the square
-root functions for the 64-bit, 80-bit, and
-128-bit floating-point formats.
-(Thanks to Alexei Sibidanov at the University of Victoria for reporting an
-incorrect result.)
-The bugs affected all prior Release-3 versions of SoftFloat
-through 3c.
-The flaw in the 64-bit floating-point square root function was of
-very minor impact, causing a 1-ulp error (1 unit in
-the last place) a few times out of a billion.
-The bugs in the 80-bit and 128-bit square root
-functions were more serious.
-Although incorrect results again occurred only a few times out of a billion,
-when they did occur a large portion of the less-significant bits could be
-wrong.
-
-
-
-Among earlier releases, 3b was notable for adding support for the
-16-bit half-precision format.
-For more about the evolution of SoftFloat releases, see
-SoftFloat-history.html
.
-
-
-
-The functional interface of SoftFloat Release 3 and later differs
-in many details from the releases that came before.
-For specifics of these differences, see section 9 below,
-Changes from SoftFloat Release 2.
-
-
-
-2. Limitations
-
-
-SoftFloat assumes the computer has an addressable byte size of 8 or
-16 bits.
-(Nearly all computers in use today have 8-bit bytes.)
-
-
-
-SoftFloat is written in C and is designed to work with other C code.
-The C compiler used must conform at a minimum to the 1989 ANSI standard for the
-C language (same as the 1990 ISO standard) and must in addition support basic
-arithmetic on 64-bit integers.
-Earlier releases of SoftFloat included implementations of 32-bit
-single-precision and 64-bit double-precision floating-point that
-did not require 64-bit integers, but this option is not supported
-starting with Release 3.
-Since 1999, ISO standards for C have mandated compiler support for
-64-bit integers.
-A compiler conforming to the 1999 C Standard or later is recommended but not
-strictly required.
-
-
-
-Most operations not required by the original 1985 version of the IEEE
-Floating-Point Standard but added in the 2008 version are not yet supported in
-SoftFloat Release 3e.
-
-
-
-3. Acknowledgments and License
-
-
-The SoftFloat package was written by me, John R. Hauser.
-Release 3 of SoftFloat was a completely new implementation
-supplanting earlier releases.
-The project to create Release 3 (now through 3e) was
-done in the employ of the University of California, Berkeley, within the
-Department of Electrical Engineering and Computer Sciences, first for the
-Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
-The work was officially overseen by Prof. Krste Asanovic, with funding provided
-by these sources:
-
-
-
-
-
-
-Par Lab: |
- |
-
-Microsoft (Award #024263), Intel (Award #024894), and U.C. Discovery
-(Award #DIG07-10227), with additional support from Par Lab affiliates Nokia,
-NVIDIA, Oracle, and Samsung.
- |
-
-
-ASPIRE Lab: |
- |
-
-DARPA PERFECT program (Award #HR0011-12-2-0016), with additional support from
-ASPIRE industrial sponsor Intel and ASPIRE affiliates Google, Nokia, NVIDIA,
-Oracle, and Samsung.
- |
-
-
-
-
-
-
-The following applies to the whole of SoftFloat Release 3e as well
-as to each source file individually.
-
-
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
-University of California.
-All rights reserved.
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-
--
-
-Redistributions of source code must retain the above copyright notice, this
-list of conditions, and the following disclaimer.
-
-
- -
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions, and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-
- -
-
-Neither the name of the University nor the names of its contributors may be
-used to endorse or promote products derived from this software without specific
-prior written permission.
-
-
-
-
-
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS”,
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED.
-IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-4. Types and Functions
-
-
-The types and functions of SoftFloat are declared in header file
-softfloat.h
.
-
-
-4.1. Boolean and Integer Types
-
-
-Header file softfloat.h
depends on standard headers
-<stdbool.h>
and <stdint.h>
to define type
-bool
and several integer types.
-These standard headers have been part of the ISO C Standard Library since 1999.
-With any recent compiler, they are likely to be supported, even if the compiler
-does not claim complete conformance to the latest ISO C Standard.
-For older or nonstandard compilers, a port of SoftFloat may have substitutes
-for these headers.
-Header softfloat.h
depends only on the name bool
from
-<stdbool.h>
and on these type names from
-<stdint.h>
:
-
-
-uint16_t
-uint32_t
-uint64_t
-int32_t
-int64_t
-uint_fast8_t
-uint_fast32_t
-uint_fast64_t
-int_fast32_t
-int_fast64_t
-
-
-
-
-
-4.2. Floating-Point Types
-
-
-The softfloat.h
header defines five floating-point types:
-
-
-
-float16_t |
-16-bit half-precision binary format |
-
-
-float32_t |
-32-bit single-precision binary format |
-
-
-float64_t |
-64-bit double-precision binary format |
-
-
-extFloat80_t |
-80-bit double-extended-precision binary format (old Intel or
-Motorola format) |
-
-
-float128_t |
-128-bit quadruple-precision binary format |
-
-
-
-The non-extended types are each exactly the size specified:
-16 bits for float16_t
, 32 bits for
-float32_t
, 64 bits for float64_t
, and
-128 bits for float128_t
.
-Aside from these size requirements, the definitions of all these types may
-differ for different ports of SoftFloat to specific systems.
-A given port of SoftFloat may or may not define some of the floating-point
-types as aliases for the C standard types float
,
-double
, and long
double
.
-
-
-
-Header file softfloat.h
also defines a structure,
-struct
extFloat80M
, for the representation of
-80-bit double-extended-precision floating-point values in memory.
-This structure is the same size as type extFloat80_t
and contains
-at least these two fields (not necessarily in this order):
-
-
-uint16_t signExp;
-uint64_t signif;
-
-
-Field signExp
contains the sign and exponent of the floating-point
-value, with the sign in the most significant bit (bit 15) and the
-encoded exponent in the other 15 bits.
-Field signif
is the complete 64-bit significand of
-the floating-point value.
-(In the usual encoding for 80-bit extended floating-point, the
-leading 1 bit of normalized numbers is not implicit but is stored
-in the most significant bit of the significand.)
-
-
-4.3. Supported Floating-Point Functions
-
-
-SoftFloat implements these arithmetic operations for its floating-point types:
-
--
-conversions between any two floating-point formats;
-
-
-for each floating-point format, conversions to and from signed and unsigned
-32-bit and 64-bit integers;
-
-
-for each format, the usual addition, subtraction, multiplication, division, and
-square root operations;
-
-
-for each format except
extFloat80_t
, the fused multiply-add
-operation defined by the IEEE Standard;
- -
-for each format, the floating-point remainder operation defined by the IEEE
-Standard;
-
-
-for each format, a “round to integer” operation that rounds to the
-nearest integer value in the same format; and
-
-
-comparisons between two values in the same floating-point format.
-
-
-
-
-The following operations required by the 2008 IEEE Floating-Point Standard are
-not supported in SoftFloat Release 3e:
-
--
-nextUp, nextDown, minNum, maxNum, minNumMag,
-maxNumMag, scaleB, and logB;
-
-
-conversions between floating-point formats and decimal or hexadecimal character
-sequences;
-
-
-all “quiet-computation” operations (copy, negate,
-abs, and copySign, which all involve only simple copying and/or
-manipulation of the floating-point sign bit); and
-
-
-all “non-computational” operations other than isSignaling
-(which is supported).
-
-
-
-4.4. Non-canonical Representations in extFloat80_t
-
-
-Because the 80-bit double-extended-precision format,
-extFloat80_t
, stores an explicit leading significand bit, many
-finite floating-point numbers are encodable in this type in multiple equivalent
-forms.
-Of these multiple encodings, there is always a unique one with the least
-encoded exponent value, and this encoding is considered the canonical
-representation of the floating-point number.
-Any other equivalent representations (having a higher encoded exponent value)
-are non-canonical.
-For a value in the subnormal range (including zero), the canonical
-representation always has an encoded exponent of zero and a leading significand
-bit of 0.
-For finite values outside the subnormal range, the canonical representation
-always has an encoded exponent that is nonzero and a leading significand bit
-of 1.
-
-
-
-For an infinity or NaN, the leading significand bit is similarly expected to
-be 1.
-An infinity or NaN with a leading significand bit of 0 is again
-considered non-canonical.
-Hence, altogether, to be canonical, a value of type extFloat80_t
-must have a leading significand bit of 1, unless the value is
-subnormal or zero, in which case the leading significand bit and the encoded
-exponent must both be zero.
-
-
-
-SoftFloat’s functions are not guaranteed to operate as expected when
-inputs of type extFloat80_t
are non-canonical.
-Assuming all of a function’s extFloat80_t
inputs (if any)
-are canonical, function outputs of type extFloat80_t
will always
-be canonical.
-
-
-4.5. Conventions for Passing Arguments and Results
-
-
-Values that are at most 64 bits in size (i.e., not the
-80-bit or 128-bit floating-point formats) are in all
-cases passed as function arguments by value.
-Likewise, when an output of a function is no more than 64 bits, it
-is always returned directly as the function result.
-Thus, for example, the SoftFloat function for adding two 64-bit
-floating-point values has this simple signature:
-
-float64_t f64_add( float64_t, float64_t );
-
-
-
-
-The story is more complex when function inputs and outputs are
-80-bit and 128-bit floating-point.
-For these types, SoftFloat always provides a function that passes these larger
-values into or out of the function indirectly, via pointers.
-For example, for adding two 128-bit floating-point values,
-SoftFloat supplies this function:
-
-void f128M_add( const float128_t *, const float128_t *, float128_t * );
-
-The first two arguments point to the values to be added, and the last argument
-points to the location where the sum will be stored.
-The M
in the name f128M_add
is mnemonic for the fact
-that the 128-bit inputs and outputs are “in memory”,
-pointed to by pointer arguments.
-
-
-
-All ports of SoftFloat implement these pass-by-pointer functions for
-types extFloat80_t
and float128_t
.
-At the same time, SoftFloat ports may also implement alternate versions of
-these same functions that pass extFloat80_t
and
-float128_t
by value, like the smaller formats.
-Thus, besides the function with name f128M_add
shown above, a
-SoftFloat port may also supply an equivalent function with this signature:
-
-float128_t f128_add( float128_t, float128_t );
-
-
-
-
-As a general rule, on computers where the machine word size is
-32 bits or smaller, only the pass-by-pointer versions of functions
-(e.g., f128M_add
) are provided for types extFloat80_t
-and float128_t
, because passing such large types directly can have
-significant extra cost.
-On computers where the word size is 64 bits or larger, both
-function versions (f128M_add
and f128_add
) are
-provided, because the cost of passing by value is then more reasonable.
-Applications that must be portable accross both classes of computers must use
-the pointer-based functions, as these are always implemented.
-However, if it is known that SoftFloat includes the by-value functions for all
-platforms of interest, programmers can use whichever version they prefer.
-
-
-
-5. Reserved Names
-
-
-In addition to the variables and functions documented here, SoftFloat defines
-some symbol names for its own private use.
-These private names always begin with the prefix
-‘softfloat_
’.
-When a program includes header softfloat.h
or links with the
-SoftFloat library, all names with prefix ‘softfloat_
’
-are reserved for possible use by SoftFloat.
-Applications that use SoftFloat should not define their own names with this
-prefix, and should reference only such names as are documented.
-
-
-
-6. Mode Variables
-
-
-The following global variables control rounding mode, underflow detection, and
-the 80-bit extended format’s rounding precision:
-
-softfloat_roundingMode
-softfloat_detectTininess
-extF80_roundingPrecision
-
-These mode variables are covered in the next several subsections.
-For some SoftFloat ports, these variables may be per-thread (declared
-thread_local
), meaning that different execution threads have their
-own separate copies of the variables.
-
-
-6.1. Rounding Mode
-
-
-All five rounding modes defined by the 2008 IEEE Floating-Point Standard are
-implemented for all operations that require rounding.
-Some ports of SoftFloat may also implement the round-to-odd mode.
-
-
-
-The rounding mode is selected by the global variable
-
-uint_fast8_t softfloat_roundingMode;
-
-This variable may be set to one of the values
-
-
-
-softfloat_round_near_even |
-round to nearest, with ties to even |
-
-
-softfloat_round_near_maxMag |
-round to nearest, with ties to maximum magnitude (away from zero) |
-
-
-softfloat_round_minMag |
-round to minimum magnitude (toward zero) |
-
-
-softfloat_round_min |
-round to minimum (down) |
-
-
-softfloat_round_max |
-round to maximum (up) |
-
-
-softfloat_round_odd |
-round to odd (jamming), if supported by the SoftFloat port |
-
-
-
-Variable softfloat_roundingMode
is initialized to
-softfloat_round_near_even
.
-
-
-
-When softfloat_round_odd
is the rounding mode for a function that
-rounds to an integer value (either conversion to an integer format or a
-‘roundToInt
’ function), if the input is not already an
-integer, the rounded result is the closest odd integer.
-For other operations, this rounding mode acts as though the floating-point
-result is first rounded to minimum magnitude, the same as
-softfloat_round_minMag
, and then, if the result is inexact, the
-least-significant bit of the result is set to 1.
-Rounding to odd is also known as jamming.
-
-
-6.2. Underflow Detection
-
-
-In the terminology of the IEEE Standard, SoftFloat can detect tininess for
-underflow either before or after rounding.
-The choice is made by the global variable
-
-uint_fast8_t softfloat_detectTininess;
-
-which can be set to either
-
-softfloat_tininess_beforeRounding
-softfloat_tininess_afterRounding
-
-Detecting tininess after rounding is usually better because it results in fewer
-spurious underflow signals.
-The other option is provided for compatibility with some systems.
-Like most systems (and as required by the newer 2008 IEEE Standard), SoftFloat
-always detects loss of accuracy for underflow as an inexact result.
-
-
-6.3. Rounding Precision for the 80-Bit Extended Format
-
-
-For extFloat80_t
only, the rounding precision of the basic
-arithmetic operations is controlled by the global variable
-
-uint_fast8_t extF80_roundingPrecision;
-
-The operations affected are:
-
-extF80_add
-extF80_sub
-extF80_mul
-extF80_div
-extF80_sqrt
-
-When extF80_roundingPrecision
is set to its default value of 80,
-these operations are rounded to the full precision of the 80-bit
-double-extended-precision format, like occurs for other formats.
-Setting extF80_roundingPrecision
to 32 or to 64 causes the
-operations listed to be rounded to 32-bit precision (equivalent to
-float32_t
) or to 64-bit precision (equivalent to
-float64_t
), respectively.
-When rounding to reduced precision, additional bits in the result significand
-beyond the rounding point are set to zero.
-The consequences of setting extF80_roundingPrecision
to a value
-other than 32, 64, or 80 is not specified.
-Operations other than the ones listed above are not affected by
-extF80_roundingPrecision
.
-
-
-
-7. Exceptions and Exception Flags
-
-
-All five exception flags required by the IEEE Floating-Point Standard are
-implemented.
-Each flag is stored as a separate bit in the global variable
-
-uint_fast8_t softfloat_exceptionFlags;
-
-The positions of the exception flag bits within this variable are determined by
-the bit masks
-
-softfloat_flag_inexact
-softfloat_flag_underflow
-softfloat_flag_overflow
-softfloat_flag_infinite
-softfloat_flag_invalid
-
-Variable softfloat_exceptionFlags
is initialized to all zeros,
-meaning no exceptions.
-
-
-
-For some SoftFloat ports, softfloat_exceptionFlags
may be
-per-thread (declared thread_local
), meaning that different
-execution threads have their own separate instances of it.
-
-
-
-An individual exception flag can be cleared with the statement
-
-softfloat_exceptionFlags &= ~softfloat_flag_<exception>;
-
-where <exception>
is the appropriate name.
-To raise a floating-point exception, function softfloat_raiseFlags
-should normally be used.
-
-
-
-When SoftFloat detects an exception other than inexact, it calls
-softfloat_raiseFlags
.
-The default version of this function simply raises the corresponding exception
-flags.
-Particular ports of SoftFloat may support alternate behavior, such as exception
-traps, by modifying the default softfloat_raiseFlags
.
-A program may also supply its own softfloat_raiseFlags
function to
-override the one from the SoftFloat library.
-
-
-
-Because inexact results occur frequently under most circumstances (and thus are
-hardly exceptional), SoftFloat does not ordinarily call
-softfloat_raiseFlags
for inexact exceptions.
-It does always raise the inexact exception flag as required.
-
-
-
-8. Function Details
-
-
-In this section, <float>
appears in function names as
-a substitute for one of these abbreviations:
-
-
-
-f16 |
-indicates float16_t , passed by value |
-
-
-f32 |
-indicates float32_t , passed by value |
-
-
-f64 |
-indicates float64_t , passed by value |
-
-
-extF80M |
-indicates extFloat80_t , passed indirectly via pointers |
-
-
-extF80 |
-indicates extFloat80_t , passed by value |
-
-
-f128M |
-indicates float128_t , passed indirectly via pointers |
-
-
-f128 |
-indicates float128_t , passed by value |
-
-
-
-The circumstances under which values of floating-point types
-extFloat80_t
and float128_t
may be passed either by
-value or indirectly via pointers was discussed earlier in
-section 4.5, Conventions for Passing Arguments and Results.
-
-
-8.1. Conversions from Integer to Floating-Point
-
-
-All conversions from a 32-bit or 64-bit integer,
-signed or unsigned, to a floating-point format are supported.
-Functions performing these conversions have these names:
-
-ui32_to_<float>
-ui64_to_<float>
-i32_to_<float>
-i64_to_<float>
-
-Conversions from 32-bit integers to 64-bit
-double-precision and larger formats are always exact, and likewise conversions
-from 64-bit integers to 80-bit
-double-extended-precision and 128-bit quadruple-precision are also
-always exact.
-
-
-
-Each conversion function takes one input of the appropriate type and generates
-one output.
-The following illustrates the signatures of these functions in cases when the
-floating-point result is passed either by value or via pointers:
-
-
-float64_t i32_to_f64( int32_t a );
-
-
-void i32_to_f128M( int32_t a, float128_t *destPtr );
-
-
-
-
-8.2. Conversions from Floating-Point to Integer
-
-
-Conversions from a floating-point format to a 32-bit or
-64-bit integer, signed or unsigned, are supported with these
-functions:
-
-<float>_to_ui32
-<float>_to_ui64
-<float>_to_i32
-<float>_to_i64
-
-The functions have signatures as follows, depending on whether the
-floating-point input is passed by value or via pointers:
-
-
-int_fast32_t f64_to_i32( float64_t a, uint_fast8_t roundingMode, bool exact );
-
-
-int_fast32_t
- f128M_to_i32( const float128_t *aPtr, uint_fast8_t roundingMode, bool exact );
-
-
-
-
-
-The roundingMode
argument specifies the rounding mode for
-the conversion.
-The variable that usually indicates rounding mode,
-softfloat_roundingMode
, is ignored.
-Argument exact
determines whether the inexact
-exception flag is raised if the conversion is not exact.
-If exact
is true
, the inexact flag may
-be raised;
-otherwise, it will not be, even if the conversion is inexact.
-
-
-
-A conversion from floating-point to integer format raises the invalid
-exception if the source value cannot be rounded to a representable integer of
-the desired size (32 or 64 bits).
-In such circumstances, the integer result returned is determined by the
-particular port of SoftFloat, although typically this value will be either the
-maximum or minimum value of the integer format.
-The functions that convert to integer types never raise the floating-point
-overflow exception.
-
-
-
-Because languages such as C require that conversions to integers
-be rounded toward zero, the following functions are provided for improved speed
-and convenience:
-
-<float>_to_ui32_r_minMag
-<float>_to_ui64_r_minMag
-<float>_to_i32_r_minMag
-<float>_to_i64_r_minMag
-
-These functions round only toward zero (to minimum magnitude).
-The signatures for these functions are the same as above without the redundant
-roundingMode
argument:
-
-
-int_fast32_t f64_to_i32_r_minMag( float64_t a, bool exact );
-
-
-int_fast32_t f128M_to_i32_r_minMag( const float128_t *aPtr, bool exact );
-
-
-
-
-8.3. Conversions Among Floating-Point Types
-
-
-Conversions between floating-point formats are done by functions with these
-names:
-
-<float>_to_<float>
-
-All combinations of source and result type are supported where the source and
-result are different formats.
-There are four different styles of signature for these functions, depending on
-whether the input and the output floating-point values are passed by value or
-via pointers:
-
-
-float32_t f64_to_f32( float64_t a );
-
-
-float32_t f128M_to_f32( const float128_t *aPtr );
-
-
-void f32_to_f128M( float32_t a, float128_t *destPtr );
-
-
-void extF80M_to_f128M( const extFloat80_t *aPtr, float128_t *destPtr );
-
-
-
-
-
-Conversions from a smaller to a larger floating-point format are always exact
-and so require no rounding.
-
-
-8.4. Basic Arithmetic Functions
-
-
-The following basic arithmetic functions are provided:
-
-<float>_add
-<float>_sub
-<float>_mul
-<float>_div
-<float>_sqrt
-
-Each floating-point operation takes two operands, except for sqrt
-(square root) which takes only one.
-The operands and result are all of the same floating-point format.
-Signatures for these functions take the following forms:
-
-
-float64_t f64_add( float64_t a, float64_t b );
-
-
-void
- f128M_add(
- const float128_t *aPtr, const float128_t *bPtr, float128_t *destPtr );
-
-
-float64_t f64_sqrt( float64_t a );
-
-
-void f128M_sqrt( const float128_t *aPtr, float128_t *destPtr );
-
-
-When floating-point values are passed indirectly through pointers, arguments
-aPtr
and bPtr
point to the input
-operands, and the last argument, destPtr
, points to the
-location where the result is stored.
-
-
-
-Rounding of the 80-bit double-extended-precision
-(extFloat80_t
) functions is affected by variable
-extF80_roundingPrecision
, as explained earlier in
-section 6.3,
-Rounding Precision for the 80-Bit Extended Format.
-
-
-8.5. Fused Multiply-Add Functions
-
-
-The 2008 version of the IEEE Floating-Point Standard defines a fused
-multiply-add operation that does a combined multiplication and addition
-with only a single rounding.
-SoftFloat implements fused multiply-add with functions
-
-<float>_mulAdd
-
-Unlike other operations, fused multiple-add is not supported for the
-80-bit double-extended-precision format,
-extFloat80_t
.
-
-
-
-Depending on whether floating-point values are passed by value or via pointers,
-the fused multiply-add functions have signatures of these forms:
-
-
-float64_t f64_mulAdd( float64_t a, float64_t b, float64_t c );
-
-
-void
- f128M_mulAdd(
- const float128_t *aPtr,
- const float128_t *bPtr,
- const float128_t *cPtr,
- float128_t *destPtr
- );
-
-
-The functions compute
-(a
× b
)
- + c
-with a single rounding.
-When floating-point values are passed indirectly through pointers, arguments
-aPtr
, bPtr
, and
-cPtr
point to operands a
,
-b
, and c
respectively, and
-destPtr
points to the location where the result is stored.
-
-
-
-If one of the multiplication operands a
and
-b
is infinite and the other is zero, these functions raise
-the invalid exception even if operand c
is a quiet NaN.
-
-
-8.6. Remainder Functions
-
-
-For each format, SoftFloat implements the remainder operation defined by the
-IEEE Floating-Point Standard.
-The remainder functions have names
-
-<float>_rem
-
-Each remainder operation takes two floating-point operands of the same format
-and returns a result in the same format.
-Depending on whether floating-point values are passed by value or via pointers,
-the remainder functions have signatures of these forms:
-
-
-float64_t f64_rem( float64_t a, float64_t b );
-
-
-void
- f128M_rem(
- const float128_t *aPtr, const float128_t *bPtr, float128_t *destPtr );
-
-
-When floating-point values are passed indirectly through pointers, arguments
-aPtr
and bPtr
point to operands
-a
and b
respectively, and
-destPtr
points to the location where the result is stored.
-
-
-
-The IEEE Standard remainder operation computes the value
-a
- − n × b
,
-where n is the integer closest to
-a
÷ b
.
-If a
÷ b
is exactly
-halfway between two integers, n is the even integer closest to
-a
÷ b
.
-The IEEE Standard’s remainder operation is always exact and so requires
-no rounding.
-
-
-
-Depending on the relative magnitudes of the operands, the remainder
-functions can take considerably longer to execute than the other SoftFloat
-functions.
-This is an inherent characteristic of the remainder operation itself and is not
-a flaw in the SoftFloat implementation.
-
-
-8.7. Round-to-Integer Functions
-
-
-For each format, SoftFloat implements the round-to-integer operation specified
-by the IEEE Floating-Point Standard.
-These functions are named
-
-<float>_roundToInt
-
-Each round-to-integer operation takes a single floating-point operand.
-This operand is rounded to an integer according to a specified rounding mode,
-and the resulting integer value is returned in the same floating-point format.
-(Note that the result is not an integer type.)
-
-
-
-The signatures of the round-to-integer functions are similar to those for
-conversions to an integer type:
-
-
-float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact );
-
-
-void
- f128M_roundToInt(
- const float128_t *aPtr,
- uint_fast8_t roundingMode,
- bool exact,
- float128_t *destPtr
- );
-
-
-When floating-point values are passed indirectly through pointers,
-aPtr
points to the input operand and
-destPtr
points to the location where the result is stored.
-
-
-
-The roundingMode
argument specifies the rounding mode to
-apply.
-The variable that usually indicates rounding mode,
-softfloat_roundingMode
, is ignored.
-Argument exact
determines whether the inexact
-exception flag is raised if the conversion is not exact.
-If exact
is true
, the inexact flag may
-be raised;
-otherwise, it will not be, even if the conversion is inexact.
-
-
-8.8. Comparison Functions
-
-
-For each format, the following floating-point comparison functions are
-provided:
-
-<float>_eq
-<float>_le
-<float>_lt
-
-Each comparison takes two operands of the same type and returns a Boolean.
-The abbreviation eq
stands for “equal” (=);
-le
stands for “less than or equal” (≤);
-and lt
stands for “less than” (<).
-Depending on whether the floating-point operands are passed by value or via
-pointers, the comparison functions have signatures of these forms:
-
-
-bool f64_eq( float64_t a, float64_t b );
-
-
-bool f128M_eq( const float128_t *aPtr, const float128_t *bPtr );
-
-
-
-
-
-The usual greater-than (>), greater-than-or-equal (≥), and not-equal
-(≠) comparisons are easily obtained from the functions provided.
-The not-equal function is just the logical complement of the equal function.
-The greater-than-or-equal function is identical to the less-than-or-equal
-function with the arguments in reverse order, and likewise the greater-than
-function is identical to the less-than function with the arguments reversed.
-
-
-
-The IEEE Floating-Point Standard specifies that the less-than-or-equal and
-less-than comparisons by default raise the invalid exception if either
-operand is any kind of NaN.
-Equality comparisons, on the other hand, are defined by default to raise the
-invalid exception only for signaling NaNs, not quiet NaNs.
-For completeness, SoftFloat provides these complementary functions:
-
-<float>_eq_signaling
-<float>_le_quiet
-<float>_lt_quiet
-
-The signaling
equality comparisons are identical to the default
-equality comparisons except that the invalid exception is raised for any
-NaN input, not just for signaling NaNs.
-Similarly, the quiet
comparison functions are identical to their
-default counterparts except that the invalid exception is not raised for
-quiet NaNs.
-
-
-8.9. Signaling NaN Test Functions
-
-
-Functions for testing whether a floating-point value is a signaling NaN are
-provided with these names:
-
-<float>_isSignalingNaN
-
-The functions take one floating-point operand and return a Boolean indicating
-whether the operand is a signaling NaN.
-Accordingly, the functions have the forms
-
-
-bool f64_isSignalingNaN( float64_t a );
-
-
-bool f128M_isSignalingNaN( const float128_t *aPtr );
-
-
-
-
-8.10. Raise-Exception Function
-
-
-SoftFloat provides a single function for raising floating-point exceptions:
-
-
-void softfloat_raiseFlags( uint_fast8_t exceptions );
-
-
-The exceptions
argument is a mask indicating the set of
-exceptions to raise.
-(See earlier section 7, Exceptions and Exception Flags.)
-In addition to setting the specified exception flags in variable
-softfloat_exceptionFlags
, the softfloat_raiseFlags
-function may cause a trap or abort appropriate for the current system.
-
-
-
-9. Changes from SoftFloat Release 2
-
-
-Apart from a change in the legal use license, Release 3 of
-SoftFloat introduced numerous technical differences compared to earlier
-releases.
-
-
-9.1. Name Changes
-
-
-The most obvious and pervasive difference compared to Release 2
-is that the names of most functions and variables have changed, even when the
-behavior has not.
-First, the floating-point types, the mode variables, the exception flags
-variable, the function to raise exceptions, and various associated constants
-have been renamed as follows:
-
-
-
-old name, Release 2: |
-new name, Release 3: |
-
-
-float32 |
-float32_t |
-
-
-float64 |
-float64_t |
-
-
-floatx80 |
-extFloat80_t |
-
-
-float128 |
-float128_t |
-
-
-float_rounding_mode |
-softfloat_roundingMode |
-
-
-float_round_nearest_even |
-softfloat_round_near_even |
-
-
-float_round_to_zero |
-softfloat_round_minMag |
-
-
-float_round_down |
-softfloat_round_min |
-
-
-float_round_up |
-softfloat_round_max |
-
-
-float_detect_tininess |
-softfloat_detectTininess |
-
-
-float_tininess_before_rounding |
-softfloat_tininess_beforeRounding |
-
-
-float_tininess_after_rounding |
-softfloat_tininess_afterRounding |
-
-
-floatx80_rounding_precision |
-extF80_roundingPrecision |
-
-
-float_exception_flags |
-softfloat_exceptionFlags |
-
-
-float_flag_inexact |
-softfloat_flag_inexact |
-
-
-float_flag_underflow |
-softfloat_flag_underflow |
-
-
-float_flag_overflow |
-softfloat_flag_overflow |
-
-
-float_flag_divbyzero |
-softfloat_flag_infinite |
-
-
-float_flag_invalid |
-softfloat_flag_invalid |
-
-
-float_raise |
-softfloat_raiseFlags |
-
-
-
-
-
-
-Furthermore, Release 3 adopted the following new abbreviations for
-function names:
-
-
-
-used in names in Release 2: |
-used in names in Release 3: |
-
- int32 | i32 |
- int64 | i64 |
- float32 | f32 |
- float64 | f64 |
- floatx80 | extF80 |
- float128 | f128 |
-
-
-Thus, for example, the function to add two 32-bit floating-point
-numbers, previously called float32_add
in Release 2,
-is now f32_add
.
-Lastly, there have been a few other changes to function names:
-
-
-
-used in names in Release 2: |
-used in names in Release 3: |
-relevant functions: |
-
-
-_round_to_zero |
-_r_minMag |
-conversions from floating-point to integer (section 8.2) |
-
-
-round_to_int |
-roundToInt |
-round-to-integer functions (section 8.7) |
-
-
-is_signaling_nan |
-isSignalingNaN |
-signaling NaN test functions (section 8.9) |
-
-
-
-
-
-9.2. Changes to Function Arguments
-
-
-Besides simple name changes, some operations were given a different interface
-in Release 3 than they had in Release 2:
-
-
--
-
-Since Release 3, integer arguments and results of functions have
-standard types from header <stdint.h>
, such as
-uint32_t
, whereas previously their types could be defined
-differently for each port of SoftFloat, usually using traditional C types such
-as unsigned
int
.
-Likewise, functions in Release 3 and later pass Booleans as
-standard type bool
from <stdbool.h>
, whereas
-previously these were again passed as a port-specific type (usually
-int
).
-
-
- -
-
-As explained earlier in section 4.5, Conventions for Passing
-Arguments and Results, SoftFloat functions in Release 3 and
-later may pass 80-bit and 128-bit floating-point
-values through pointers, meaning that functions take pointer arguments and then
-read or write floating-point values at the locations indicated by the pointers.
-In Release 2, floating-point arguments and results were always
-passed by value, regardless of their size.
-
-
- -
-
-Functions that round to an integer have additional
-roundingMode
and exact
arguments that
-they did not have in Release 2.
-Refer to sections 8.2 and 8.7 for descriptions of these functions
-since Release 3.
-For Release 2, the rounding mode, when needed, was taken from the
-same global variable that affects the basic arithmetic operations (now called
-softfloat_roundingMode
but previously known as
-float_rounding_mode
).
-Also, for Release 2, if the original floating-point input was not
-an exact integer value, and if the invalid exception was not raised by
-the function, the inexact exception was always raised.
-Release 2 had no option to suppress raising inexact in this
-case.
-Applications using SoftFloat Release 3 or later can get the same
-effect as Release 2 by passing variable
-softfloat_roundingMode
for argument
-roundingMode
and true
for argument
-exact
.
-
-
-
-
-
-9.3. Added Capabilities
-
-
-With Release 3, some new features have been added that were not
-present in Release 2:
-
-
--
-
-A port of SoftFloat can now define any of the floating-point types
-float32_t
, float64_t
, extFloat80_t
, and
-float128_t
as aliases for C’s standard floating-point types
-float
, double
, and long
-double
, using either #define
or typedef
.
-This potential convenience was not supported under Release 2.
-
-
-
-(Note, however, that there may be a performance cost to defining
-SoftFloat’s floating-point types this way, depending on the platform and
-the applications using SoftFloat.
-Ports of SoftFloat may choose to forgo the convenience in favor of better
-speed.)
-
-
-
-
-
-As of Release 3b, 16-bit half-precision,
-
float16_t
, is supported.
-
-
-
-
-
-Functions have been added for converting between the floating-point types and
-unsigned integers.
-Release 2 supported only signed integers, not unsigned.
-
-
-
-
-
-Fused multiply-add functions have been added for all floating-point formats
-except 80-bit double-extended-precision,
-
extFloat80_t
.
-
-
-
-
-
-New rounding modes are supported:
-
softfloat_round_near_maxMag
(round to nearest, with ties to
-maximum magnitude, away from zero), and, as of Release 3c,
-optional softfloat_round_odd
(round to odd, also known as
-jamming).
-
-
-
-
-
-9.4. Better Compatibility with the C Language
-
-
-Release 3 of SoftFloat was written to conform better to the ISO C
-Standard’s rules for portability.
-For example, older releases of SoftFloat employed type conversions in ways
-that, while commonly practiced, are not fully defined by the C Standard.
-Such problematic type conversions have generally been replaced by the use of
-unions, the behavior around which is more strictly regulated these days.
-
-
-9.5. New Organization as a Library
-
-
-Starting with Release 3, SoftFloat now builds as a library.
-Previously, SoftFloat compiled into a single, monolithic object file containing
-all the SoftFloat functions, with the consequence that a program linking with
-SoftFloat would get every SoftFloat function in its binary file even if only a
-few functions were actually used.
-With SoftFloat in the form of a library, a program that is linked by a standard
-linker will include only those functions of SoftFloat that it needs and no
-others.
-
-
-9.6. Optimization Gains (and Losses)
-
-
-Individual SoftFloat functions have been variously improved in
-Release 3 compared to earlier releases.
-In particular, better, faster algorithms have been deployed for the operations
-of division, square root, and remainder.
-For functions operating on the larger 80-bit and
-128-bit formats, extFloat80_t
and
-float128_t
, code size has also generally been reduced.
-
-
-
-However, because Release 2 compiled all of SoftFloat together as a
-single object file, compilers could make optimizations across function calls
-when one SoftFloat function calls another.
-Now that the functions of SoftFloat are compiled separately and only afterward
-linked together into a program, there is not usually the same opportunity to
-optimize across function calls.
-Some loss of speed has been observed due to this change.
-
-
-
-10. Future Directions
-
-
-The following improvements are anticipated for future releases of SoftFloat:
-
--
-more functions from the 2008 version of the IEEE Floating-Point Standard;
-
-
-consistent, defined behavior for non-canonical representations of extended
-format
extFloat80_t
(discussed in section 4.4,
-Non-canonical Representations in extFloat80_t
).
-
-
-
-
-
-11. Contact Information
-
-
-At the time of this writing, the most up-to-date information about SoftFloat
-and the latest release can be found at the Web page
-http://www.jhauser.us/arithmetic/SoftFloat.html
.
-
-
-
-
-
diff --git a/life/resolver/softfloat/source/8086-SSE/extF80M_isSignalingNaN.c b/life/resolver/softfloat/source/8086-SSE/extF80M_isSignalingNaN.c
deleted file mode 100644
index c2cca65c95..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/extF80M_isSignalingNaN.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint64_t uiA0;
-
- aSPtr = (const struct extFloat80M *) aPtr;
- if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
- uiA0 = aSPtr->signif;
- return
- ! (uiA0 & UINT64_C( 0x4000000000000000 ))
- && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/f128M_isSignalingNaN.c b/life/resolver/softfloat/source/8086-SSE/f128M_isSignalingNaN.c
deleted file mode 100644
index 9ff83d7261..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/f128M_isSignalingNaN.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool f128M_isSignalingNaN( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
-
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
- return
- ((uiA96 & 0x00007FFF) != 0)
- || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80M.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80M.c
deleted file mode 100644
index 06302aa156..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| `zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
-
- zSPtr->signExp = packToExtF80UI64( aPtr->sign, 0x7FFF );
- zSPtr->signif = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80UI.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 7325468ff1..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToExtF80UI.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = (uint_fast16_t) aPtr->sign<<15 | 0x7FFF;
- uiZ.v0 = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128M.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128M.c
deleted file mode 100644
index e2940bb77f..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument
-| `zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
-
- softfloat_shortShiftRight128M( (const uint32_t *) &aPtr->v0, 16, zWPtr );
- zWPtr[indexWordHi( 4 )] |= (uint32_t) aPtr->sign<<31 | 0x7FFF8000;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128UI.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128UI.c
deleted file mode 100644
index ac8ea7b702..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF128UI.c
+++ /dev/null
@@ -1,55 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ = softfloat_shortShiftRight128( aPtr->v64, aPtr->v0, 16 );
- uiZ.v64 |= (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FFF800000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF16UI.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF16UI.c
deleted file mode 100644
index 07679d7178..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast16_t) aPtr->sign<<15 | 0x7E00 | aPtr->v64>>54;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF32UI.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF32UI.c
deleted file mode 100644
index 982c1edf6a..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast32_t) aPtr->sign<<31 | 0x7FC00000 | aPtr->v64>>41;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF64UI.c b/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF64UI.c
deleted file mode 100644
index d88c68adeb..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr )
-{
-
- return
- (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FF8000000000000 )
- | aPtr->v64>>12;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_extF80MToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_extF80MToCommonNaN.c
deleted file mode 100644
index 6bf45cf86c..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by `aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by `zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr )
-{
-
- if ( extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = signExtF80UI64( aSPtr->signExp );
- zPtr->v64 = aSPtr->signif<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_extF80UIToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 8b8c92780f..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA64>>15;
- zPtr->v64 = uiA0<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_f128MToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_f128MToCommonNaN.c
deleted file mode 100644
index 22152145ae..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by `aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by `zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument `aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr )
-{
-
- if ( f128M_isSignalingNaN( (const float128_t *) aWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = aWPtr[indexWordHi( 4 )]>>31;
- softfloat_shortShiftLeft128M( aWPtr, 16, (uint32_t *) &zPtr->v0 );
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_f128UIToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_f128UIToCommonNaN.c
deleted file mode 100644
index 2510c07073..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,65 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
- struct uint128 NaNSig;
-
- if ( softfloat_isSigNaNF128UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- NaNSig = softfloat_shortShiftLeft128( uiA64, uiA0, 16 );
- zPtr->sign = uiA64>>63;
- zPtr->v64 = NaNSig.v64;
- zPtr->v0 = NaNSig.v0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_f16UIToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_f16UIToCommonNaN.c
deleted file mode 100644
index 4d5003f6ae..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF16UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>15;
- zPtr->v64 = (uint_fast64_t) uiA<<54;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c
deleted file mode 100644
index f4734db7a8..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF32UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>31;
- zPtr->v64 = (uint_fast64_t) uiA<<41;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c b/life/resolver/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c
deleted file mode 100644
index 9a481a74f0..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF64UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>63;
- zPtr->v64 = uiA<<12;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80M.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80M.c
deleted file mode 100644
index f35e066544..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80M.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by `zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- )
-{
- bool isSigNaNA;
- const struct extFloat80M *sPtr;
- bool isSigNaNB;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiMagA64, uiMagB64;
-
- isSigNaNA = extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr );
- sPtr = aSPtr;
- if ( ! bSPtr ) {
- if ( isSigNaNA ) softfloat_raiseFlags( softfloat_flag_invalid );
- goto copy;
- }
- isSigNaNB = extF80M_isSignalingNaN( (const extFloat80_t *) bSPtr );
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- uiB64 = bSPtr->signExp;
- if ( isSigNaNB ) goto returnLargerUIMag;
- uiB0 = bSPtr->signif;
- if ( isNaNExtF80UI( uiB64, uiB0 ) ) goto copyB;
- goto copy;
- } else {
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) ) goto copy;
- goto copyB;
- }
- }
- uiB64 = bSPtr->signExp;
- returnLargerUIMag:
- uiA64 = aSPtr->signExp;
- uiMagA64 = uiA64 & 0x7FFF;
- uiMagB64 = uiB64 & 0x7FFF;
- if ( uiMagA64 < uiMagB64 ) goto copyB;
- if ( uiMagB64 < uiMagA64 ) goto copy;
- uiA0 = aSPtr->signif;
- uiB0 = bSPtr->signif;
- if ( uiA0 < uiB0 ) goto copyB;
- if ( uiB0 < uiA0 ) goto copy;
- if ( uiA64 < uiB64 ) goto copy;
- copyB:
- sPtr = bSPtr;
- copy:
- zSPtr->signExp = sPtr->signExp;
- zSPtr->signif = sPtr->signif | UINT64_C( 0xC000000000000000 );
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80UI.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80UI.c
deleted file mode 100644
index fa2daae2ef..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNExtF80UI.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast64_t uiNonsigA0, uiNonsigB0;
- uint_fast16_t uiMagA64, uiMagB64;
- struct uint128 uiZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNExtF80UI( uiA64, uiA0 );
- isSigNaNB = softfloat_isSigNaNExtF80UI( uiB64, uiB0 );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA0 = uiA0 | UINT64_C( 0xC000000000000000 );
- uiNonsigB0 = uiB0 | UINT64_C( 0xC000000000000000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- if ( isNaNExtF80UI( uiB64, uiB0 ) ) goto returnB;
- goto returnA;
- } else {
- if ( isNaNExtF80UI( uiA64, uiA0 ) ) goto returnA;
- goto returnB;
- }
- }
- returnLargerMag:
- uiMagA64 = uiA64 & 0x7FFF;
- uiMagB64 = uiB64 & 0x7FFF;
- if ( uiMagA64 < uiMagB64 ) goto returnB;
- if ( uiMagB64 < uiMagA64 ) goto returnA;
- if ( uiA0 < uiB0 ) goto returnB;
- if ( uiB0 < uiA0 ) goto returnA;
- if ( uiA64 < uiB64 ) goto returnA;
- returnB:
- uiZ.v64 = uiB64;
- uiZ.v0 = uiNonsigB0;
- return uiZ;
- returnA:
- uiZ.v64 = uiA64;
- uiZ.v0 = uiNonsigA0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128M.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128M.c
deleted file mode 100644
index e8872742cf..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128M.c
+++ /dev/null
@@ -1,76 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| `aWPtr' and `bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by `zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of `aWPtr', `bWPtr',
-| and `zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
-{
- bool isSigNaNA;
- const uint32_t *ptr;
-
- ptr = aWPtr;
- isSigNaNA = f128M_isSignalingNaN( (const float128_t *) aWPtr );
- if (
- isSigNaNA
- || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) goto copy;
- }
- if ( ! softfloat_isNaNF128M( aWPtr ) ) ptr = bWPtr;
- copy:
- zWPtr[indexWordHi( 4 )] = ptr[indexWordHi( 4 )] | 0x00008000;
- zWPtr[indexWord( 4, 2 )] = ptr[indexWord( 4, 2 )];
- zWPtr[indexWord( 4, 1 )] = ptr[indexWord( 4, 1 )];
- zWPtr[indexWord( 4, 0 )] = ptr[indexWord( 4, 0 )];
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128UI.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128UI.c
deleted file mode 100644
index fb0e862dcb..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF128UI.c
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating `uiB64' and `uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA;
- struct uint128 uiZ;
-
- isSigNaNA = softfloat_isSigNaNF128UI( uiA64, uiA0 );
- if ( isSigNaNA || softfloat_isSigNaNF128UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) goto returnNonsigA;
- }
- if ( isNaNF128UI( uiA64, uiA0 ) ) {
- returnNonsigA:
- uiZ.v64 = uiA64;
- uiZ.v0 = uiA0;
- } else {
- uiZ.v64 = uiB64;
- uiZ.v0 = uiB0;
- }
- uiZ.v64 |= UINT64_C( 0x0000800000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF16UI.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF16UI.c
deleted file mode 100644
index 8e19e43012..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF16UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF16UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF16UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) return uiA | 0x0200;
- }
- return (isNaNF16UI( uiA ) ? uiA : uiB) | 0x0200;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF32UI.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF32UI.c
deleted file mode 100644
index 6e423cac6b..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF32UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF32UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF32UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) return uiA | 0x00400000;
- }
- return (isNaNF32UI( uiA ) ? uiA : uiB) | 0x00400000;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF64UI.c b/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF64UI.c
deleted file mode 100644
index 474c1967d4..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/s_propagateNaNF64UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF64UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF64UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) return uiA | UINT64_C( 0x0008000000000000 );
- }
- return (isNaNF64UI( uiA ) ? uiA : uiB) | UINT64_C( 0x0008000000000000 );
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/softfloat_raiseFlags.c b/life/resolver/softfloat/source/8086-SSE/softfloat_raiseFlags.c
deleted file mode 100644
index 7a1aee9305..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/softfloat_raiseFlags.c
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Raises the exceptions specified by `flags'. Floating-point traps can be
-| defined here if desired. It is currently not possible for such a trap
-| to substitute a result value. If traps are not implemented, this routine
-| should be simply `softfloat_exceptionFlags |= flags;'.
-*----------------------------------------------------------------------------*/
-void softfloat_raiseFlags( uint_fast8_t flags )
-{
-
- softfloat_exceptionFlags |= flags;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086-SSE/specialize.h b/life/resolver/softfloat/source/8086-SSE/specialize.h
deleted file mode 100644
index a9166e170a..0000000000
--- a/life/resolver/softfloat/source/8086-SSE/specialize.h
+++ /dev/null
@@ -1,376 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#ifndef specialize_h
-#define specialize_h 1
-
-#include
-#include
-#include "primitiveTypes.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Default value for 'softfloat_detectTininess'.
-*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_afterRounding
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 32-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0xFFFFFFFF
-#define ui32_fromNaN 0xFFFFFFFF
-#define i32_fromPosOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN (-0x7FFFFFFF - 1)
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 64-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNaN UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define i64_fromPosOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-
-/*----------------------------------------------------------------------------
-| "Common NaN" structure, used to transfer NaN representations from one format
-| to another.
-*----------------------------------------------------------------------------*/
-struct commonNaN {
- bool sign;
-#ifdef LITTLEENDIAN
- uint64_t v0, v64;
-#else
- uint64_t v64, v0;
-#endif
-};
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 16-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF16UI 0xFE00
-
-/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
-| 16-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 32-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0xFFC00000
-
-/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
-| 32-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 64-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
-| 64-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 80-bit extended floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNExtF80UI64 0xFFFF
-#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
-| floating-point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI64 UINT64_C( 0xFFFF800000000000 )
-#define defaultNaNF128UI0 UINT64_C( 0 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
-| point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- );
-
-#else
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI96 0xFFFF8000
-#define defaultNaNF128UI64 0
-#define defaultNaNF128UI32 0
-#define defaultNaNF128UI0 0
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
-
-#endif
-
-#endif
-
diff --git a/life/resolver/softfloat/source/8086/extF80M_isSignalingNaN.c b/life/resolver/softfloat/source/8086/extF80M_isSignalingNaN.c
deleted file mode 100644
index c2cca65c95..0000000000
--- a/life/resolver/softfloat/source/8086/extF80M_isSignalingNaN.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint64_t uiA0;
-
- aSPtr = (const struct extFloat80M *) aPtr;
- if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
- uiA0 = aSPtr->signif;
- return
- ! (uiA0 & UINT64_C( 0x4000000000000000 ))
- && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/f128M_isSignalingNaN.c b/life/resolver/softfloat/source/8086/f128M_isSignalingNaN.c
deleted file mode 100644
index 9ff83d7261..0000000000
--- a/life/resolver/softfloat/source/8086/f128M_isSignalingNaN.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool f128M_isSignalingNaN( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
-
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
- return
- ((uiA96 & 0x00007FFF) != 0)
- || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToExtF80M.c b/life/resolver/softfloat/source/8086/s_commonNaNToExtF80M.c
deleted file mode 100644
index 06302aa156..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToExtF80M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| `zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
-
- zSPtr->signExp = packToExtF80UI64( aPtr->sign, 0x7FFF );
- zSPtr->signif = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToExtF80UI.c b/life/resolver/softfloat/source/8086/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 7325468ff1..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToExtF80UI.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = (uint_fast16_t) aPtr->sign<<15 | 0x7FFF;
- uiZ.v0 = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToF128M.c b/life/resolver/softfloat/source/8086/s_commonNaNToF128M.c
deleted file mode 100644
index e2940bb77f..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToF128M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument
-| `zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
-
- softfloat_shortShiftRight128M( (const uint32_t *) &aPtr->v0, 16, zWPtr );
- zWPtr[indexWordHi( 4 )] |= (uint32_t) aPtr->sign<<31 | 0x7FFF8000;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToF128UI.c b/life/resolver/softfloat/source/8086/s_commonNaNToF128UI.c
deleted file mode 100644
index ac8ea7b702..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToF128UI.c
+++ /dev/null
@@ -1,55 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ = softfloat_shortShiftRight128( aPtr->v64, aPtr->v0, 16 );
- uiZ.v64 |= (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FFF800000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToF16UI.c b/life/resolver/softfloat/source/8086/s_commonNaNToF16UI.c
deleted file mode 100644
index 07679d7178..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast16_t) aPtr->sign<<15 | 0x7E00 | aPtr->v64>>54;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToF32UI.c b/life/resolver/softfloat/source/8086/s_commonNaNToF32UI.c
deleted file mode 100644
index 982c1edf6a..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast32_t) aPtr->sign<<31 | 0x7FC00000 | aPtr->v64>>41;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_commonNaNToF64UI.c b/life/resolver/softfloat/source/8086/s_commonNaNToF64UI.c
deleted file mode 100644
index d88c68adeb..0000000000
--- a/life/resolver/softfloat/source/8086/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr )
-{
-
- return
- (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FF8000000000000 )
- | aPtr->v64>>12;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_extF80MToCommonNaN.c b/life/resolver/softfloat/source/8086/s_extF80MToCommonNaN.c
deleted file mode 100644
index 6bf45cf86c..0000000000
--- a/life/resolver/softfloat/source/8086/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by `aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by `zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr )
-{
-
- if ( extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = signExtF80UI64( aSPtr->signExp );
- zPtr->v64 = aSPtr->signif<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_extF80UIToCommonNaN.c b/life/resolver/softfloat/source/8086/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 8b8c92780f..0000000000
--- a/life/resolver/softfloat/source/8086/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA64>>15;
- zPtr->v64 = uiA0<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_f128MToCommonNaN.c b/life/resolver/softfloat/source/8086/s_f128MToCommonNaN.c
deleted file mode 100644
index 22152145ae..0000000000
--- a/life/resolver/softfloat/source/8086/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by `aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by `zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument `aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr )
-{
-
- if ( f128M_isSignalingNaN( (const float128_t *) aWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = aWPtr[indexWordHi( 4 )]>>31;
- softfloat_shortShiftLeft128M( aWPtr, 16, (uint32_t *) &zPtr->v0 );
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_f128UIToCommonNaN.c b/life/resolver/softfloat/source/8086/s_f128UIToCommonNaN.c
deleted file mode 100644
index 2510c07073..0000000000
--- a/life/resolver/softfloat/source/8086/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,65 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
- struct uint128 NaNSig;
-
- if ( softfloat_isSigNaNF128UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- NaNSig = softfloat_shortShiftLeft128( uiA64, uiA0, 16 );
- zPtr->sign = uiA64>>63;
- zPtr->v64 = NaNSig.v64;
- zPtr->v0 = NaNSig.v0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_f16UIToCommonNaN.c b/life/resolver/softfloat/source/8086/s_f16UIToCommonNaN.c
deleted file mode 100644
index 4d5003f6ae..0000000000
--- a/life/resolver/softfloat/source/8086/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF16UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>15;
- zPtr->v64 = (uint_fast64_t) uiA<<54;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_f32UIToCommonNaN.c b/life/resolver/softfloat/source/8086/s_f32UIToCommonNaN.c
deleted file mode 100644
index f4734db7a8..0000000000
--- a/life/resolver/softfloat/source/8086/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF32UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>31;
- zPtr->v64 = (uint_fast64_t) uiA<<41;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_f64UIToCommonNaN.c b/life/resolver/softfloat/source/8086/s_f64UIToCommonNaN.c
deleted file mode 100644
index 9a481a74f0..0000000000
--- a/life/resolver/softfloat/source/8086/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF64UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>63;
- zPtr->v64 = uiA<<12;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNExtF80M.c b/life/resolver/softfloat/source/8086/s_propagateNaNExtF80M.c
deleted file mode 100644
index f35e066544..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNExtF80M.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by `zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- )
-{
- bool isSigNaNA;
- const struct extFloat80M *sPtr;
- bool isSigNaNB;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiMagA64, uiMagB64;
-
- isSigNaNA = extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr );
- sPtr = aSPtr;
- if ( ! bSPtr ) {
- if ( isSigNaNA ) softfloat_raiseFlags( softfloat_flag_invalid );
- goto copy;
- }
- isSigNaNB = extF80M_isSignalingNaN( (const extFloat80_t *) bSPtr );
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- uiB64 = bSPtr->signExp;
- if ( isSigNaNB ) goto returnLargerUIMag;
- uiB0 = bSPtr->signif;
- if ( isNaNExtF80UI( uiB64, uiB0 ) ) goto copyB;
- goto copy;
- } else {
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) ) goto copy;
- goto copyB;
- }
- }
- uiB64 = bSPtr->signExp;
- returnLargerUIMag:
- uiA64 = aSPtr->signExp;
- uiMagA64 = uiA64 & 0x7FFF;
- uiMagB64 = uiB64 & 0x7FFF;
- if ( uiMagA64 < uiMagB64 ) goto copyB;
- if ( uiMagB64 < uiMagA64 ) goto copy;
- uiA0 = aSPtr->signif;
- uiB0 = bSPtr->signif;
- if ( uiA0 < uiB0 ) goto copyB;
- if ( uiB0 < uiA0 ) goto copy;
- if ( uiA64 < uiB64 ) goto copy;
- copyB:
- sPtr = bSPtr;
- copy:
- zSPtr->signExp = sPtr->signExp;
- zSPtr->signif = sPtr->signif | UINT64_C( 0xC000000000000000 );
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNExtF80UI.c b/life/resolver/softfloat/source/8086/s_propagateNaNExtF80UI.c
deleted file mode 100644
index fa2daae2ef..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNExtF80UI.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast64_t uiNonsigA0, uiNonsigB0;
- uint_fast16_t uiMagA64, uiMagB64;
- struct uint128 uiZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNExtF80UI( uiA64, uiA0 );
- isSigNaNB = softfloat_isSigNaNExtF80UI( uiB64, uiB0 );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA0 = uiA0 | UINT64_C( 0xC000000000000000 );
- uiNonsigB0 = uiB0 | UINT64_C( 0xC000000000000000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- if ( isNaNExtF80UI( uiB64, uiB0 ) ) goto returnB;
- goto returnA;
- } else {
- if ( isNaNExtF80UI( uiA64, uiA0 ) ) goto returnA;
- goto returnB;
- }
- }
- returnLargerMag:
- uiMagA64 = uiA64 & 0x7FFF;
- uiMagB64 = uiB64 & 0x7FFF;
- if ( uiMagA64 < uiMagB64 ) goto returnB;
- if ( uiMagB64 < uiMagA64 ) goto returnA;
- if ( uiA0 < uiB0 ) goto returnB;
- if ( uiB0 < uiA0 ) goto returnA;
- if ( uiA64 < uiB64 ) goto returnA;
- returnB:
- uiZ.v64 = uiB64;
- uiZ.v0 = uiNonsigB0;
- return uiZ;
- returnA:
- uiZ.v64 = uiA64;
- uiZ.v0 = uiNonsigA0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNF128M.c b/life/resolver/softfloat/source/8086/s_propagateNaNF128M.c
deleted file mode 100644
index 7ac2e5f63c..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNF128M.c
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| `aWPtr' and `bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by `zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of `aWPtr', `bWPtr',
-| and `zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
-{
- bool isSigNaNA;
- const uint32_t *ptr;
- bool isSigNaNB;
- uint32_t uiA96, uiB96, wordMagA, wordMagB;
-
- isSigNaNA = f128M_isSignalingNaN( (const float128_t *) aWPtr );
- ptr = aWPtr;
- if ( ! bWPtr ) {
- if ( isSigNaNA ) softfloat_raiseFlags( softfloat_flag_invalid );
- goto copy;
- }
- isSigNaNB = f128M_isSignalingNaN( (const float128_t *) bWPtr );
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerUIMag;
- if ( softfloat_isNaNF128M( bWPtr ) ) goto copyB;
- goto copy;
- } else {
- if ( softfloat_isNaNF128M( aWPtr ) ) goto copy;
- goto copyB;
- }
- }
- returnLargerUIMag:
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- wordMagA = uiA96 & 0x7FFFFFFF;
- wordMagB = uiB96 & 0x7FFFFFFF;
- if ( wordMagA < wordMagB ) goto copyB;
- if ( wordMagB < wordMagA ) goto copy;
- wordMagA = aWPtr[indexWord( 4, 2 )];
- wordMagB = bWPtr[indexWord( 4, 2 )];
- if ( wordMagA < wordMagB ) goto copyB;
- if ( wordMagB < wordMagA ) goto copy;
- wordMagA = aWPtr[indexWord( 4, 1 )];
- wordMagB = bWPtr[indexWord( 4, 1 )];
- if ( wordMagA < wordMagB ) goto copyB;
- if ( wordMagB < wordMagA ) goto copy;
- wordMagA = aWPtr[indexWord( 4, 0 )];
- wordMagB = bWPtr[indexWord( 4, 0 )];
- if ( wordMagA < wordMagB ) goto copyB;
- if ( wordMagB < wordMagA ) goto copy;
- if ( uiA96 < uiB96 ) goto copy;
- copyB:
- ptr = bWPtr;
- copy:
- zWPtr[indexWordHi( 4 )] = ptr[indexWordHi( 4 )] | 0x00008000;
- zWPtr[indexWord( 4, 2 )] = ptr[indexWord( 4, 2 )];
- zWPtr[indexWord( 4, 1 )] = ptr[indexWord( 4, 1 )];
- zWPtr[indexWord( 4, 0 )] = ptr[indexWord( 4, 0 )];
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNF128UI.c b/life/resolver/softfloat/source/8086/s_propagateNaNF128UI.c
deleted file mode 100644
index 6caecd205b..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNF128UI.c
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast64_t uiNonsigA64, uiNonsigB64, uiMagA64, uiMagB64;
- struct uint128 uiZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNF128UI( uiA64, uiA0 );
- isSigNaNB = softfloat_isSigNaNF128UI( uiB64, uiB0 );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA64 = uiA64 | UINT64_C( 0x0000800000000000 );
- uiNonsigB64 = uiB64 | UINT64_C( 0x0000800000000000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- if ( isNaNF128UI( uiB64, uiB0 ) ) goto returnB;
- goto returnA;
- } else {
- if ( isNaNF128UI( uiA64, uiA0 ) ) goto returnA;
- goto returnB;
- }
- }
- returnLargerMag:
- uiMagA64 = uiA64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- uiMagB64 = uiB64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- if ( uiMagA64 < uiMagB64 ) goto returnB;
- if ( uiMagB64 < uiMagA64 ) goto returnA;
- if ( uiA0 < uiB0 ) goto returnB;
- if ( uiB0 < uiA0 ) goto returnA;
- if ( uiNonsigA64 < uiNonsigB64 ) goto returnA;
- returnB:
- uiZ.v64 = uiNonsigB64;
- uiZ.v0 = uiB0;
- return uiZ;
- returnA:
- uiZ.v64 = uiNonsigA64;
- uiZ.v0 = uiA0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNF16UI.c b/life/resolver/softfloat/source/8086/s_propagateNaNF16UI.c
deleted file mode 100644
index f9d80d6ac1..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNF16UI.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast16_t uiNonsigA, uiNonsigB, uiMagA, uiMagB;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNF16UI( uiA );
- isSigNaNB = softfloat_isSigNaNF16UI( uiB );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA = uiA | 0x0200;
- uiNonsigB = uiB | 0x0200;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- return isNaNF16UI( uiB ) ? uiNonsigB : uiNonsigA;
- } else {
- return isNaNF16UI( uiA ) ? uiNonsigA : uiNonsigB;
- }
- }
- returnLargerMag:
- uiMagA = uiA & 0x7FFF;
- uiMagB = uiB & 0x7FFF;
- if ( uiMagA < uiMagB ) return uiNonsigB;
- if ( uiMagB < uiMagA ) return uiNonsigA;
- return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNF32UI.c b/life/resolver/softfloat/source/8086/s_propagateNaNF32UI.c
deleted file mode 100644
index 2350ad7c0a..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNF32UI.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast32_t uiNonsigA, uiNonsigB, uiMagA, uiMagB;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNF32UI( uiA );
- isSigNaNB = softfloat_isSigNaNF32UI( uiB );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA = uiA | 0x00400000;
- uiNonsigB = uiB | 0x00400000;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- return isNaNF32UI( uiB ) ? uiNonsigB : uiNonsigA;
- } else {
- return isNaNF32UI( uiA ) ? uiNonsigA : uiNonsigB;
- }
- }
- returnLargerMag:
- uiMagA = uiA & 0x7FFFFFFF;
- uiMagB = uiB & 0x7FFFFFFF;
- if ( uiMagA < uiMagB ) return uiNonsigB;
- if ( uiMagB < uiMagA ) return uiNonsigA;
- return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/s_propagateNaNF64UI.c b/life/resolver/softfloat/source/8086/s_propagateNaNF64UI.c
deleted file mode 100644
index a4013d4898..0000000000
--- a/life/resolver/softfloat/source/8086/s_propagateNaNF64UI.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
-{
- bool isSigNaNA, isSigNaNB;
- uint_fast64_t uiNonsigA, uiNonsigB, uiMagA, uiMagB;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- isSigNaNA = softfloat_isSigNaNF64UI( uiA );
- isSigNaNB = softfloat_isSigNaNF64UI( uiB );
- /*------------------------------------------------------------------------
- | Make NaNs non-signaling.
- *------------------------------------------------------------------------*/
- uiNonsigA = uiA | UINT64_C( 0x0008000000000000 );
- uiNonsigB = uiB | UINT64_C( 0x0008000000000000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isSigNaNA | isSigNaNB ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) {
- if ( isSigNaNB ) goto returnLargerMag;
- return isNaNF64UI( uiB ) ? uiNonsigB : uiNonsigA;
- } else {
- return isNaNF64UI( uiA ) ? uiNonsigA : uiNonsigB;
- }
- }
- returnLargerMag:
- uiMagA = uiA & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- uiMagB = uiB & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- if ( uiMagA < uiMagB ) return uiNonsigB;
- if ( uiMagB < uiMagA ) return uiNonsigA;
- return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/softfloat_raiseFlags.c b/life/resolver/softfloat/source/8086/softfloat_raiseFlags.c
deleted file mode 100644
index 7a1aee9305..0000000000
--- a/life/resolver/softfloat/source/8086/softfloat_raiseFlags.c
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Raises the exceptions specified by `flags'. Floating-point traps can be
-| defined here if desired. It is currently not possible for such a trap
-| to substitute a result value. If traps are not implemented, this routine
-| should be simply `softfloat_exceptionFlags |= flags;'.
-*----------------------------------------------------------------------------*/
-void softfloat_raiseFlags( uint_fast8_t flags )
-{
-
- softfloat_exceptionFlags |= flags;
-
-}
-
diff --git a/life/resolver/softfloat/source/8086/specialize.h b/life/resolver/softfloat/source/8086/specialize.h
deleted file mode 100644
index a9166e170a..0000000000
--- a/life/resolver/softfloat/source/8086/specialize.h
+++ /dev/null
@@ -1,376 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#ifndef specialize_h
-#define specialize_h 1
-
-#include
-#include
-#include "primitiveTypes.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Default value for 'softfloat_detectTininess'.
-*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_afterRounding
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 32-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0xFFFFFFFF
-#define ui32_fromNaN 0xFFFFFFFF
-#define i32_fromPosOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN (-0x7FFFFFFF - 1)
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 64-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNaN UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define i64_fromPosOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-
-/*----------------------------------------------------------------------------
-| "Common NaN" structure, used to transfer NaN representations from one format
-| to another.
-*----------------------------------------------------------------------------*/
-struct commonNaN {
- bool sign;
-#ifdef LITTLEENDIAN
- uint64_t v0, v64;
-#else
- uint64_t v64, v0;
-#endif
-};
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 16-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF16UI 0xFE00
-
-/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
-| 16-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 32-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0xFFC00000
-
-/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
-| 32-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 64-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
-| 64-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 80-bit extended floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNExtF80UI64 0xFFFF
-#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
-| floating-point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI64 UINT64_C( 0xFFFF800000000000 )
-#define defaultNaNF128UI0 UINT64_C( 0 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
-| point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- );
-
-#else
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI96 0xFFFF8000
-#define defaultNaNF128UI64 0
-#define defaultNaNF128UI32 0
-#define defaultNaNF128UI0 0
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
-
-#endif
-
-#endif
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
deleted file mode 100644
index c2cca65c95..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint64_t uiA0;
-
- aSPtr = (const struct extFloat80M *) aPtr;
- if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
- uiA0 = aSPtr->signif;
- return
- ! (uiA0 & UINT64_C( 0x4000000000000000 ))
- && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
deleted file mode 100644
index 9ff83d7261..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool f128M_isSignalingNaN( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
-
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
- return
- ((uiA96 & 0x00007FFF) != 0)
- || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
deleted file mode 100644
index 2e6bf7c75c..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat_types.h"
-
-#define softfloat_commonNaNToExtF80M softfloat_commonNaNToExtF80M
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
-
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
deleted file mode 100644
index e37004f7f8..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToExtF80UI softfloat_commonNaNToExtF80UI
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
deleted file mode 100644
index 2ff4c16317..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToF128M softfloat_commonNaNToF128M
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
-
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
deleted file mode 100644
index 05dfb5f14a..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToF128UI softfloat_commonNaNToF128UI
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
deleted file mode 100644
index 827ed5e3a2..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- )
-{
- uint_fast16_t ui64;
- uint_fast64_t ui0;
-
- ui64 = aSPtr->signExp;
- ui0 = aSPtr->signif;
- if (
- softfloat_isSigNaNExtF80UI( ui64, ui0 )
- || (bSPtr
- && (ui64 = bSPtr->signExp,
- ui0 = bSPtr->signif,
- softfloat_isSigNaNExtF80UI( ui64, ui0 )))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
deleted file mode 100644
index e2ddd937e7..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- )
-{
- struct uint128 uiZ;
-
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
deleted file mode 100644
index b876ae1f17..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
+++ /dev/null
@@ -1,68 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
-{
-
- if (
- f128M_isSignalingNaN( (const float128_t *) aWPtr );
- || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
deleted file mode 100644
index 31b788e0c9..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- )
-{
- struct uint128 uiZ;
-
- if (
- softfloat_isSigNaNF128UI( uiA64, uiA0 )
- || softfloat_isSigNaNF128UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
deleted file mode 100644
index 17618fc2ea..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
-{
-
- if ( softfloat_isSigNaNF16UI( uiA ) || softfloat_isSigNaNF16UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF16UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
deleted file mode 100644
index e4c3fc1a8f..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
-{
-
- if ( softfloat_isSigNaNF32UI( uiA ) || softfloat_isSigNaNF32UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF32UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
deleted file mode 100644
index 75361b8e26..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
-{
-
- if ( softfloat_isSigNaNF64UI( uiA ) || softfloat_isSigNaNF64UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF64UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
deleted file mode 100644
index f8f106570a..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Raises the exceptions specified by 'flags'. Floating-point traps can be
-| defined here if desired. It is currently not possible for such a trap
-| to substitute a result value. If traps are not implemented, this routine
-| should be simply 'softfloat_exceptionFlags |= flags;'.
-*----------------------------------------------------------------------------*/
-void softfloat_raiseFlags( uint_fast8_t flags )
-{
-
- softfloat_exceptionFlags |= flags;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/specialize.h b/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/specialize.h
deleted file mode 100644
index e4ea15d140..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2-defaultNaN/specialize.h
+++ /dev/null
@@ -1,407 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#ifndef specialize_h
-#define specialize_h 1
-
-#include
-#include
-#include "primitiveTypes.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Default value for 'softfloat_detectTininess'.
-*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_beforeRounding
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 32-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0
-#define ui32_fromNaN 0
-#define i32_fromPosOverflow 0x7FFFFFFF
-#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN 0
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 64-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow 0
-#define ui64_fromNaN 0
-#define i64_fromPosOverflow INT64_C( 0x7FFFFFFFFFFFFFFF )
-#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN 0
-
-/*----------------------------------------------------------------------------
-| "Common NaN" structure, used to transfer NaN representations from one format
-| to another.
-*----------------------------------------------------------------------------*/
-struct commonNaN { char _unused; };
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 16-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF16UI 0x7E00
-
-/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
-| 16-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f16UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x0200) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF16UI( aPtr ) ((uint_fast16_t) defaultNaNF16UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 32-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0x7FC00000
-
-/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
-| 32-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f32UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x00400000) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF32UI( aPtr ) ((uint_fast32_t) defaultNaNF32UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 64-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF64UI UINT64_C( 0x7FF8000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
-| 64-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f64UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & UINT64_C( 0x0008000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF64UI( aPtr ) ((uint_fast64_t) defaultNaNF64UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 80-bit extended floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNExtF80UI64 0x7FFF
-#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
-| floating-point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_extF80UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA0) & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToExtF80UI
-INLINE
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-}
-#else
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI64 UINT64_C( 0x7FFF800000000000 )
-#define defaultNaNF128UI0 UINT64_C( 0 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
-| point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f128UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA64) & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToF128UI
-INLINE
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-}
-#else
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
-#endif
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- );
-
-#else
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_extF80MToCommonNaN( aSPtr, zPtr ) if ( ! ((aSPtr)->signif & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToExtF80M
-INLINE
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-}
-#else
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI96 0x7FFF8000
-#define defaultNaNF128UI64 0
-#define defaultNaNF128UI32 0
-#define defaultNaNF128UI0 0
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-#define softfloat_f128MToCommonNaN( aWPtr, zPtr ) if ( ! ((aWPtr)[indexWordHi( 4 )] & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToF128M
-INLINE
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-}
-#else
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
-
-#endif
-
-#endif
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/extF80M_isSignalingNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/extF80M_isSignalingNaN.c
deleted file mode 100644
index c2cca65c95..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/extF80M_isSignalingNaN.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint64_t uiA0;
-
- aSPtr = (const struct extFloat80M *) aPtr;
- if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
- uiA0 = aSPtr->signif;
- return
- ! (uiA0 & UINT64_C( 0x4000000000000000 ))
- && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/f128M_isSignalingNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/f128M_isSignalingNaN.c
deleted file mode 100644
index 9ff83d7261..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/f128M_isSignalingNaN.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool f128M_isSignalingNaN( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
-
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
- return
- ((uiA96 & 0x00007FFF) != 0)
- || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80M.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80M.c
deleted file mode 100644
index 6bb922a1d3..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
-
- zSPtr->signExp = packToExtF80UI64( aPtr->sign, 0x7FFF );
- zSPtr->signif = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 5e841b2530..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = (uint_fast16_t) aPtr->sign<<15 | 0x7FFF;
- uiZ.v0 = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128M.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128M.c
deleted file mode 100644
index 02e2348530..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128M.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
-
- softfloat_shortShiftRight128M( (const uint32_t *) &aPtr->v0, 16, zWPtr );
- zWPtr[indexWordHi( 4 )] |= (uint32_t) aPtr->sign<<31 | 0x7FFF8000;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128UI.c
deleted file mode 100644
index fa87d75faf..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF128UI.c
+++ /dev/null
@@ -1,55 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ = softfloat_shortShiftRight128( aPtr->v64, aPtr->v0, 16 );
- uiZ.v64 |= (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FFF800000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF16UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF16UI.c
deleted file mode 100644
index 6d5bf9ab32..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast16_t) aPtr->sign<<15 | 0x7E00 | aPtr->v64>>54;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF32UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF32UI.c
deleted file mode 100644
index e45d63b3bc..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr )
-{
-
- return (uint_fast32_t) aPtr->sign<<31 | 0x7FC00000 | aPtr->v64>>41;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF64UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF64UI.c
deleted file mode 100644
index bfde88bbc8..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr )
-{
-
- return
- (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FF8000000000000 )
- | aPtr->v64>>12;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_extF80MToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_extF80MToCommonNaN.c
deleted file mode 100644
index 5fd54dbbd4..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr )
-{
-
- if ( extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = signExtF80UI64( aSPtr->signExp );
- zPtr->v64 = aSPtr->signif<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_extF80UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 9c0f0ca08d..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA64>>15;
- zPtr->v64 = uiA0<<1;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_f128MToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_f128MToCommonNaN.c
deleted file mode 100644
index e54756b10f..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr )
-{
-
- if ( f128M_isSignalingNaN( (const float128_t *) aWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = aWPtr[indexWordHi( 4 )]>>31;
- softfloat_shortShiftLeft128M( aWPtr, 16, (uint32_t *) &zPtr->v0 );
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_f128UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_f128UIToCommonNaN.c
deleted file mode 100644
index 27952a7752..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,65 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
-{
- struct uint128 NaNSig;
-
- if ( softfloat_isSigNaNF128UI( uiA64, uiA0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- NaNSig = softfloat_shortShiftLeft128( uiA64, uiA0, 16 );
- zPtr->sign = uiA64>>63;
- zPtr->v64 = NaNSig.v64;
- zPtr->v0 = NaNSig.v0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_f16UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_f16UIToCommonNaN.c
deleted file mode 100644
index ee1928eb3f..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF16UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>15;
- zPtr->v64 = (uint_fast64_t) uiA<<54;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_f32UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_f32UIToCommonNaN.c
deleted file mode 100644
index 249e478256..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF32UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>31;
- zPtr->v64 = (uint_fast64_t) uiA<<41;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_f64UIToCommonNaN.c b/life/resolver/softfloat/source/ARM-VFPv2/s_f64UIToCommonNaN.c
deleted file mode 100644
index adca2d0479..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr )
-{
-
- if ( softfloat_isSigNaNF64UI( uiA ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zPtr->sign = uiA>>63;
- zPtr->v64 = uiA<<12;
- zPtr->v0 = 0;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80M.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80M.c
deleted file mode 100644
index 1c142562ef..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80M.c
+++ /dev/null
@@ -1,86 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- )
-{
- const struct extFloat80M *sPtr;
- bool isSigNaNA;
- uint_fast16_t uiZ64;
- uint_fast64_t uiZ0;
-
- sPtr = aSPtr;
- isSigNaNA = extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr );
- if (
- isSigNaNA
- || (bSPtr
- && extF80M_isSignalingNaN( (const extFloat80_t *) bSPtr ))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) goto copyNonsig;
- goto copyNonsigB;
- }
- uiZ64 = sPtr->signExp;
- uiZ0 = sPtr->signif;
- if ( isNaNExtF80UI( uiZ64, uiZ0 ) ) goto returnNonsig;
- copyNonsigB:
- sPtr = bSPtr;
- copyNonsig:
- uiZ64 = sPtr->signExp;
- uiZ0 = sPtr->signif;
- returnNonsig:
- zSPtr->signExp = uiZ64;
- zSPtr->signif = uiZ0 | UINT64_C( 0xC000000000000000 );
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
deleted file mode 100644
index be95414acb..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA;
- struct uint128 uiZ;
-
- isSigNaNA = softfloat_isSigNaNExtF80UI( uiA64, uiA0 );
- if ( isSigNaNA || softfloat_isSigNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) goto returnNonsigA;
- goto returnNonsigB;
- }
- if ( isNaNExtF80UI( uiA64, uiA0 ) ) {
- returnNonsigA:
- uiZ.v64 = uiA64;
- uiZ.v0 = uiA0;
- } else {
- returnNonsigB:
- uiZ.v64 = uiB64;
- uiZ.v0 = uiB0;
- }
- uiZ.v0 | UINT64_C( 0xC000000000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128M.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128M.c
deleted file mode 100644
index 6a30052cbd..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128M.c
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
-{
- const uint32_t *ptr;
- bool isSigNaNA;
-
- ptr = aWPtr;
- isSigNaNA = f128M_isSignalingNaN( (const float128_t *) aWPtr );
- if (
- isSigNaNA
- || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( ! isSigNaNA ) ptr = bWPtr;
- goto copyNonsig;
- }
- if ( ! softfloat_isNaNF128M( aWPtr ) ) ptr = bWPtr;
- copyNonsig:
- zWPtr[indexWordHi( 4 )] = ptr[indexWordHi( 4 )] | 0x00008000;
- zWPtr[indexWord( 4, 2 )] = ptr[indexWord( 4, 2 )];
- zWPtr[indexWord( 4, 1 )] = ptr[indexWord( 4, 1 )];
- zWPtr[indexWord( 4, 0 )] = ptr[indexWord( 4, 0 )];
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128UI.c
deleted file mode 100644
index 5aece622ed..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF128UI.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- )
-{
- bool isSigNaNA;
- struct uint128 uiZ;
-
- isSigNaNA = softfloat_isSigNaNF128UI( uiA64, uiA0 );
- if ( isSigNaNA || softfloat_isSigNaNF128UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- if ( isSigNaNA ) goto returnNonsigA;
- goto returnNonsigB;
- }
- if ( isNaNF128UI( uiA64, uiA0 ) ) {
- returnNonsigA:
- uiZ.v64 = uiA64;
- uiZ.v0 = uiA0;
- } else {
- returnNonsigB:
- uiZ.v64 = uiB64;
- uiZ.v0 = uiB0;
- }
- uiZ.v64 |= UINT64_C( 0x0000800000000000 );
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF16UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF16UI.c
deleted file mode 100644
index 8801460336..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF16UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF16UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF16UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return (isSigNaNA ? uiA : uiB) | 0x0200;
- }
- return isNaNF16UI( uiA ) ? uiA : uiB;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF32UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF32UI.c
deleted file mode 100644
index 31b289e9d1..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF32UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF32UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF32UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return (isSigNaNA ? uiA : uiB) | 0x00400000;
- }
- return isNaNF32UI( uiA ) ? uiA : uiB;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF64UI.c b/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF64UI.c
deleted file mode 100644
index 224049ab17..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/s_propagateNaNF64UI.c
+++ /dev/null
@@ -1,63 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
-{
- bool isSigNaNA;
-
- isSigNaNA = softfloat_isSigNaNF64UI( uiA );
- if ( isSigNaNA || softfloat_isSigNaNF64UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return (isSigNaNA ? uiA : uiB) | UINT64_C( 0x0008000000000000 );
- }
- return isNaNF64UI( uiA ) ? uiA : uiB;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/softfloat_raiseFlags.c b/life/resolver/softfloat/source/ARM-VFPv2/softfloat_raiseFlags.c
deleted file mode 100644
index f8f106570a..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/softfloat_raiseFlags.c
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Raises the exceptions specified by 'flags'. Floating-point traps can be
-| defined here if desired. It is currently not possible for such a trap
-| to substitute a result value. If traps are not implemented, this routine
-| should be simply 'softfloat_exceptionFlags |= flags;'.
-*----------------------------------------------------------------------------*/
-void softfloat_raiseFlags( uint_fast8_t flags )
-{
-
- softfloat_exceptionFlags |= flags;
-
-}
-
diff --git a/life/resolver/softfloat/source/ARM-VFPv2/specialize.h b/life/resolver/softfloat/source/ARM-VFPv2/specialize.h
deleted file mode 100644
index 10b0b357fd..0000000000
--- a/life/resolver/softfloat/source/ARM-VFPv2/specialize.h
+++ /dev/null
@@ -1,376 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#ifndef specialize_h
-#define specialize_h 1
-
-#include
-#include
-#include "primitiveTypes.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Default value for 'softfloat_detectTininess'.
-*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_beforeRounding
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 32-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0
-#define ui32_fromNaN 0
-#define i32_fromPosOverflow 0x7FFFFFFF
-#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN 0
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 64-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow 0
-#define ui64_fromNaN 0
-#define i64_fromPosOverflow INT64_C( 0x7FFFFFFFFFFFFFFF )
-#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN 0
-
-/*----------------------------------------------------------------------------
-| "Common NaN" structure, used to transfer NaN representations from one format
-| to another.
-*----------------------------------------------------------------------------*/
-struct commonNaN {
- bool sign;
-#ifdef LITTLEENDIAN
- uint64_t v0, v64;
-#else
- uint64_t v64, v0;
-#endif
-};
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 16-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF16UI 0x7E00
-
-/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
-| 16-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 32-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0x7FC00000
-
-/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
-| 32-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 64-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF64UI UINT64_C( 0x7FF8000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
-| 64-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 80-bit extended floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNExtF80UI64 0x7FFF
-#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
-| floating-point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80UIToCommonNaN(
- uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI64 UINT64_C( 0x7FFF800000000000 )
-#define defaultNaNF128UI0 UINT64_C( 0 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
-| point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128UIToCommonNaN(
- uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- );
-
-#else
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_extF80MToCommonNaN(
- const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI96 0x7FFF8000
-#define defaultNaNF128UI64 0
-#define defaultNaNF128UI32 0
-#define defaultNaNF128UI0 0
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
-
-#endif
-
-#endif
-
diff --git a/life/resolver/softfloat/source/RISCV/extF80M_isSignalingNaN.c b/life/resolver/softfloat/source/RISCV/extF80M_isSignalingNaN.c
deleted file mode 100644
index c2cca65c95..0000000000
--- a/life/resolver/softfloat/source/RISCV/extF80M_isSignalingNaN.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint64_t uiA0;
-
- aSPtr = (const struct extFloat80M *) aPtr;
- if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
- uiA0 = aSPtr->signif;
- return
- ! (uiA0 & UINT64_C( 0x4000000000000000 ))
- && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/f128M_isSignalingNaN.c b/life/resolver/softfloat/source/RISCV/f128M_isSignalingNaN.c
deleted file mode 100644
index 9ff83d7261..0000000000
--- a/life/resolver/softfloat/source/RISCV/f128M_isSignalingNaN.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "primitives.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-*----------------------------------------------------------------------------*/
-bool f128M_isSignalingNaN( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
-
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
- return
- ((uiA96 & 0x00007FFF) != 0)
- || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80M.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80M.c
deleted file mode 100644
index 6d1e67e5ff..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80M.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat_types.h"
-
-#define softfloat_commonNaNToExtF80M softfloat_commonNaNToExtF80M
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| `zSPtr'.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
-
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80UI.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 953b97a782..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToExtF80UI.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToExtF80UI softfloat_commonNaNToExtF80UI
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToF128M.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToF128M.c
deleted file mode 100644
index d91b62e172..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToF128M.c
+++ /dev/null
@@ -1,60 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToF128M softfloat_commonNaNToF128M
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument
-| `zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
-
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToF128UI.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToF128UI.c
deleted file mode 100644
index b4c578dc71..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToF128UI.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "primitiveTypes.h"
-
-#define softfloat_commonNaNToF128UI softfloat_commonNaNToF128UI
-#include "specialize.h"
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
-
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToF16UI.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToF16UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToF32UI.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToF32UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_commonNaNToF64UI.c b/life/resolver/softfloat/source/RISCV/s_commonNaNToF64UI.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_extF80MToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_extF80MToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_extF80UIToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_f128MToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_f128MToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_f128UIToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_f128UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_f16UIToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_f16UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_f32UIToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_f32UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_f64UIToCommonNaN.c b/life/resolver/softfloat/source/RISCV/s_f64UIToCommonNaN.c
deleted file mode 100644
index 861b269658..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80M.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80M.c
deleted file mode 100644
index 8adc62e9ba..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80M.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by `zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- )
-{
- uint_fast16_t ui64;
- uint_fast64_t ui0;
-
- ui64 = aSPtr->signExp;
- ui0 = aSPtr->signif;
- if (
- softfloat_isSigNaNExtF80UI( ui64, ui0 )
- || (bSPtr
- && (ui64 = bSPtr->signExp,
- ui0 = bSPtr->signif,
- softfloat_isSigNaNExtF80UI( ui64, ui0 )))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80UI.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80UI.c
deleted file mode 100644
index 88bfee5ffe..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNExtF80UI.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating `uiB64' and `uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- )
-{
- struct uint128 uiZ;
-
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNF128M.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNF128M.c
deleted file mode 100644
index df76ab2354..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNF128M.c
+++ /dev/null
@@ -1,68 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2018 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
-{
-
- if (
- f128M_isSignalingNaN( (const float128_t *) aWPtr )
- || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNF128UI.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNF128UI.c
deleted file mode 100644
index 49e253539f..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNF128UI.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "primitiveTypes.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating `uiB64' and `uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- )
-{
- struct uint128 uiZ;
-
- if (
- softfloat_isSigNaNF128UI( uiA64, uiA0 )
- || softfloat_isSigNaNF128UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNF16UI.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNF16UI.c
deleted file mode 100644
index 228dcd8de9..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNF16UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
-{
-
- if ( softfloat_isSigNaNF16UI( uiA ) || softfloat_isSigNaNF16UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF16UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNF32UI.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNF32UI.c
deleted file mode 100644
index c6308cc323..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNF32UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
-{
-
- if ( softfloat_isSigNaNF32UI( uiA ) || softfloat_isSigNaNF32UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF32UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/s_propagateNaNF64UI.c b/life/resolver/softfloat/source/RISCV/s_propagateNaNF64UI.c
deleted file mode 100644
index 2203665537..0000000000
--- a/life/resolver/softfloat/source/RISCV/s_propagateNaNF64UI.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
-{
-
- if ( softfloat_isSigNaNF64UI( uiA ) || softfloat_isSigNaNF64UI( uiB ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return defaultNaNF64UI;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/softfloat_raiseFlags.c b/life/resolver/softfloat/source/RISCV/softfloat_raiseFlags.c
deleted file mode 100644
index 7a1aee9305..0000000000
--- a/life/resolver/softfloat/source/RISCV/softfloat_raiseFlags.c
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include "platform.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Raises the exceptions specified by `flags'. Floating-point traps can be
-| defined here if desired. It is currently not possible for such a trap
-| to substitute a result value. If traps are not implemented, this routine
-| should be simply `softfloat_exceptionFlags |= flags;'.
-*----------------------------------------------------------------------------*/
-void softfloat_raiseFlags( uint_fast8_t flags )
-{
-
- softfloat_exceptionFlags |= flags;
-
-}
-
diff --git a/life/resolver/softfloat/source/RISCV/specialize.h b/life/resolver/softfloat/source/RISCV/specialize.h
deleted file mode 100644
index c6382646fc..0000000000
--- a/life/resolver/softfloat/source/RISCV/specialize.h
+++ /dev/null
@@ -1,407 +0,0 @@
-
-/*============================================================================
-
-This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#ifndef specialize_h
-#define specialize_h 1
-
-#include
-#include
-#include "primitiveTypes.h"
-#include "softfloat.h"
-
-/*----------------------------------------------------------------------------
-| Default value for 'softfloat_detectTininess'.
-*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_afterRounding
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 32-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0
-#define ui32_fromNaN 0xFFFFFFFF
-#define i32_fromPosOverflow 0x7FFFFFFF
-#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN 0x7FFFFFFF
-
-/*----------------------------------------------------------------------------
-| The values to return on conversions to 64-bit integer formats that raise an
-| invalid exception.
-*----------------------------------------------------------------------------*/
-#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow 0
-#define ui64_fromNaN UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define i64_fromPosOverflow INT64_C( 0x7FFFFFFFFFFFFFFF )
-#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN INT64_C( 0x7FFFFFFFFFFFFFFF )
-
-/*----------------------------------------------------------------------------
-| "Common NaN" structure, used to transfer NaN representations from one format
-| to another.
-*----------------------------------------------------------------------------*/
-struct commonNaN { char _unused; };
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 16-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF16UI 0x7E00
-
-/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
-| 16-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f16UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x0200) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF16UI( aPtr ) ((uint_fast16_t) defaultNaNF16UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast16_t
- softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 32-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0x7FC00000
-
-/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
-| 32-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f32UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x00400000) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF32UI( aPtr ) ((uint_fast32_t) defaultNaNF32UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 64-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF64UI UINT64_C( 0x7FF8000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
-| 64-bit floating-point signaling NaN.
-| Note: This macro evaluates its argument more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
-
-/*----------------------------------------------------------------------------
-| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f64UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & UINT64_C( 0x0008000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#define softfloat_commonNaNToF64UI( aPtr ) ((uint_fast64_t) defaultNaNF64UI)
-
-/*----------------------------------------------------------------------------
-| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
-| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
-| signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-uint_fast64_t
- softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 80-bit extended floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNExtF80UI64 0x7FFF
-#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
-| floating-point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of an 80-bit extended floating-point NaN, converts
-| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_extF80UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA0) & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and returns the bit pattern of this value as an unsigned
-| integer.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToExtF80UI
-INLINE
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
- uiZ.v64 = defaultNaNExtF80UI64;
- uiZ.v0 = defaultNaNExtF80UI0;
- return uiZ;
-}
-#else
-struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 80-bit extended floating-point value, and assuming at least on of these
-| floating-point values is a NaN, returns the bit pattern of the combined NaN
-| result. If either original floating-point value is a signaling NaN, the
-| invalid exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNExtF80UI(
- uint_fast16_t uiA64,
- uint_fast64_t uiA0,
- uint_fast16_t uiB64,
- uint_fast64_t uiB0
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI64 UINT64_C( 0x7FFF800000000000 )
-#define defaultNaNF128UI0 UINT64_C( 0 )
-
-/*----------------------------------------------------------------------------
-| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
-| point signaling NaN.
-| Note: This macro evaluates its arguments more than once.
-*----------------------------------------------------------------------------*/
-#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
-
-/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
-| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
-| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
-| is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_f128UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA64) & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and returns the bit pattern of this value as an unsigned integer.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToF128UI
-INLINE
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
-{
- struct uint128 uiZ;
- uiZ.v64 = defaultNaNF128UI64;
- uiZ.v0 = defaultNaNF128UI0;
- return uiZ;
-}
-#else
-struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
-#endif
-
-/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating 'uiA64' and
-| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
-| 128-bit floating-point value, and assuming at least on of these floating-
-| point values is a NaN, returns the bit pattern of the combined NaN result.
-| If either original floating-point value is a signaling NaN, the invalid
-| exception is raised.
-*----------------------------------------------------------------------------*/
-struct uint128
- softfloat_propagateNaNF128UI(
- uint_fast64_t uiA64,
- uint_fast64_t uiA0,
- uint_fast64_t uiB64,
- uint_fast64_t uiB0
- );
-
-#else
-
-/*----------------------------------------------------------------------------
-| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
-| defined.
-*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
-| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
-| NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-#define softfloat_extF80MToCommonNaN( aSPtr, zPtr ) if ( ! ((aSPtr)->signif & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
-| floating-point NaN, and stores this NaN at the location pointed to by
-| 'zSPtr'.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToExtF80M
-INLINE
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
-{
- zSPtr->signExp = defaultNaNExtF80UI64;
- zSPtr->signif = defaultNaNExtF80UI0;
-}
-#else
-void
- softfloat_commonNaNToExtF80M(
- const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by 'zSPtr'. If either original floating-point
-| value is a signaling NaN, the invalid exception is raised.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNExtF80M(
- const struct extFloat80M *aSPtr,
- const struct extFloat80M *bSPtr,
- struct extFloat80M *zSPtr
- );
-
-/*----------------------------------------------------------------------------
-| The bit pattern for a default generated 128-bit floating-point NaN.
-*----------------------------------------------------------------------------*/
-#define defaultNaNF128UI96 0x7FFF8000
-#define defaultNaNF128UI64 0
-#define defaultNaNF128UI32 0
-#define defaultNaNF128UI0 0
-
-/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
-| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument 'aWPtr' points to an array of
-| four 32-bit elements that concatenate in the platform's normal endian order
-| to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-#define softfloat_f128MToCommonNaN( aWPtr, zPtr ) if ( ! ((aWPtr)[indexWordHi( 4 )] & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
-
-/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
-| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
-| platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-#if defined INLINE && ! defined softfloat_commonNaNToF128M
-INLINE
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
-{
- zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
- zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
- zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
- zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
-}
-#else
-void
- softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
-#endif
-
-/*----------------------------------------------------------------------------
-| Assuming at least one of the two 128-bit floating-point values pointed to by
-| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by 'zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
-| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
-| the platform's normal endian order to form a 128-bit floating-point value.
-*----------------------------------------------------------------------------*/
-void
- softfloat_propagateNaNF128M(
- const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
-
-#endif
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_add.c b/life/resolver/softfloat/source/extF80M_add.c
deleted file mode 100644
index 4ba6a311ca..0000000000
--- a/life/resolver/softfloat/source/extF80M_add.c
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_add(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
-#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
- extFloat80_t
- (*magsFuncPtr)(
- uint_fast16_t, uint_fast64_t, uint_fast16_t, uint_fast64_t, bool );
-#endif
-
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- signA = signExtF80UI64( uiA64 );
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- signB = signExtF80UI64( uiB64 );
-#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
- if ( signA == signB ) {
- *zPtr = softfloat_addMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- *zPtr = softfloat_subMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_addMagsExtF80 : softfloat_subMagsExtF80;
- *zPtr = (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
-#else
-
-void
- extF80M_add(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
-
- softfloat_addExtF80M(
- (const struct extFloat80M *) aPtr,
- (const struct extFloat80M *) bPtr,
- (struct extFloat80M *) zPtr,
- false
- );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_div.c b/life/resolver/softfloat/source/extF80M_div.c
deleted file mode 100644
index 24c069a985..0000000000
--- a/life/resolver/softfloat/source/extF80M_div.c
+++ /dev/null
@@ -1,194 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_div(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
-
- *zPtr = extF80_div( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- extF80M_div(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- struct extFloat80M *zSPtr;
- uint_fast16_t uiA64;
- int32_t expA;
- uint_fast16_t uiB64;
- int32_t expB;
- bool signZ;
- uint64_t sigA, x64;
- int32_t expZ;
- int shiftDist;
- uint32_t y[3], recip32, sigB[3];
- int ix;
- uint32_t q, qs[2];
- uint_fast16_t uiZ64;
- uint64_t uiZ0;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- expA = expExtF80UI64( uiA64 );
- uiB64 = bSPtr->signExp;
- expB = expExtF80UI64( uiB64 );
- signZ = signExtF80UI64( uiA64 ) ^ signExtF80UI64( uiB64 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNExtF80M( aSPtr, bSPtr, zSPtr ) ) return;
- if ( expA == 0x7FFF ) {
- if ( expB == 0x7FFF ) goto invalid;
- goto infinity;
- }
- goto zero;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sigA = aSPtr->signif;
- x64 = bSPtr->signif;
- if ( ! expB ) expB = 1;
- if ( ! (x64 & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! x64 ) {
- if ( ! sigA ) goto invalid;
- softfloat_raiseFlags( softfloat_flag_infinite );
- goto infinity;
- }
- expB += softfloat_normExtF80SigM( &x64 );
- }
- if ( ! expA ) expA = 1;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) goto zero;
- expA += softfloat_normExtF80SigM( &sigA );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA - expB + 0x3FFF;
- shiftDist = 29;
- if ( sigA < x64 ) {
- --expZ;
- shiftDist = 30;
- }
- softfloat_shortShiftLeft64To96M( sigA, shiftDist, y );
- recip32 = softfloat_approxRecip32_1( x64>>32 );
- sigB[indexWord( 3, 0 )] = (uint32_t) x64<<30;
- x64 >>= 2;
- sigB[indexWord( 3, 2 )] = x64>>32;
- sigB[indexWord( 3, 1 )] = x64;
- ix = 2;
- for (;;) {
- x64 = (uint64_t) y[indexWordHi( 3 )] * recip32;
- q = (x64 + 0x80000000)>>32;
- --ix;
- if ( ix < 0 ) break;
- softfloat_remStep96MBy32( y, 29, sigB, q, y );
- if ( y[indexWordHi( 3 )] & 0x80000000 ) {
- --q;
- softfloat_add96M( y, sigB, y );
- }
- qs[ix] = q;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ((q + 1) & 0x3FFFFF) < 2 ) {
- softfloat_remStep96MBy32( y, 29, sigB, q, y );
- if ( y[indexWordHi( 3 )] & 0x80000000 ) {
- --q;
- softfloat_add96M( y, sigB, y );
- } else if ( softfloat_compare96M( sigB, y ) <= 0 ) {
- ++q;
- softfloat_sub96M( y, sigB, y );
- }
- if (
- y[indexWordLo( 3 )] || y[indexWord( 3, 1 )] || y[indexWord( 3, 2 )]
- ) {
- q |= 1;
- }
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- x64 = (uint64_t) q<<9;
- y[indexWord( 3, 0 )] = x64;
- x64 = ((uint64_t) qs[0]<<6) + (x64>>32);
- y[indexWord( 3, 1 )] = x64;
- y[indexWord( 3, 2 )] = (qs[1]<<3) + (x64>>32);
- softfloat_roundPackMToExtF80M(
- signZ, expZ, y, extF80_roundingPrecision, zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_invalidExtF80M( zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- infinity:
- uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
- uiZ0 = UINT64_C( 0x8000000000000000 );
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ64 = packToExtF80UI64( signZ, 0 );
- uiZ0 = 0;
- uiZ:
- zSPtr->signExp = uiZ64;
- zSPtr->signif = uiZ0;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_eq.c b/life/resolver/softfloat/source/extF80M_eq.c
deleted file mode 100644
index 2480037106..0000000000
--- a/life/resolver/softfloat/source/extF80M_eq.c
+++ /dev/null
@@ -1,98 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_eq( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_eq( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_eq( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( uiA0 == uiB0 ) {
- return (uiA64 == uiB64) || ! uiA0;
- } else {
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return ! softfloat_compareNonnormExtF80M( aSPtr, bSPtr );
- }
- return false;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_eq_signaling.c b/life/resolver/softfloat/source/extF80M_eq_signaling.c
deleted file mode 100644
index 785eba1eb2..0000000000
--- a/life/resolver/softfloat/source/extF80M_eq_signaling.c
+++ /dev/null
@@ -1,92 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_eq_signaling( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_eq_signaling( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_eq_signaling( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( uiA0 == uiB0 ) {
- return (uiA64 == uiB64) || ! uiA0;
- } else {
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return ! softfloat_compareNonnormExtF80M( aSPtr, bSPtr );
- }
- return false;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_le.c b/life/resolver/softfloat/source/extF80M_le.c
deleted file mode 100644
index 24edae8772..0000000000
--- a/life/resolver/softfloat/source/extF80M_le.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_le( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_le( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_le( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- bool signA, ltMags;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- signA = signExtF80UI64( uiA64 );
- if ( (uiA64 ^ uiB64) & 0x8000 ) {
- /*--------------------------------------------------------------------
- | Signs are different.
- *--------------------------------------------------------------------*/
- return signA || ! (uiA0 | uiB0);
- } else {
- /*--------------------------------------------------------------------
- | Signs are the same.
- *--------------------------------------------------------------------*/
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return (softfloat_compareNonnormExtF80M( aSPtr, bSPtr ) <= 0);
- }
- if ( uiA64 == uiB64 ) {
- if ( uiA0 == uiB0 ) return true;
- ltMags = (uiA0 < uiB0);
- } else {
- ltMags = (uiA64 < uiB64);
- }
- return signA ^ ltMags;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_le_quiet.c b/life/resolver/softfloat/source/extF80M_le_quiet.c
deleted file mode 100644
index 3880e36d59..0000000000
--- a/life/resolver/softfloat/source/extF80M_le_quiet.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_le_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_le_quiet( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_le_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- bool signA, ltMags;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- signA = signExtF80UI64( uiA64 );
- if ( (uiA64 ^ uiB64) & 0x8000 ) {
- /*--------------------------------------------------------------------
- | Signs are different.
- *--------------------------------------------------------------------*/
- return signA || ! (uiA0 | uiB0);
- } else {
- /*--------------------------------------------------------------------
- | Signs are the same.
- *--------------------------------------------------------------------*/
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return (softfloat_compareNonnormExtF80M( aSPtr, bSPtr ) <= 0);
- }
- if ( uiA64 == uiB64 ) {
- if ( uiA0 == uiB0 ) return true;
- ltMags = (uiA0 < uiB0);
- } else {
- ltMags = (uiA64 < uiB64);
- }
- return signA ^ ltMags;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_lt.c b/life/resolver/softfloat/source/extF80M_lt.c
deleted file mode 100644
index 70fa8f05d4..0000000000
--- a/life/resolver/softfloat/source/extF80M_lt.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_lt( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_lt( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_lt( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- bool signA, ltMags;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- signA = signExtF80UI64( uiA64 );
- if ( (uiA64 ^ uiB64) & 0x8000 ) {
- /*--------------------------------------------------------------------
- | Signs are different.
- *--------------------------------------------------------------------*/
- return signA && ((uiA0 | uiB0) != 0);
- } else {
- /*--------------------------------------------------------------------
- | Signs are the same.
- *--------------------------------------------------------------------*/
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return (softfloat_compareNonnormExtF80M( aSPtr, bSPtr ) < 0);
- }
- if ( uiA64 == uiB64 ) {
- if ( uiA0 == uiB0 ) return false;
- ltMags = (uiA0 < uiB0);
- } else {
- ltMags = (uiA64 < uiB64);
- }
- return signA ^ ltMags;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_lt_quiet.c b/life/resolver/softfloat/source/extF80M_lt_quiet.c
deleted file mode 100644
index b119af308b..0000000000
--- a/life/resolver/softfloat/source/extF80M_lt_quiet.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool extF80M_lt_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
-
- return extF80_lt_quiet( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool extF80M_lt_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint64_t uiA0;
- uint_fast16_t uiB64;
- uint64_t uiB0;
- bool signA, ltMags;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- signA = signExtF80UI64( uiA64 );
- if ( (uiA64 ^ uiB64) & 0x8000 ) {
- /*--------------------------------------------------------------------
- | Signs are different.
- *--------------------------------------------------------------------*/
- return signA && ((uiA0 | uiB0) != 0);
- } else {
- /*--------------------------------------------------------------------
- | Signs are the same.
- *--------------------------------------------------------------------*/
- if ( ! ((uiA0 & uiB0) & UINT64_C( 0x8000000000000000 )) ) {
- return (softfloat_compareNonnormExtF80M( aSPtr, bSPtr ) < 0);
- }
- if ( uiA64 == uiB64 ) {
- if ( uiA0 == uiB0 ) return false;
- ltMags = (uiA0 < uiB0);
- } else {
- ltMags = (uiA64 < uiB64);
- }
- return signA ^ ltMags;
- }
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_mul.c b/life/resolver/softfloat/source/extF80M_mul.c
deleted file mode 100644
index 2734449009..0000000000
--- a/life/resolver/softfloat/source/extF80M_mul.c
+++ /dev/null
@@ -1,139 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_mul(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
-
- *zPtr = extF80_mul( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- extF80M_mul(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- struct extFloat80M *zSPtr;
- uint_fast16_t uiA64;
- int32_t expA;
- uint_fast16_t uiB64;
- int32_t expB;
- bool signZ;
- uint_fast16_t exp, uiZ64;
- uint64_t uiZ0, sigA, sigB;
- int32_t expZ;
- uint32_t sigProd[4], *extSigZPtr;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- expA = expExtF80UI64( uiA64 );
- uiB64 = bSPtr->signExp;
- expB = expExtF80UI64( uiB64 );
- signZ = signExtF80UI64( uiA64 ) ^ signExtF80UI64( uiB64 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNExtF80M( aSPtr, bSPtr, zSPtr ) ) return;
- if (
- (! aSPtr->signif && (expA != 0x7FFF))
- || (! bSPtr->signif && (expB != 0x7FFF))
- ) {
- softfloat_invalidExtF80M( zSPtr );
- return;
- }
- uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
- uiZ0 = UINT64_C( 0x8000000000000000 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expA ) expA = 1;
- sigA = aSPtr->signif;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) goto zero;
- expA += softfloat_normExtF80SigM( &sigA );
- }
- if ( ! expB ) expB = 1;
- sigB = bSPtr->signif;
- if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigB ) goto zero;
- expB += softfloat_normExtF80SigM( &sigB );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA + expB - 0x3FFE;
- softfloat_mul64To128M( sigA, sigB, sigProd );
- if ( sigProd[indexWordLo( 4 )] ) sigProd[indexWord( 4, 1 )] |= 1;
- extSigZPtr = &sigProd[indexMultiwordHi( 4, 3 )];
- if ( sigProd[indexWordHi( 4 )] < 0x80000000 ) {
- --expZ;
- softfloat_add96M( extSigZPtr, extSigZPtr, extSigZPtr );
- }
- softfloat_roundPackMToExtF80M(
- signZ, expZ, extSigZPtr, extF80_roundingPrecision, zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ64 = packToExtF80UI64( signZ, 0 );
- uiZ0 = 0;
- uiZ:
- zSPtr->signExp = uiZ64;
- zSPtr->signif = uiZ0;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_rem.c b/life/resolver/softfloat/source/extF80M_rem.c
deleted file mode 100644
index 065e271a72..0000000000
--- a/life/resolver/softfloat/source/extF80M_rem.c
+++ /dev/null
@@ -1,204 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_rem(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
-
- *zPtr = extF80_rem( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- extF80M_rem(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- struct extFloat80M *zSPtr;
- uint_fast16_t uiA64;
- int32_t expA, expB;
- uint64_t x64;
- bool signRem;
- uint64_t sigA;
- int32_t expDiff;
- uint32_t rem[3], x[3], sig32B, q, recip32, rem2[3], *remPtr, *altRemPtr;
- uint32_t *newRemPtr, wordMeanRem;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- expA = expExtF80UI64( uiA64 );
- expB = expExtF80UI64( bSPtr->signExp );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNExtF80M( aSPtr, bSPtr, zSPtr ) ) return;
- if ( expA == 0x7FFF ) goto invalid;
- /*--------------------------------------------------------------------
- | If we get here, then argument b is an infinity and `expB' is 0x7FFF;
- | Doubling `expB' is an easy way to ensure that `expDiff' later is
- | less than -1, which will result in returning a canonicalized version
- | of argument a.
- *--------------------------------------------------------------------*/
- expB += expB;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expB ) expB = 1;
- x64 = bSPtr->signif;
- if ( ! (x64 & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! x64 ) goto invalid;
- expB += softfloat_normExtF80SigM( &x64 );
- }
- signRem = signExtF80UI64( uiA64 );
- if ( ! expA ) expA = 1;
- sigA = aSPtr->signif;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) {
- expA = 0;
- goto copyA;
- }
- expA += softfloat_normExtF80SigM( &sigA );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expDiff = expA - expB;
- if ( expDiff < -1 ) goto copyA;
- rem[indexWord( 3, 2 )] = sigA>>34;
- rem[indexWord( 3, 1 )] = sigA>>2;
- rem[indexWord( 3, 0 )] = (uint32_t) sigA<<30;
- x[indexWord( 3, 0 )] = (uint32_t) x64<<30;
- sig32B = x64>>32;
- x64 >>= 2;
- x[indexWord( 3, 2 )] = x64>>32;
- x[indexWord( 3, 1 )] = x64;
- if ( expDiff < 1 ) {
- if ( expDiff ) {
- --expB;
- softfloat_add96M( x, x, x );
- q = 0;
- } else {
- q = (softfloat_compare96M( x, rem ) <= 0);
- if ( q ) softfloat_sub96M( rem, x, rem );
- }
- } else {
- recip32 = softfloat_approxRecip32_1( sig32B );
- expDiff -= 30;
- for (;;) {
- x64 = (uint64_t) rem[indexWordHi( 3 )] * recip32;
- if ( expDiff < 0 ) break;
- q = (x64 + 0x80000000)>>32;
- softfloat_remStep96MBy32( rem, 29, x, q, rem );
- if ( rem[indexWordHi( 3 )] & 0x80000000 ) {
- softfloat_add96M( rem, x, rem );
- }
- expDiff -= 29;
- }
- /*--------------------------------------------------------------------
- | (`expDiff' cannot be less than -29 here.)
- *--------------------------------------------------------------------*/
- q = (uint32_t) (x64>>32)>>(~expDiff & 31);
- softfloat_remStep96MBy32( rem, expDiff + 30, x, q, rem );
- if ( rem[indexWordHi( 3 )] & 0x80000000 ) {
- remPtr = rem;
- altRemPtr = rem2;
- softfloat_add96M( remPtr, x, altRemPtr );
- goto selectRem;
- }
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- remPtr = rem;
- altRemPtr = rem2;
- do {
- ++q;
- newRemPtr = altRemPtr;
- softfloat_sub96M( remPtr, x, newRemPtr );
- altRemPtr = remPtr;
- remPtr = newRemPtr;
- } while ( ! (remPtr[indexWordHi( 3 )] & 0x80000000) );
- selectRem:
- softfloat_add96M( remPtr, altRemPtr, x );
- wordMeanRem = x[indexWordHi( 3 )];
- if (
- (wordMeanRem & 0x80000000)
- || (! wordMeanRem && (q & 1) && ! x[indexWord( 3, 0 )]
- && ! x[indexWord( 3, 1 )])
- ) {
- remPtr = altRemPtr;
- }
- if ( remPtr[indexWordHi( 3 )] & 0x80000000 ) {
- signRem = ! signRem;
- softfloat_negX96M( remPtr );
- }
- softfloat_normRoundPackMToExtF80M( signRem, expB + 2, remPtr, 80, zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_invalidExtF80M( zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- copyA:
- if ( expA < 1 ) {
- sigA >>= 1 - expA;
- expA = 0;
- }
- zSPtr->signExp = packToExtF80UI64( signRem, expA );
- zSPtr->signif = sigA;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_roundToInt.c b/life/resolver/softfloat/source/extF80M_roundToInt.c
deleted file mode 100644
index ff4ae876af..0000000000
--- a/life/resolver/softfloat/source/extF80M_roundToInt.c
+++ /dev/null
@@ -1,176 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_roundToInt(
- const extFloat80_t *aPtr,
- uint_fast8_t roundingMode,
- bool exact,
- extFloat80_t *zPtr
- )
-{
-
- *zPtr = extF80_roundToInt( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-void
- extF80M_roundToInt(
- const extFloat80_t *aPtr,
- uint_fast8_t roundingMode,
- bool exact,
- extFloat80_t *zPtr
- )
-{
- const struct extFloat80M *aSPtr;
- struct extFloat80M *zSPtr;
- uint_fast16_t uiA64, signUI64;
- int32_t exp;
- uint64_t sigA;
- uint_fast16_t uiZ64;
- uint64_t sigZ, lastBitMask, roundBitsMask;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- signUI64 = uiA64 & packToExtF80UI64( 1, 0 );
- exp = expExtF80UI64( uiA64 );
- sigA = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( !(sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
- if ( !sigA ) {
- uiZ64 = signUI64;
- sigZ = 0;
- goto uiZ;
- }
- exp += softfloat_normExtF80SigM( &sigA );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp <= 0x3FFE ) {
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- switch ( roundingMode ) {
- case softfloat_round_near_even:
- if ( !(sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
- case softfloat_round_near_maxMag:
- if ( exp == 0x3FFE ) goto mag1;
- break;
- case softfloat_round_min:
- if ( signUI64 ) goto mag1;
- break;
- case softfloat_round_max:
- if ( !signUI64 ) goto mag1;
- break;
-#ifdef SOFTFLOAT_ROUND_ODD
- case softfloat_round_odd:
- goto mag1;
-#endif
- }
- uiZ64 = signUI64;
- sigZ = 0;
- goto uiZ;
- mag1:
- uiZ64 = signUI64 | 0x3FFF;
- sigZ = UINT64_C( 0x8000000000000000 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( 0x403E <= exp ) {
- if ( exp == 0x7FFF ) {
- if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_propagateNaNExtF80M( aSPtr, 0, zSPtr );
- return;
- }
- sigZ = UINT64_C( 0x8000000000000000 );
- } else {
- sigZ = sigA;
- }
- uiZ64 = signUI64 | exp;
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ64 = signUI64 | exp;
- lastBitMask = (uint64_t) 1<<(0x403E - exp);
- roundBitsMask = lastBitMask - 1;
- sigZ = sigA;
- if ( roundingMode == softfloat_round_near_maxMag ) {
- sigZ += lastBitMask>>1;
- } else if ( roundingMode == softfloat_round_near_even ) {
- sigZ += lastBitMask>>1;
- if ( !(sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
- } else if (
- roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
- ) {
- sigZ += roundBitsMask;
- }
- sigZ &= ~roundBitsMask;
- if ( !sigZ ) {
- ++uiZ64;
- sigZ = UINT64_C( 0x8000000000000000 );
- }
- if ( sigZ != sigA ) {
-#ifdef SOFTFLOAT_ROUND_ODD
- if ( roundingMode == softfloat_round_odd ) sigZ |= lastBitMask;
-#endif
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- uiZ:
- zSPtr->signExp = uiZ64;
- zSPtr->signif = sigZ;
- return;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_sqrt.c b/life/resolver/softfloat/source/extF80M_sqrt.c
deleted file mode 100644
index 21c15da078..0000000000
--- a/life/resolver/softfloat/source/extF80M_sqrt.c
+++ /dev/null
@@ -1,180 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void extF80M_sqrt( const extFloat80_t *aPtr, extFloat80_t *zPtr )
-{
-
- *zPtr = extF80_sqrt( *aPtr );
-
-}
-
-#else
-
-void extF80M_sqrt( const extFloat80_t *aPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr;
- struct extFloat80M *zSPtr;
- uint_fast16_t uiA64, signUI64;
- int32_t expA;
- uint64_t rem64;
- int32_t expZ;
- uint32_t rem96[3], sig32A, recipSqrt32, sig32Z, q;
- uint64_t sig64Z, x64;
- uint32_t rem32, term[4], rem[4], extSigZ[3];
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- signUI64 = uiA64 & packToExtF80UI64( 1, 0 );
- expA = expExtF80UI64( uiA64 );
- rem64 = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA == 0x7FFF ) {
- if ( rem64 & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_propagateNaNExtF80M( aSPtr, 0, zSPtr );
- return;
- }
- if ( signUI64 ) goto invalid;
- rem64 = UINT64_C( 0x8000000000000000 );
- goto copyA;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expA ) expA = 1;
- if ( ! (rem64 & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! rem64 ) {
- uiA64 = signUI64;
- goto copyA;
- }
- expA += softfloat_normExtF80SigM( &rem64 );
- }
- if ( signUI64 ) goto invalid;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = ((expA - 0x3FFF)>>1) + 0x3FFF;
- expA &= 1;
- softfloat_shortShiftLeft64To96M( rem64, 30 - expA, rem96 );
- sig32A = rem64>>32;
- recipSqrt32 = softfloat_approxRecipSqrt32_1( expA, sig32A );
- sig32Z = ((uint64_t) sig32A * recipSqrt32)>>32;
- if ( expA ) sig32Z >>= 1;
- rem64 =
- ((uint64_t) rem96[indexWord( 3, 2 )]<<32 | rem96[indexWord( 3, 1 )])
- - (uint64_t) sig32Z * sig32Z;
- rem96[indexWord( 3, 2 )] = rem64>>32;
- rem96[indexWord( 3, 1 )] = rem64;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = ((uint32_t) (rem64>>2) * (uint64_t) recipSqrt32)>>32;
- sig64Z = ((uint64_t) sig32Z<<32) + ((uint64_t) q<<3);
- term[indexWord( 3, 2 )] = 0;
- /*------------------------------------------------------------------------
- | (Repeating this loop is a rare occurrence.)
- *------------------------------------------------------------------------*/
- for (;;) {
- x64 = ((uint64_t) sig32Z<<32) + sig64Z;
- term[indexWord( 3, 1 )] = x64>>32;
- term[indexWord( 3, 0 )] = x64;
- softfloat_remStep96MBy32(
- rem96, 29, term, q, &rem[indexMultiwordHi( 4, 3 )] );
- rem32 = rem[indexWord( 4, 3 )];
- if ( ! (rem32 & 0x80000000) ) break;
- --q;
- sig64Z -= 1<<3;
- }
- rem64 = (uint64_t) rem32<<32 | rem[indexWord( 4, 2 )];
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = (((uint32_t) (rem64>>2) * (uint64_t) recipSqrt32)>>32) + 2;
- if ( rem64>>34 ) q += recipSqrt32;
- x64 = (uint64_t) q<<7;
- extSigZ[indexWord( 3, 0 )] = x64;
- x64 = (sig64Z<<1) + (x64>>32);
- extSigZ[indexWord( 3, 2 )] = x64>>32;
- extSigZ[indexWord( 3, 1 )] = x64;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (q & 0xFFFFFF) <= 2 ) {
- q &= ~(uint32_t) 0xFFFF;
- extSigZ[indexWordLo( 3 )] = q<<7;
- x64 = sig64Z + (q>>27);
- term[indexWord( 4, 3 )] = 0;
- term[indexWord( 4, 2 )] = x64>>32;
- term[indexWord( 4, 1 )] = x64;
- term[indexWord( 4, 0 )] = q<<5;
- rem[indexWord( 4, 0 )] = 0;
- softfloat_remStep128MBy32( rem, 28, term, q, rem );
- q = rem[indexWordHi( 4 )];
- if ( q & 0x80000000 ) {
- softfloat_sub1X96M( extSigZ );
- } else {
- if ( q || rem[indexWord( 4, 1 )] || rem[indexWord( 4, 2 )] ) {
- extSigZ[indexWordLo( 3 )] |= 1;
- }
- }
- }
- softfloat_roundPackMToExtF80M(
- 0, expZ, extSigZ, extF80_roundingPrecision, zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_invalidExtF80M( zSPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- copyA:
- zSPtr->signExp = uiA64;
- zSPtr->signif = rem64;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_sub.c b/life/resolver/softfloat/source/extF80M_sub.c
deleted file mode 100644
index 4f9f1a6238..0000000000
--- a/life/resolver/softfloat/source/extF80M_sub.c
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- extF80M_sub(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
- const struct extFloat80M *aSPtr, *bSPtr;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
-#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
- extFloat80_t
- (*magsFuncPtr)(
- uint_fast16_t, uint_fast64_t, uint_fast16_t, uint_fast64_t, bool );
-#endif
-
- aSPtr = (const struct extFloat80M *) aPtr;
- bSPtr = (const struct extFloat80M *) bPtr;
- uiA64 = aSPtr->signExp;
- uiA0 = aSPtr->signif;
- signA = signExtF80UI64( uiA64 );
- uiB64 = bSPtr->signExp;
- uiB0 = bSPtr->signif;
- signB = signExtF80UI64( uiB64 );
-#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
- if ( signA == signB ) {
- *zPtr = softfloat_subMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- *zPtr = softfloat_addMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_subMagsExtF80 : softfloat_addMagsExtF80;
- *zPtr = (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
-#else
-
-void
- extF80M_sub(
- const extFloat80_t *aPtr, const extFloat80_t *bPtr, extFloat80_t *zPtr )
-{
-
- softfloat_addExtF80M(
- (const struct extFloat80M *) aPtr,
- (const struct extFloat80M *) bPtr,
- (struct extFloat80M *) zPtr,
- true
- );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_f128M.c b/life/resolver/softfloat/source/extF80M_to_f128M.c
deleted file mode 100644
index c0306af825..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_f128M.c
+++ /dev/null
@@ -1,125 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void extF80M_to_f128M( const extFloat80_t *aPtr, float128_t *zPtr )
-{
-
- *zPtr = extF80_to_f128( *aPtr );
-
-}
-
-#else
-
-void extF80M_to_f128M( const extFloat80_t *aPtr, float128_t *zPtr )
-{
- const struct extFloat80M *aSPtr;
- uint32_t *zWPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- struct commonNaN commonNaN;
- uint32_t uiZ96;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zWPtr[indexWord( 4, 0 )] = 0;
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80MToCommonNaN( aSPtr, &commonNaN );
- softfloat_commonNaNToF128M( &commonNaN, zWPtr );
- return;
- }
- uiZ96 = packToF128UI96( sign, 0x7FFF, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp ) --exp;
- if ( ! (sig & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sig ) {
- uiZ96 = packToF128UI96( sign, 0, 0 );
- goto uiZ;
- }
- exp += softfloat_normExtF80SigM( &sig );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zWPtr[indexWord( 4, 1 )] = (uint32_t) sig<<17;
- sig >>= 15;
- zWPtr[indexWord( 4, 2 )] = sig;
- if ( exp < 0 ) {
- zWPtr[indexWordHi( 4 )] = sig>>32;
- softfloat_shiftRight96M(
- &zWPtr[indexMultiwordHi( 4, 3 )],
- -exp,
- &zWPtr[indexMultiwordHi( 4, 3 )]
- );
- exp = 0;
- sig = (uint64_t) zWPtr[indexWordHi( 4 )]<<32;
- }
- zWPtr[indexWordHi( 4 )] = packToF128UI96( sign, exp, sig>>32 );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- zWPtr[indexWord( 4, 3 )] = uiZ96;
- zWPtr[indexWord( 4, 2 )] = 0;
- zWPtr[indexWord( 4, 1 )] = 0;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_f16.c b/life/resolver/softfloat/source/extF80M_to_f16.c
deleted file mode 100644
index 7ff56de2d1..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_f16.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-float16_t extF80M_to_f16( const extFloat80_t *aPtr )
-{
-
- return extF80_to_f16( *aPtr );
-
-}
-
-#else
-
-float16_t extF80M_to_f16( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- struct commonNaN commonNaN;
- uint16_t uiZ, sig16;
- union ui16_f16 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80MToCommonNaN( aSPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF16UI( &commonNaN );
- } else {
- uiZ = packToF16UI( sign, 0x1F, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! (sig & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sig ) {
- uiZ = packToF16UI( sign, 0, 0 );
- goto uiZ;
- }
- exp += softfloat_normExtF80SigM( &sig );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig16 = softfloat_shortShiftRightJam64( sig, 49 );
- exp -= 0x3FF1;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x40 ) exp = -0x40;
- }
- return softfloat_roundPackToF16( sign, exp, sig16 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_f32.c b/life/resolver/softfloat/source/extF80M_to_f32.c
deleted file mode 100644
index bb1166f974..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_f32.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-float32_t extF80M_to_f32( const extFloat80_t *aPtr )
-{
-
- return extF80_to_f32( *aPtr );
-
-}
-
-#else
-
-float32_t extF80M_to_f32( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- struct commonNaN commonNaN;
- uint32_t uiZ, sig32;
- union ui32_f32 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80MToCommonNaN( aSPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF32UI( &commonNaN );
- } else {
- uiZ = packToF32UI( sign, 0xFF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! (sig & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sig ) {
- uiZ = packToF32UI( sign, 0, 0 );
- goto uiZ;
- }
- exp += softfloat_normExtF80SigM( &sig );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig32 = softfloat_shortShiftRightJam64( sig, 33 );
- exp -= 0x3F81;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return softfloat_roundPackToF32( sign, exp, sig32 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_f64.c b/life/resolver/softfloat/source/extF80M_to_f64.c
deleted file mode 100644
index 696255f87a..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_f64.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-float64_t extF80M_to_f64( const extFloat80_t *aPtr )
-{
-
- return extF80_to_f64( *aPtr );
-
-}
-
-#else
-
-float64_t extF80M_to_f64( const extFloat80_t *aPtr )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- struct commonNaN commonNaN;
- uint64_t uiZ;
- union ui64_f64 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80MToCommonNaN( aSPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF64UI( &commonNaN );
- } else {
- uiZ = packToF64UI( sign, 0x7FF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! (sig & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sig ) {
- uiZ = packToF64UI( sign, 0, 0 );
- goto uiZ;
- }
- exp += softfloat_normExtF80SigM( &sig );
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig = softfloat_shortShiftRightJam64( sig, 1 );
- exp -= 0x3C01;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return softfloat_roundPackToF64( sign, exp, sig );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_i32.c b/life/resolver/softfloat/source/extF80M_to_i32.c
deleted file mode 100644
index c0464b138c..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_i32.c
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-int_fast32_t
- extF80M_to_i32(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
-
- return extF80_to_i32( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-int_fast32_t
- extF80M_to_i32(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x4032 - exp;
- if ( shiftDist <= 0 ) {
- if ( sig>>32 ) goto invalid;
- if ( -32 < shiftDist ) {
- sig <<= -shiftDist;
- } else {
- if ( (uint32_t) sig ) goto invalid;
- }
- } else {
- sig = softfloat_shiftRightJam64( sig, shiftDist );
- }
- return softfloat_roundToI32( sign, sig, roundingMode, exact );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ? i32_fromNaN
- : sign ? i32_fromNegOverflow : i32_fromPosOverflow;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_i32_r_minMag.c b/life/resolver/softfloat/source/extF80M_to_i32_r_minMag.c
deleted file mode 100644
index 9a803cc233..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_i32_r_minMag.c
+++ /dev/null
@@ -1,120 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-int_fast32_t extF80M_to_i32_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
-
- return extF80_to_i32_r_minMag( *aPtr, exact );
-
-}
-
-#else
-
-int_fast32_t extF80M_to_i32_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- bool sign, raiseInexact;
- int32_t z;
- uint64_t shiftedSig;
- uint32_t absZ;
- union { uint32_t ui; int32_t i; } u;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! sig && (exp != 0x7FFF) ) return 0;
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- raiseInexact = exact;
- z = 0;
- } else {
- sign = signExtF80UI64( uiA64 );
- raiseInexact = false;
- if ( shiftDist < 0 ) {
- if ( sig>>32 || (shiftDist <= -31) ) goto invalid;
- shiftedSig = (uint64_t) (uint32_t) sig<<-shiftDist;
- if ( shiftedSig>>32 ) goto invalid;
- absZ = shiftedSig;
- } else {
- shiftedSig = sig;
- if ( shiftDist ) shiftedSig >>= shiftDist;
- if ( shiftedSig>>32 ) goto invalid;
- absZ = shiftedSig;
- if ( exact && shiftDist ) {
- raiseInexact = ((uint64_t) absZ<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-int_fast64_t
- extF80M_to_i64(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
-
- return extF80_to_i64( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-int_fast64_t
- extF80M_to_i64(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- uint32_t extSig[3];
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( shiftDist < 0 ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? i64_fromNaN
- : sign ? i64_fromNegOverflow : i64_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- extSig[indexWord( 3, 2 )] = sig>>32;
- extSig[indexWord( 3, 1 )] = sig;
- extSig[indexWord( 3, 0 )] = 0;
- if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundMToI64( sign, extSig, roundingMode, exact );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_i64_r_minMag.c b/life/resolver/softfloat/source/extF80M_to_i64_r_minMag.c
deleted file mode 100644
index 07282cd421..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_i64_r_minMag.c
+++ /dev/null
@@ -1,115 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-int_fast64_t extF80M_to_i64_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
-
- return extF80_to_i64_r_minMag( *aPtr, exact );
-
-}
-
-#else
-
-int_fast64_t extF80M_to_i64_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- bool sign, raiseInexact;
- int64_t z;
- uint64_t absZ;
- union { uint64_t ui; int64_t i; } u;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! sig && (exp != 0x7FFF) ) return 0;
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- raiseInexact = exact;
- z = 0;
- } else {
- sign = signExtF80UI64( uiA64 );
- raiseInexact = false;
- if ( shiftDist < 0 ) {
- if ( shiftDist <= -63 ) goto invalid;
- shiftDist = -shiftDist;
- absZ = sig<>shiftDist != sig ) goto invalid;
- } else {
- absZ = sig;
- if ( shiftDist ) absZ >>= shiftDist;
- if ( exact && shiftDist ) raiseInexact = (absZ<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-uint_fast32_t
- extF80M_to_ui32(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
-
- return extF80_to_ui32( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-uint_fast32_t
- extF80M_to_ui32(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x4032 - exp;
- if ( shiftDist <= 0 ) {
- if ( sig>>32 ) goto invalid;
- if ( -32 < shiftDist ) {
- sig <<= -shiftDist;
- } else {
- if ( (uint32_t) sig ) goto invalid;
- }
- } else {
- sig = softfloat_shiftRightJam64( sig, shiftDist );
- }
- return softfloat_roundToUI32( sign, sig, roundingMode, exact );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? ui32_fromNaN
- : sign ? ui32_fromNegOverflow : ui32_fromPosOverflow;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_ui32_r_minMag.c b/life/resolver/softfloat/source/extF80M_to_ui32_r_minMag.c
deleted file mode 100644
index c09e48341c..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_ui32_r_minMag.c
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-uint_fast32_t extF80M_to_ui32_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
-
- return extF80_to_ui32_r_minMag( *aPtr, exact );
-
-}
-
-#else
-
-uint_fast32_t extF80M_to_ui32_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- bool sign;
- uint64_t shiftedSig;
- uint32_t z;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! sig && (exp != 0x7FFF) ) return 0;
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( shiftDist < 0 ) {
- if ( sign || sig>>32 || (shiftDist <= -31) ) goto invalid;
- shiftedSig = (uint64_t) (uint32_t) sig<<-shiftDist;
- if ( shiftedSig>>32 ) goto invalid;
- z = shiftedSig;
- } else {
- shiftedSig = sig;
- if ( shiftDist ) shiftedSig >>= shiftDist;
- if ( shiftedSig>>32 ) goto invalid;
- z = shiftedSig;
- if ( sign && z ) goto invalid;
- if ( exact && shiftDist && ((uint64_t) z<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-uint_fast64_t
- extF80M_to_ui64(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
-
- return extF80_to_ui64( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-uint_fast64_t
- extF80M_to_ui64(
- const extFloat80_t *aPtr, uint_fast8_t roundingMode, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- bool sign;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- uint32_t extSig[3];
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( shiftDist < 0 ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? ui64_fromNaN
- : sign ? ui64_fromNegOverflow : ui64_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- extSig[indexWord( 3, 2 )] = sig>>32;
- extSig[indexWord( 3, 1 )] = sig;
- extSig[indexWord( 3, 0 )] = 0;
- if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundMToUI64( sign, extSig, roundingMode, exact );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/extF80M_to_ui64_r_minMag.c b/life/resolver/softfloat/source/extF80M_to_ui64_r_minMag.c
deleted file mode 100644
index bf48390320..0000000000
--- a/life/resolver/softfloat/source/extF80M_to_ui64_r_minMag.c
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-uint_fast64_t extF80M_to_ui64_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
-
- return extF80_to_ui64_r_minMag( *aPtr, exact );
-
-}
-
-#else
-
-uint_fast64_t extF80M_to_ui64_r_minMag( const extFloat80_t *aPtr, bool exact )
-{
- const struct extFloat80M *aSPtr;
- uint_fast16_t uiA64;
- int32_t exp;
- uint64_t sig;
- int32_t shiftDist;
- bool sign;
- uint64_t z;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aSPtr = (const struct extFloat80M *) aPtr;
- uiA64 = aSPtr->signExp;
- exp = expExtF80UI64( uiA64 );
- sig = aSPtr->signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! sig && (exp != 0x7FFF) ) return 0;
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( shiftDist < 0 ) {
- if ( sign || (shiftDist <= -63) ) goto invalid;
- shiftDist = -shiftDist;
- z = sig<>shiftDist != sig ) goto invalid;
- } else {
- z = sig;
- if ( shiftDist ) z >>= shiftDist;
- if ( sign && z ) goto invalid;
- if ( exact && shiftDist && (z<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_add( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
-#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
- extFloat80_t
- (*magsFuncPtr)(
- uint_fast16_t, uint_fast64_t, uint_fast16_t, uint_fast64_t, bool );
-#endif
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- signB = signExtF80UI64( uiB64 );
-#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
- if ( signA == signB ) {
- return softfloat_addMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- return softfloat_subMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_addMagsExtF80 : softfloat_subMagsExtF80;
- return (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_div.c b/life/resolver/softfloat/source/extF80_div.c
deleted file mode 100644
index 7d649c5496..0000000000
--- a/life/resolver/softfloat/source/extF80_div.c
+++ /dev/null
@@ -1,203 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_div( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- int_fast32_t expA;
- uint_fast64_t sigA;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
- int_fast32_t expB;
- uint_fast64_t sigB;
- bool signZ;
- struct exp32_sig64 normExpSig;
- int_fast32_t expZ;
- struct uint128 rem;
- uint_fast32_t recip32;
- uint_fast64_t sigZ;
- int ix;
- uint_fast64_t q64;
- uint_fast32_t q;
- struct uint128 term;
- uint_fast64_t sigZExtra;
- struct uint128 uiZ;
- uint_fast16_t uiZ64;
- uint_fast64_t uiZ0;
- union { struct extFloat80M s; extFloat80_t f; } uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- expA = expExtF80UI64( uiA64 );
- sigA = uiA0;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- signB = signExtF80UI64( uiB64 );
- expB = expExtF80UI64( uiB64 );
- sigB = uiB0;
- signZ = signA ^ signB;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA == 0x7FFF ) {
- if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
- if ( expB == 0x7FFF ) {
- if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
- goto invalid;
- }
- goto infinity;
- }
- if ( expB == 0x7FFF ) {
- if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
- goto zero;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expB ) expB = 1;
- if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigB ) {
- if ( ! sigA ) goto invalid;
- softfloat_raiseFlags( softfloat_flag_infinite );
- goto infinity;
- }
- normExpSig = softfloat_normSubnormalExtF80Sig( sigB );
- expB += normExpSig.exp;
- sigB = normExpSig.sig;
- }
- if ( ! expA ) expA = 1;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) goto zero;
- normExpSig = softfloat_normSubnormalExtF80Sig( sigA );
- expA += normExpSig.exp;
- sigA = normExpSig.sig;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA - expB + 0x3FFF;
- if ( sigA < sigB ) {
- --expZ;
- rem = softfloat_shortShiftLeft128( 0, sigA, 32 );
- } else {
- rem = softfloat_shortShiftLeft128( 0, sigA, 31 );
- }
- recip32 = softfloat_approxRecip32_1( sigB>>32 );
- sigZ = 0;
- ix = 2;
- for (;;) {
- q64 = (uint_fast64_t) (uint32_t) (rem.v64>>2) * recip32;
- q = (q64 + 0x80000000)>>32;
- --ix;
- if ( ix < 0 ) break;
- rem = softfloat_shortShiftLeft128( rem.v64, rem.v0, 29 );
- term = softfloat_mul64ByShifted32To128( sigB, q );
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- --q;
- rem = softfloat_add128( rem.v64, rem.v0, sigB>>32, sigB<<32 );
- }
- sigZ = (sigZ<<29) + q;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ((q + 1) & 0x3FFFFF) < 2 ) {
- rem = softfloat_shortShiftLeft128( rem.v64, rem.v0, 29 );
- term = softfloat_mul64ByShifted32To128( sigB, q );
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- term = softfloat_shortShiftLeft128( 0, sigB, 32 );
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- --q;
- rem = softfloat_add128( rem.v64, rem.v0, term.v64, term.v0 );
- } else if ( softfloat_le128( term.v64, term.v0, rem.v64, rem.v0 ) ) {
- ++q;
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- }
- if ( rem.v64 | rem.v0 ) q |= 1;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sigZ = (sigZ<<6) + (q>>23);
- sigZExtra = (uint64_t) ((uint_fast64_t) q<<41);
- return
- softfloat_roundPackToExtF80(
- signZ, expZ, sigZ, sigZExtra, extF80_roundingPrecision );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- propagateNaN:
- uiZ = softfloat_propagateNaNExtF80UI( uiA64, uiA0, uiB64, uiB0 );
- uiZ64 = uiZ.v64;
- uiZ0 = uiZ.v0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_raiseFlags( softfloat_flag_invalid );
- uiZ64 = defaultNaNExtF80UI64;
- uiZ0 = defaultNaNExtF80UI0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- infinity:
- uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
- uiZ0 = UINT64_C( 0x8000000000000000 );
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ64 = packToExtF80UI64( signZ, 0 );
- uiZ0 = 0;
- uiZ:
- uZ.s.signExp = uiZ64;
- uZ.s.signif = uiZ0;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_eq.c b/life/resolver/softfloat/source/extF80_eq.c
deleted file mode 100644
index 60f29dafa9..0000000000
--- a/life/resolver/softfloat/source/extF80_eq.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_eq( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- return
- (uiA0 == uiB0)
- && ((uiA64 == uiB64) || (! uiA0 && ! ((uiA64 | uiB64) & 0x7FFF)));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_eq_signaling.c b/life/resolver/softfloat/source/extF80_eq_signaling.c
deleted file mode 100644
index 5a0dfe4aab..0000000000
--- a/life/resolver/softfloat/source/extF80_eq_signaling.c
+++ /dev/null
@@ -1,67 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-bool extF80_eq_signaling( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- return
- (uiA0 == uiB0)
- && ((uiA64 == uiB64) || (! uiA0 && ! ((uiA64 | uiB64) & 0x7FFF)));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_isSignalingNaN.c b/life/resolver/softfloat/source/extF80_isSignalingNaN.c
deleted file mode 100644
index 6086f4b70f..0000000000
--- a/life/resolver/softfloat/source/extF80_isSignalingNaN.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_isSignalingNaN( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
-
- uA.f = a;
- return softfloat_isSigNaNExtF80UI( uA.s.signExp, uA.s.signif );
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_le.c b/life/resolver/softfloat/source/extF80_le.c
deleted file mode 100644
index 2a1ee60f67..0000000000
--- a/life/resolver/softfloat/source/extF80_le.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_le( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signA, signB;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- signA = signExtF80UI64( uiA64 );
- signB = signExtF80UI64( uiB64 );
- return
- (signA != signB)
- ? signA || ! (((uiA64 | uiB64) & 0x7FFF) | uiA0 | uiB0)
- : ((uiA64 == uiB64) && (uiA0 == uiB0))
- || (signA ^ softfloat_lt128( uiA64, uiA0, uiB64, uiB0 ));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_le_quiet.c b/life/resolver/softfloat/source/extF80_le_quiet.c
deleted file mode 100644
index 5d0c3ae739..0000000000
--- a/life/resolver/softfloat/source/extF80_le_quiet.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_le_quiet( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signA, signB;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- signA = signExtF80UI64( uiA64 );
- signB = signExtF80UI64( uiB64 );
- return
- (signA != signB)
- ? signA || ! (((uiA64 | uiB64) & 0x7FFF) | uiA0 | uiB0)
- : ((uiA64 == uiB64) && (uiA0 == uiB0))
- || (signA ^ softfloat_lt128( uiA64, uiA0, uiB64, uiB0 ));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_lt.c b/life/resolver/softfloat/source/extF80_lt.c
deleted file mode 100644
index 9560d8ecc8..0000000000
--- a/life/resolver/softfloat/source/extF80_lt.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_lt( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signA, signB;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- signA = signExtF80UI64( uiA64 );
- signB = signExtF80UI64( uiB64 );
- return
- (signA != signB)
- ? signA && (((uiA64 | uiB64) & 0x7FFF) | uiA0 | uiB0)
- : ((uiA64 != uiB64) || (uiA0 != uiB0))
- && (signA ^ softfloat_lt128( uiA64, uiA0, uiB64, uiB0 ));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_lt_quiet.c b/life/resolver/softfloat/source/extF80_lt_quiet.c
deleted file mode 100644
index 711652c7db..0000000000
--- a/life/resolver/softfloat/source/extF80_lt_quiet.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-bool extF80_lt_quiet( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signA, signB;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
- if (
- softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
- || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- signA = signExtF80UI64( uiA64 );
- signB = signExtF80UI64( uiB64 );
- return
- (signA != signB)
- ? signA && (((uiA64 | uiB64) & 0x7FFF) | uiA0 | uiB0)
- : ((uiA64 != uiB64) || (uiA0 != uiB0))
- && (signA ^ softfloat_lt128( uiA64, uiA0, uiB64, uiB0 ));
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_mul.c b/life/resolver/softfloat/source/extF80_mul.c
deleted file mode 100644
index c0c50a6ca8..0000000000
--- a/life/resolver/softfloat/source/extF80_mul.c
+++ /dev/null
@@ -1,158 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_mul( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- int_fast32_t expA;
- uint_fast64_t sigA;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
- int_fast32_t expB;
- uint_fast64_t sigB;
- bool signZ;
- uint_fast64_t magBits;
- struct exp32_sig64 normExpSig;
- int_fast32_t expZ;
- struct uint128 sig128Z, uiZ;
- uint_fast16_t uiZ64;
- uint_fast64_t uiZ0;
- union { struct extFloat80M s; extFloat80_t f; } uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- expA = expExtF80UI64( uiA64 );
- sigA = uiA0;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- signB = signExtF80UI64( uiB64 );
- expB = expExtF80UI64( uiB64 );
- sigB = uiB0;
- signZ = signA ^ signB;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA == 0x7FFF ) {
- if (
- (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- || ((expB == 0x7FFF) && (sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF )))
- ) {
- goto propagateNaN;
- }
- magBits = expB | sigB;
- goto infArg;
- }
- if ( expB == 0x7FFF ) {
- if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
- magBits = expA | sigA;
- goto infArg;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expA ) expA = 1;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) goto zero;
- normExpSig = softfloat_normSubnormalExtF80Sig( sigA );
- expA += normExpSig.exp;
- sigA = normExpSig.sig;
- }
- if ( ! expB ) expB = 1;
- if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigB ) goto zero;
- normExpSig = softfloat_normSubnormalExtF80Sig( sigB );
- expB += normExpSig.exp;
- sigB = normExpSig.sig;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA + expB - 0x3FFE;
- sig128Z = softfloat_mul64To128( sigA, sigB );
- if ( sig128Z.v64 < UINT64_C( 0x8000000000000000 ) ) {
- --expZ;
- sig128Z =
- softfloat_add128(
- sig128Z.v64, sig128Z.v0, sig128Z.v64, sig128Z.v0 );
- }
- return
- softfloat_roundPackToExtF80(
- signZ, expZ, sig128Z.v64, sig128Z.v0, extF80_roundingPrecision );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- propagateNaN:
- uiZ = softfloat_propagateNaNExtF80UI( uiA64, uiA0, uiB64, uiB0 );
- uiZ64 = uiZ.v64;
- uiZ0 = uiZ.v0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- infArg:
- if ( ! magBits ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- uiZ64 = defaultNaNExtF80UI64;
- uiZ0 = defaultNaNExtF80UI0;
- } else {
- uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
- uiZ0 = UINT64_C( 0x8000000000000000 );
- }
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ64 = packToExtF80UI64( signZ, 0 );
- uiZ0 = 0;
- uiZ:
- uZ.s.signExp = uiZ64;
- uZ.s.signif = uiZ0;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_rem.c b/life/resolver/softfloat/source/extF80_rem.c
deleted file mode 100644
index a2ebaad81c..0000000000
--- a/life/resolver/softfloat/source/extF80_rem.c
+++ /dev/null
@@ -1,225 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_rem( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- int_fast32_t expA;
- uint_fast64_t sigA;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- int_fast32_t expB;
- uint_fast64_t sigB;
- struct exp32_sig64 normExpSig;
- int_fast32_t expDiff;
- struct uint128 rem, shiftedSigB;
- uint_fast32_t q, recip32;
- uint_fast64_t q64;
- struct uint128 term, altRem, meanRem;
- bool signRem;
- struct uint128 uiZ;
- uint_fast16_t uiZ64;
- uint_fast64_t uiZ0;
- union { struct extFloat80M s; extFloat80_t f; } uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- expA = expExtF80UI64( uiA64 );
- sigA = uiA0;
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- expB = expExtF80UI64( uiB64 );
- sigB = uiB0;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA == 0x7FFF ) {
- if (
- (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- || ((expB == 0x7FFF) && (sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF )))
- ) {
- goto propagateNaN;
- }
- goto invalid;
- }
- if ( expB == 0x7FFF ) {
- if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
- /*--------------------------------------------------------------------
- | Argument b is an infinity. Doubling `expB' is an easy way to ensure
- | that `expDiff' later is less than -1, which will result in returning
- | a canonicalized version of argument a.
- *--------------------------------------------------------------------*/
- expB += expB;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expB ) expB = 1;
- if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigB ) goto invalid;
- normExpSig = softfloat_normSubnormalExtF80Sig( sigB );
- expB += normExpSig.exp;
- sigB = normExpSig.sig;
- }
- if ( ! expA ) expA = 1;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) {
- expA = 0;
- goto copyA;
- }
- normExpSig = softfloat_normSubnormalExtF80Sig( sigA );
- expA += normExpSig.exp;
- sigA = normExpSig.sig;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expDiff = expA - expB;
- if ( expDiff < -1 ) goto copyA;
- rem = softfloat_shortShiftLeft128( 0, sigA, 32 );
- shiftedSigB = softfloat_shortShiftLeft128( 0, sigB, 32 );
- if ( expDiff < 1 ) {
- if ( expDiff ) {
- --expB;
- shiftedSigB = softfloat_shortShiftLeft128( 0, sigB, 33 );
- q = 0;
- } else {
- q = (sigB <= sigA);
- if ( q ) {
- rem =
- softfloat_sub128(
- rem.v64, rem.v0, shiftedSigB.v64, shiftedSigB.v0 );
- }
- }
- } else {
- recip32 = softfloat_approxRecip32_1( sigB>>32 );
- expDiff -= 30;
- for (;;) {
- q64 = (uint_fast64_t) (uint32_t) (rem.v64>>2) * recip32;
- if ( expDiff < 0 ) break;
- q = (q64 + 0x80000000)>>32;
- rem = softfloat_shortShiftLeft128( rem.v64, rem.v0, 29 );
- term = softfloat_mul64ByShifted32To128( sigB, q );
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- rem =
- softfloat_add128(
- rem.v64, rem.v0, shiftedSigB.v64, shiftedSigB.v0 );
- }
- expDiff -= 29;
- }
- /*--------------------------------------------------------------------
- | (`expDiff' cannot be less than -29 here.)
- *--------------------------------------------------------------------*/
- q = (uint32_t) (q64>>32)>>(~expDiff & 31);
- rem = softfloat_shortShiftLeft128( rem.v64, rem.v0, expDiff + 30 );
- term = softfloat_mul64ByShifted32To128( sigB, q );
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- altRem =
- softfloat_add128(
- rem.v64, rem.v0, shiftedSigB.v64, shiftedSigB.v0 );
- goto selectRem;
- }
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- do {
- altRem = rem;
- ++q;
- rem =
- softfloat_sub128(
- rem.v64, rem.v0, shiftedSigB.v64, shiftedSigB.v0 );
- } while ( ! (rem.v64 & UINT64_C( 0x8000000000000000 )) );
- selectRem:
- meanRem = softfloat_add128( rem.v64, rem.v0, altRem.v64, altRem.v0 );
- if (
- (meanRem.v64 & UINT64_C( 0x8000000000000000 ))
- || (! (meanRem.v64 | meanRem.v0) && (q & 1))
- ) {
- rem = altRem;
- }
- signRem = signA;
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- signRem = ! signRem;
- rem = softfloat_sub128( 0, 0, rem.v64, rem.v0 );
- }
- return
- softfloat_normRoundPackToExtF80(
- signRem, rem.v64 | rem.v0 ? expB + 32 : 0, rem.v64, rem.v0, 80 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- propagateNaN:
- uiZ = softfloat_propagateNaNExtF80UI( uiA64, uiA0, uiB64, uiB0 );
- uiZ64 = uiZ.v64;
- uiZ0 = uiZ.v0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_raiseFlags( softfloat_flag_invalid );
- uiZ64 = defaultNaNExtF80UI64;
- uiZ0 = defaultNaNExtF80UI0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- copyA:
- if ( expA < 1 ) {
- sigA >>= 1 - expA;
- expA = 0;
- }
- uiZ64 = packToExtF80UI64( signA, expA );
- uiZ0 = sigA;
- uiZ:
- uZ.s.signExp = uiZ64;
- uZ.s.signif = uiZ0;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_roundToInt.c b/life/resolver/softfloat/source/extF80_roundToInt.c
deleted file mode 100644
index 8103dae8f4..0000000000
--- a/life/resolver/softfloat/source/extF80_roundToInt.c
+++ /dev/null
@@ -1,154 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-extFloat80_t
- extF80_roundToInt( extFloat80_t a, uint_fast8_t roundingMode, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64, signUI64;
- int_fast32_t exp;
- uint_fast64_t sigA;
- uint_fast16_t uiZ64;
- uint_fast64_t sigZ;
- struct exp32_sig64 normExpSig;
- struct uint128 uiZ;
- uint_fast64_t lastBitMask, roundBitsMask;
- union { struct extFloat80M s; extFloat80_t f; } uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- signUI64 = uiA64 & packToExtF80UI64( 1, 0 );
- exp = expExtF80UI64( uiA64 );
- sigA = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( !(sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
- if ( !sigA ) {
- uiZ64 = signUI64;
- sigZ = 0;
- goto uiZ;
- }
- normExpSig = softfloat_normSubnormalExtF80Sig( sigA );
- exp += normExpSig.exp;
- sigA = normExpSig.sig;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( 0x403E <= exp ) {
- if ( exp == 0x7FFF ) {
- if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- uiZ = softfloat_propagateNaNExtF80UI( uiA64, sigA, 0, 0 );
- uiZ64 = uiZ.v64;
- sigZ = uiZ.v0;
- goto uiZ;
- }
- sigZ = UINT64_C( 0x8000000000000000 );
- } else {
- sigZ = sigA;
- }
- uiZ64 = signUI64 | exp;
- goto uiZ;
- }
- if ( exp <= 0x3FFE ) {
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- switch ( roundingMode ) {
- case softfloat_round_near_even:
- if ( !(sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
- case softfloat_round_near_maxMag:
- if ( exp == 0x3FFE ) goto mag1;
- break;
- case softfloat_round_min:
- if ( signUI64 ) goto mag1;
- break;
- case softfloat_round_max:
- if ( !signUI64 ) goto mag1;
- break;
-#ifdef SOFTFLOAT_ROUND_ODD
- case softfloat_round_odd:
- goto mag1;
-#endif
- }
- uiZ64 = signUI64;
- sigZ = 0;
- goto uiZ;
- mag1:
- uiZ64 = signUI64 | 0x3FFF;
- sigZ = UINT64_C( 0x8000000000000000 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ64 = signUI64 | exp;
- lastBitMask = (uint_fast64_t) 1<<(0x403E - exp);
- roundBitsMask = lastBitMask - 1;
- sigZ = sigA;
- if ( roundingMode == softfloat_round_near_maxMag ) {
- sigZ += lastBitMask>>1;
- } else if ( roundingMode == softfloat_round_near_even ) {
- sigZ += lastBitMask>>1;
- if ( !(sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
- } else if (
- roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
- ) {
- sigZ += roundBitsMask;
- }
- sigZ &= ~roundBitsMask;
- if ( !sigZ ) {
- ++uiZ64;
- sigZ = UINT64_C( 0x8000000000000000 );
- }
- if ( sigZ != sigA ) {
-#ifdef SOFTFLOAT_ROUND_ODD
- if ( roundingMode == softfloat_round_odd ) sigZ |= lastBitMask;
-#endif
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- uiZ:
- uZ.s.signExp = uiZ64;
- uZ.s.signif = sigZ;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_sqrt.c b/life/resolver/softfloat/source/extF80_sqrt.c
deleted file mode 100644
index 5d328a0e4a..0000000000
--- a/life/resolver/softfloat/source/extF80_sqrt.c
+++ /dev/null
@@ -1,176 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_sqrt( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- int_fast32_t expA;
- uint_fast64_t sigA;
- struct uint128 uiZ;
- uint_fast16_t uiZ64;
- uint_fast64_t uiZ0;
- struct exp32_sig64 normExpSig;
- int_fast32_t expZ;
- uint_fast32_t sig32A, recipSqrt32, sig32Z;
- struct uint128 rem;
- uint_fast64_t q, x64, sigZ;
- struct uint128 y, term;
- uint_fast64_t sigZExtra;
- union { struct extFloat80M s; extFloat80_t f; } uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- expA = expExtF80UI64( uiA64 );
- sigA = uiA0;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA == 0x7FFF ) {
- if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- uiZ = softfloat_propagateNaNExtF80UI( uiA64, uiA0, 0, 0 );
- uiZ64 = uiZ.v64;
- uiZ0 = uiZ.v0;
- goto uiZ;
- }
- if ( ! signA ) return a;
- goto invalid;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( signA ) {
- if ( ! sigA ) goto zero;
- goto invalid;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! expA ) expA = 1;
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
- if ( ! sigA ) goto zero;
- normExpSig = softfloat_normSubnormalExtF80Sig( sigA );
- expA += normExpSig.exp;
- sigA = normExpSig.sig;
- }
- /*------------------------------------------------------------------------
- | (`sig32Z' is guaranteed to be a lower bound on the square root of
- | `sig32A', which makes `sig32Z' also a lower bound on the square root of
- | `sigA'.)
- *------------------------------------------------------------------------*/
- expZ = ((expA - 0x3FFF)>>1) + 0x3FFF;
- expA &= 1;
- sig32A = sigA>>32;
- recipSqrt32 = softfloat_approxRecipSqrt32_1( expA, sig32A );
- sig32Z = ((uint_fast64_t) sig32A * recipSqrt32)>>32;
- if ( expA ) {
- sig32Z >>= 1;
- rem = softfloat_shortShiftLeft128( 0, sigA, 61 );
- } else {
- rem = softfloat_shortShiftLeft128( 0, sigA, 62 );
- }
- rem.v64 -= (uint_fast64_t) sig32Z * sig32Z;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = ((uint32_t) (rem.v64>>2) * (uint_fast64_t) recipSqrt32)>>32;
- x64 = (uint_fast64_t) sig32Z<<32;
- sigZ = x64 + (q<<3);
- y = softfloat_shortShiftLeft128( rem.v64, rem.v0, 29 );
- /*------------------------------------------------------------------------
- | (Repeating this loop is a rare occurrence.)
- *------------------------------------------------------------------------*/
- for (;;) {
- term = softfloat_mul64ByShifted32To128( x64 + sigZ, q );
- rem = softfloat_sub128( y.v64, y.v0, term.v64, term.v0 );
- if ( ! (rem.v64 & UINT64_C( 0x8000000000000000 )) ) break;
- --q;
- sigZ -= 1<<3;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = (((rem.v64>>2) * recipSqrt32)>>32) + 2;
- x64 = sigZ;
- sigZ = (sigZ<<1) + (q>>25);
- sigZExtra = (uint64_t) (q<<39);
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (q & 0xFFFFFF) <= 2 ) {
- q &= ~(uint_fast64_t) 0xFFFF;
- sigZExtra = (uint64_t) (q<<39);
- term = softfloat_mul64ByShifted32To128( x64 + (q>>27), q );
- x64 = (uint32_t) (q<<5) * (uint_fast64_t) (uint32_t) q;
- term = softfloat_add128( term.v64, term.v0, 0, x64 );
- rem = softfloat_shortShiftLeft128( rem.v64, rem.v0, 28 );
- rem = softfloat_sub128( rem.v64, rem.v0, term.v64, term.v0 );
- if ( rem.v64 & UINT64_C( 0x8000000000000000 ) ) {
- if ( ! sigZExtra ) --sigZ;
- --sigZExtra;
- } else {
- if ( rem.v64 | rem.v0 ) sigZExtra |= 1;
- }
- }
- return
- softfloat_roundPackToExtF80(
- 0, expZ, sigZ, sigZExtra, extF80_roundingPrecision );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_raiseFlags( softfloat_flag_invalid );
- uiZ64 = defaultNaNExtF80UI64;
- uiZ0 = defaultNaNExtF80UI0;
- goto uiZ;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ64 = packToExtF80UI64( signA, 0 );
- uiZ0 = 0;
- uiZ:
- uZ.s.signExp = uiZ64;
- uZ.s.signif = uiZ0;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_sub.c b/life/resolver/softfloat/source/extF80_sub.c
deleted file mode 100644
index 494d3162c8..0000000000
--- a/life/resolver/softfloat/source/extF80_sub.c
+++ /dev/null
@@ -1,80 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-extFloat80_t extF80_sub( extFloat80_t a, extFloat80_t b )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool signA;
- union { struct extFloat80M s; extFloat80_t f; } uB;
- uint_fast16_t uiB64;
- uint_fast64_t uiB0;
- bool signB;
-#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
- extFloat80_t
- (*magsFuncPtr)(
- uint_fast16_t, uint_fast64_t, uint_fast16_t, uint_fast64_t, bool );
-#endif
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- signA = signExtF80UI64( uiA64 );
- uB.f = b;
- uiB64 = uB.s.signExp;
- uiB0 = uB.s.signif;
- signB = signExtF80UI64( uiB64 );
-#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
- if ( signA == signB ) {
- return softfloat_subMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- return softfloat_addMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_subMagsExtF80 : softfloat_addMagsExtF80;
- return (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_f128.c b/life/resolver/softfloat/source/extF80_to_f128.c
deleted file mode 100644
index 7fbc9cb695..0000000000
--- a/life/resolver/softfloat/source/extF80_to_f128.c
+++ /dev/null
@@ -1,75 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-float128_t extF80_to_f128( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- uint_fast16_t exp;
- uint_fast64_t frac;
- struct commonNaN commonNaN;
- struct uint128 uiZ;
- bool sign;
- struct uint128 frac128;
- union ui128_f128 uZ;
-
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- exp = expExtF80UI64( uiA64 );
- frac = uiA0 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- if ( (exp == 0x7FFF) && frac ) {
- softfloat_extF80UIToCommonNaN( uiA64, uiA0, &commonNaN );
- uiZ = softfloat_commonNaNToF128UI( &commonNaN );
- } else {
- sign = signExtF80UI64( uiA64 );
- frac128 = softfloat_shortShiftLeft128( 0, frac, 49 );
- uiZ.v64 = packToF128UI64( sign, exp, frac128.v64 );
- uiZ.v0 = frac128.v0;
- }
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_f16.c b/life/resolver/softfloat/source/extF80_to_f16.c
deleted file mode 100644
index ca5050f4cc..0000000000
--- a/life/resolver/softfloat/source/extF80_to_f16.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-float16_t extF80_to_f16( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- struct commonNaN commonNaN;
- uint_fast16_t uiZ, sig16;
- union ui16_f16 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uiA0;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80UIToCommonNaN( uiA64, uiA0, &commonNaN );
- uiZ = softfloat_commonNaNToF16UI( &commonNaN );
- } else {
- uiZ = packToF16UI( sign, 0x1F, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig16 = softfloat_shortShiftRightJam64( sig, 49 );
- if ( ! (exp | sig16) ) {
- uiZ = packToF16UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp -= 0x3FF1;
- if ( sizeof (int_fast16_t) < sizeof (int_fast32_t) ) {
- if ( exp < -0x40 ) exp = -0x40;
- }
- return softfloat_roundPackToF16( sign, exp, sig16 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_f32.c b/life/resolver/softfloat/source/extF80_to_f32.c
deleted file mode 100644
index 357f56e9db..0000000000
--- a/life/resolver/softfloat/source/extF80_to_f32.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-float32_t extF80_to_f32( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- struct commonNaN commonNaN;
- uint_fast32_t uiZ, sig32;
- union ui32_f32 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uiA0;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80UIToCommonNaN( uiA64, uiA0, &commonNaN );
- uiZ = softfloat_commonNaNToF32UI( &commonNaN );
- } else {
- uiZ = packToF32UI( sign, 0xFF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig32 = softfloat_shortShiftRightJam64( sig, 33 );
- if ( ! (exp | sig32) ) {
- uiZ = packToF32UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp -= 0x3F81;
- if ( sizeof (int_fast16_t) < sizeof (int_fast32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return softfloat_roundPackToF32( sign, exp, sig32 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_f64.c b/life/resolver/softfloat/source/extF80_to_f64.c
deleted file mode 100644
index c38739925b..0000000000
--- a/life/resolver/softfloat/source/extF80_to_f64.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-float64_t extF80_to_f64( extFloat80_t a )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- uint_fast64_t uiA0;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- struct commonNaN commonNaN;
- uint_fast64_t uiZ;
- union ui64_f64 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- uiA0 = uA.s.signif;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uiA0;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ! (exp | sig) ) {
- uiZ = packToF64UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
- softfloat_extF80UIToCommonNaN( uiA64, uiA0, &commonNaN );
- uiZ = softfloat_commonNaNToF64UI( &commonNaN );
- } else {
- uiZ = packToF64UI( sign, 0x7FF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sig = softfloat_shortShiftRightJam64( sig, 1 );
- exp -= 0x3C01;
- if ( sizeof (int_fast16_t) < sizeof (int_fast32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return softfloat_roundPackToF64( sign, exp, sig );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_i32.c b/life/resolver/softfloat/source/extF80_to_i32.c
deleted file mode 100644
index 549ca76591..0000000000
--- a/life/resolver/softfloat/source/extF80_to_i32.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-int_fast32_t
- extF80_to_i32( extFloat80_t a, uint_fast8_t roundingMode, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
-#if (i32_fromNaN != i32_fromPosOverflow) || (i32_fromNaN != i32_fromNegOverflow)
- if ( (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) {
-#if (i32_fromNaN == i32_fromPosOverflow)
- sign = 0;
-#elif (i32_fromNaN == i32_fromNegOverflow)
- sign = 1;
-#else
- softfloat_raiseFlags( softfloat_flag_invalid );
- return i32_fromNaN;
-#endif
- }
-#endif
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x4032 - exp;
- if ( shiftDist <= 0 ) shiftDist = 1;
- sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundToI32( sign, sig, roundingMode, exact );
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_i32_r_minMag.c b/life/resolver/softfloat/source/extF80_to_i32_r_minMag.c
deleted file mode 100644
index 2b7b9e2b2e..0000000000
--- a/life/resolver/softfloat/source/extF80_to_i32_r_minMag.c
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-int_fast32_t extF80_to_i32_r_minMag( extFloat80_t a, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- bool sign;
- int_fast32_t absZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact && (exp | sig) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( shiftDist < 33 ) {
- if (
- (uiA64 == packToExtF80UI64( 1, 0x401E ))
- && (sig < UINT64_C( 0x8000000100000000 ))
- ) {
- if ( exact && (sig & UINT64_C( 0x00000000FFFFFFFF )) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return -0x7FFFFFFF - 1;
- }
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? i32_fromNaN
- : sign ? i32_fromNegOverflow : i32_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- absZ = sig>>shiftDist;
- if ( exact && ((uint_fast64_t) (uint_fast32_t) absZ<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-int_fast64_t
- extF80_to_i64( extFloat80_t a, uint_fast8_t roundingMode, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- uint_fast64_t sigExtra;
- struct uint64_extra sig64Extra;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( shiftDist <= 0 ) {
- /*--------------------------------------------------------------------
- *--------------------------------------------------------------------*/
- if ( shiftDist ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? i64_fromNaN
- : sign ? i64_fromNegOverflow : i64_fromPosOverflow;
- }
- /*--------------------------------------------------------------------
- *--------------------------------------------------------------------*/
- sigExtra = 0;
- } else {
- /*--------------------------------------------------------------------
- *--------------------------------------------------------------------*/
- sig64Extra = softfloat_shiftRightJam64Extra( sig, 0, shiftDist );
- sig = sig64Extra.v;
- sigExtra = sig64Extra.extra;
- }
- return softfloat_roundToI64( sign, sig, sigExtra, roundingMode, exact );
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_i64_r_minMag.c b/life/resolver/softfloat/source/extF80_to_i64_r_minMag.c
deleted file mode 100644
index 215876da7b..0000000000
--- a/life/resolver/softfloat/source/extF80_to_i64_r_minMag.c
+++ /dev/null
@@ -1,94 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-int_fast64_t extF80_to_i64_r_minMag( extFloat80_t a, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- bool sign;
- int_fast64_t absZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact && (exp | sig) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( shiftDist <= 0 ) {
- if (
- (uiA64 == packToExtF80UI64( 1, 0x403E ))
- && (sig == UINT64_C( 0x8000000000000000 ))
- ) {
- return -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1;
- }
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? i64_fromNaN
- : sign ? i64_fromNegOverflow : i64_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- absZ = sig>>shiftDist;
- if ( exact && (uint64_t) (sig<<(-shiftDist & 63)) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return sign ? -absZ : absZ;
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_ui32.c b/life/resolver/softfloat/source/extF80_to_ui32.c
deleted file mode 100644
index d121c4801c..0000000000
--- a/life/resolver/softfloat/source/extF80_to_ui32.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
-University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-uint_fast32_t
- extF80_to_ui32( extFloat80_t a, uint_fast8_t roundingMode, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
-#if (ui32_fromNaN != ui32_fromPosOverflow) || (ui32_fromNaN != ui32_fromNegOverflow)
- if ( (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) {
-#if (ui32_fromNaN == ui32_fromPosOverflow)
- sign = 0;
-#elif (ui32_fromNaN == ui32_fromNegOverflow)
- sign = 1;
-#else
- softfloat_raiseFlags( softfloat_flag_invalid );
- return ui32_fromNaN;
-#endif
- }
-#endif
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x4032 - exp;
- if ( shiftDist <= 0 ) shiftDist = 1;
- sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundToUI32( sign, sig, roundingMode, exact );
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_ui32_r_minMag.c b/life/resolver/softfloat/source/extF80_to_ui32_r_minMag.c
deleted file mode 100644
index ad30483403..0000000000
--- a/life/resolver/softfloat/source/extF80_to_ui32_r_minMag.c
+++ /dev/null
@@ -1,88 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-uint_fast32_t extF80_to_ui32_r_minMag( extFloat80_t a, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- bool sign;
- uint_fast32_t z;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact && (exp | sig) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( sign || (shiftDist < 32) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? ui32_fromNaN
- : sign ? ui32_fromNegOverflow : ui32_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- z = sig>>shiftDist;
- if ( exact && ((uint_fast64_t) z<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-uint_fast64_t
- extF80_to_ui64( extFloat80_t a, uint_fast8_t roundingMode, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- bool sign;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- uint_fast64_t sigExtra;
- struct uint64_extra sig64Extra;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- sign = signExtF80UI64( uiA64 );
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( shiftDist < 0 ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? ui64_fromNaN
- : sign ? ui64_fromNegOverflow : ui64_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sigExtra = 0;
- if ( shiftDist ) {
- sig64Extra = softfloat_shiftRightJam64Extra( sig, 0, shiftDist );
- sig = sig64Extra.v;
- sigExtra = sig64Extra.extra;
- }
- return softfloat_roundToUI64( sign, sig, sigExtra, roundingMode, exact );
-
-}
-
diff --git a/life/resolver/softfloat/source/extF80_to_ui64_r_minMag.c b/life/resolver/softfloat/source/extF80_to_ui64_r_minMag.c
deleted file mode 100644
index 65adfe7e8a..0000000000
--- a/life/resolver/softfloat/source/extF80_to_ui64_r_minMag.c
+++ /dev/null
@@ -1,88 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-uint_fast64_t extF80_to_ui64_r_minMag( extFloat80_t a, bool exact )
-{
- union { struct extFloat80M s; extFloat80_t f; } uA;
- uint_fast16_t uiA64;
- int_fast32_t exp;
- uint_fast64_t sig;
- int_fast32_t shiftDist;
- bool sign;
- uint_fast64_t z;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uA.f = a;
- uiA64 = uA.s.signExp;
- exp = expExtF80UI64( uiA64 );
- sig = uA.s.signif;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- shiftDist = 0x403E - exp;
- if ( 64 <= shiftDist ) {
- if ( exact && (exp | sig) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
- }
- return 0;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- sign = signExtF80UI64( uiA64 );
- if ( sign || (shiftDist < 0) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return
- (exp == 0x7FFF) && (sig & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- ? ui64_fromNaN
- : sign ? ui64_fromNegOverflow : ui64_fromPosOverflow;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- z = sig>>shiftDist;
- if ( exact && (z<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_add( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
- const uint64_t *aWPtr, *bWPtr;
- uint_fast64_t uiA64, uiA0;
- bool signA;
- uint_fast64_t uiB64, uiB0;
- bool signB;
-#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
- float128_t
- (*magsFuncPtr)(
- uint_fast64_t, uint_fast64_t, uint_fast64_t, uint_fast64_t, bool );
-#endif
-
- aWPtr = (const uint64_t *) aPtr;
- bWPtr = (const uint64_t *) bPtr;
- uiA64 = aWPtr[indexWord( 2, 1 )];
- uiA0 = aWPtr[indexWord( 2, 0 )];
- signA = signF128UI64( uiA64 );
- uiB64 = bWPtr[indexWord( 2, 1 )];
- uiB0 = bWPtr[indexWord( 2, 0 )];
- signB = signF128UI64( uiB64 );
-#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
- if ( signA == signB ) {
- *zPtr = softfloat_addMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- *zPtr = softfloat_subMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_addMagsF128 : softfloat_subMagsF128;
- *zPtr = (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
-#else
-
-void
- f128M_add( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
-
- softfloat_addF128M(
- (const uint32_t *) aPtr,
- (const uint32_t *) bPtr,
- (uint32_t *) zPtr,
- false
- );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_div.c b/life/resolver/softfloat/source/f128M_div.c
deleted file mode 100644
index 8355dc20a3..0000000000
--- a/life/resolver/softfloat/source/f128M_div.c
+++ /dev/null
@@ -1,187 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_div( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
-
- *zPtr = f128_div( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- f128M_div( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t *zWPtr, uiA96;
- bool signA;
- int32_t expA;
- uint32_t uiB96;
- bool signB;
- int32_t expB;
- bool signZ;
- uint32_t y[5], sigB[4];
- int32_t expZ;
- uint32_t recip32;
- int ix;
- uint64_t q64;
- uint32_t q, qs[3], uiZ96;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- expA = expF128UI96( uiA96 );
- uiB96 = bWPtr[indexWordHi( 4 )];
- signB = signF128UI96( uiB96 );
- expB = expF128UI96( uiB96 );
- signZ = signA ^ signB;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNF128M( aWPtr, bWPtr, zWPtr ) ) return;
- if ( expA == 0x7FFF ) {
- if ( expB == 0x7FFF ) goto invalid;
- goto infinity;
- }
- goto zero;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expA = softfloat_shiftNormSigF128M( aWPtr, 13, y );
- expB = softfloat_shiftNormSigF128M( bWPtr, 13, sigB );
- if ( expA == -128 ) {
- if ( expB == -128 ) goto invalid;
- goto zero;
- }
- if ( expB == -128 ) {
- softfloat_raiseFlags( softfloat_flag_infinite );
- goto infinity;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA - expB + 0x3FFE;
- if ( softfloat_compare128M( y, sigB ) < 0 ) {
- --expZ;
- softfloat_add128M( y, y, y );
- }
- recip32 =
- softfloat_approxRecip32_1(
- ((uint64_t) sigB[indexWord( 4, 3 )]<<32 | sigB[indexWord( 4, 2 )])
- >>30
- );
- ix = 3;
- for (;;) {
- q64 = (uint64_t) y[indexWordHi( 4 )] * recip32;
- q = (q64 + 0x80000000)>>32;
- --ix;
- if ( ix < 0 ) break;
- softfloat_remStep128MBy32( y, 29, sigB, q, y );
- if ( y[indexWordHi( 4 )] & 0x80000000 ) {
- --q;
- softfloat_add128M( y, sigB, y );
- }
- qs[ix] = q;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( ((q + 1) & 7) < 2 ) {
- softfloat_remStep128MBy32( y, 29, sigB, q, y );
- if ( y[indexWordHi( 4 )] & 0x80000000 ) {
- --q;
- softfloat_add128M( y, sigB, y );
- } else if ( softfloat_compare128M( sigB, y ) <= 0 ) {
- ++q;
- softfloat_sub128M( y, sigB, y );
- }
- if (
- y[indexWordLo( 4 )] || y[indexWord( 4, 1 )]
- || (y[indexWord( 4, 2 )] | y[indexWord( 4, 3 )])
- ) {
- q |= 1;
- }
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q64 = (uint64_t) q<<28;
- y[indexWord( 5, 0 )] = q64;
- q64 = ((uint64_t) qs[0]<<25) + (q64>>32);
- y[indexWord( 5, 1 )] = q64;
- q64 = ((uint64_t) qs[1]<<22) + (q64>>32);
- y[indexWord( 5, 2 )] = q64;
- q64 = ((uint64_t) qs[2]<<19) + (q64>>32);
- y[indexWord( 5, 3 )] = q64;
- y[indexWord( 5, 4 )] = q64>>32;
- softfloat_roundPackMToF128M( signZ, expZ, y, zWPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_invalidF128M( zWPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- infinity:
- uiZ96 = packToF128UI96( signZ, 0x7FFF, 0 );
- goto uiZ96;
- zero:
- uiZ96 = packToF128UI96( signZ, 0, 0 );
- uiZ96:
- zWPtr[indexWordHi( 4 )] = uiZ96;
- zWPtr[indexWord( 4, 2 )] = 0;
- zWPtr[indexWord( 4, 1 )] = 0;
- zWPtr[indexWord( 4, 0 )] = 0;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_eq.c b/life/resolver/softfloat/source/f128M_eq.c
deleted file mode 100644
index 4f28f5f31f..0000000000
--- a/life/resolver/softfloat/source/f128M_eq.c
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_eq( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_eq( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_eq( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t wordA, wordB, uiA96, uiB96;
- bool possibleOppositeZeros;
- uint32_t mashWord;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA != wordB ) goto false_checkSigNaNs;
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- possibleOppositeZeros = false;
- if ( uiA96 != uiB96 ) {
- possibleOppositeZeros = (((uiA96 | uiB96) & 0x7FFFFFFF) == 0);
- if ( ! possibleOppositeZeros ) goto false_checkSigNaNs;
- }
- mashWord = wordA | wordB;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA != wordB ) goto false_checkSigNaNs;
- mashWord |= wordA | wordB;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- if ( wordA != wordB ) goto false_checkSigNaNs;
- if ( possibleOppositeZeros && ((mashWord | wordA | wordB) != 0) ) {
- goto false_checkSigNaNs;
- }
- if ( ! softfloat_isNaNF128M( aWPtr ) && ! softfloat_isNaNF128M( bWPtr ) ) {
- return true;
- }
- false_checkSigNaNs:
- if (
- f128M_isSignalingNaN( (const float128_t *) aWPtr )
- || f128M_isSignalingNaN( (const float128_t *) bWPtr )
- ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_eq_signaling.c b/life/resolver/softfloat/source/f128M_eq_signaling.c
deleted file mode 100644
index d2ea5f4347..0000000000
--- a/life/resolver/softfloat/source/f128M_eq_signaling.c
+++ /dev/null
@@ -1,92 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_eq_signaling( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_eq_signaling( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_eq_signaling( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t wordA, wordB, uiA96, uiB96;
- bool possibleOppositeZeros;
- uint32_t mashWord;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- if ( softfloat_isNaNF128M( aWPtr ) || softfloat_isNaNF128M( bWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA != wordB ) return false;
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- possibleOppositeZeros = false;
- if ( uiA96 != uiB96 ) {
- possibleOppositeZeros = (((uiA96 | uiB96) & 0x7FFFFFFF) == 0);
- if ( ! possibleOppositeZeros ) return false;
- }
- mashWord = wordA | wordB;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA != wordB ) return false;
- mashWord |= wordA | wordB;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- return
- (wordA == wordB)
- && (! possibleOppositeZeros || ((mashWord | wordA | wordB) == 0));
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_le.c b/life/resolver/softfloat/source/f128M_le.c
deleted file mode 100644
index af1dcba74c..0000000000
--- a/life/resolver/softfloat/source/f128M_le.c
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_le( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_le( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_le( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t uiA96, uiB96;
- bool signA, signB;
- uint32_t wordA, wordB;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- if ( softfloat_isNaNF128M( aWPtr ) || softfloat_isNaNF128M( bWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- signB = signF128UI96( uiB96 );
- if ( signA != signB ) {
- if ( signA ) return true;
- if ( (uiA96 | uiB96) & 0x7FFFFFFF ) return false;
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA | wordB ) return false;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA | wordB ) return false;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- return ((wordA | wordB) == 0);
- }
- if ( signA ) {
- aWPtr = (const uint32_t *) bPtr;
- bWPtr = (const uint32_t *) aPtr;
- }
- return (softfloat_compare128M( aWPtr, bWPtr ) <= 0);
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_le_quiet.c b/life/resolver/softfloat/source/f128M_le_quiet.c
deleted file mode 100644
index 0d051b6568..0000000000
--- a/life/resolver/softfloat/source/f128M_le_quiet.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_le_quiet( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_le_quiet( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_le_quiet( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t uiA96, uiB96;
- bool signA, signB;
- uint32_t wordA, wordB;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- if ( softfloat_isNaNF128M( aWPtr ) || softfloat_isNaNF128M( bWPtr ) ) {
- if ( f128M_isSignalingNaN( aPtr ) || f128M_isSignalingNaN( bPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- signB = signF128UI96( uiB96 );
- if ( signA != signB ) {
- if ( signA ) return true;
- if ( (uiA96 | uiB96) & 0x7FFFFFFF ) return false;
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA | wordB ) return false;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA | wordB ) return false;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- return ((wordA | wordB) == 0);
- }
- if ( signA ) {
- aWPtr = (const uint32_t *) bPtr;
- bWPtr = (const uint32_t *) aPtr;
- }
- return (softfloat_compare128M( aWPtr, bWPtr ) <= 0);
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_lt.c b/life/resolver/softfloat/source/f128M_lt.c
deleted file mode 100644
index 64ff9b45d1..0000000000
--- a/life/resolver/softfloat/source/f128M_lt.c
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_lt( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_lt( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_lt( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t uiA96, uiB96;
- bool signA, signB;
- uint32_t wordA, wordB;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- if ( softfloat_isNaNF128M( aWPtr ) || softfloat_isNaNF128M( bWPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- return false;
- }
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- signB = signF128UI96( uiB96 );
- if ( signA != signB ) {
- if ( signB ) return false;
- if ( (uiA96 | uiB96) & 0x7FFFFFFF ) return true;
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA | wordB ) return true;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA | wordB ) return true;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- return ((wordA | wordB) != 0);
- }
- if ( signA ) {
- aWPtr = (const uint32_t *) bPtr;
- bWPtr = (const uint32_t *) aPtr;
- }
- return (softfloat_compare128M( aWPtr, bWPtr ) < 0);
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_lt_quiet.c b/life/resolver/softfloat/source/f128M_lt_quiet.c
deleted file mode 100644
index 6ccf3c8618..0000000000
--- a/life/resolver/softfloat/source/f128M_lt_quiet.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-bool f128M_lt_quiet( const float128_t *aPtr, const float128_t *bPtr )
-{
-
- return f128_lt_quiet( *aPtr, *bPtr );
-
-}
-
-#else
-
-bool f128M_lt_quiet( const float128_t *aPtr, const float128_t *bPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t uiA96, uiB96;
- bool signA, signB;
- uint32_t wordA, wordB;
-
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- if ( softfloat_isNaNF128M( aWPtr ) || softfloat_isNaNF128M( bWPtr ) ) {
- if ( f128M_isSignalingNaN( aPtr ) || f128M_isSignalingNaN( bPtr ) ) {
- softfloat_raiseFlags( softfloat_flag_invalid );
- }
- return false;
- }
- uiA96 = aWPtr[indexWordHi( 4 )];
- uiB96 = bWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- signB = signF128UI96( uiB96 );
- if ( signA != signB ) {
- if ( signB ) return false;
- if ( (uiA96 | uiB96) & 0x7FFFFFFF ) return true;
- wordA = aWPtr[indexWord( 4, 2 )];
- wordB = bWPtr[indexWord( 4, 2 )];
- if ( wordA | wordB ) return true;
- wordA = aWPtr[indexWord( 4, 1 )];
- wordB = bWPtr[indexWord( 4, 1 )];
- if ( wordA | wordB ) return true;
- wordA = aWPtr[indexWord( 4, 0 )];
- wordB = bWPtr[indexWord( 4, 0 )];
- return ((wordA | wordB) != 0);
- }
- if ( signA ) {
- aWPtr = (const uint32_t *) bPtr;
- bWPtr = (const uint32_t *) aPtr;
- }
- return (softfloat_compare128M( aWPtr, bWPtr ) < 0);
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_mul.c b/life/resolver/softfloat/source/f128M_mul.c
deleted file mode 100644
index f2d6051e0c..0000000000
--- a/life/resolver/softfloat/source/f128M_mul.c
+++ /dev/null
@@ -1,158 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_mul( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
-
- *zPtr = f128_mul( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- f128M_mul( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t *zWPtr;
- uint32_t uiA96;
- int32_t expA;
- uint32_t uiB96;
- int32_t expB;
- bool signZ;
- const uint32_t *ptr;
- uint32_t uiZ96, sigA[4];
- uint_fast8_t shiftDist;
- uint32_t sigB[4];
- int32_t expZ;
- uint32_t sigProd[8], *extSigZPtr;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- expA = expF128UI96( uiA96 );
- uiB96 = bWPtr[indexWordHi( 4 )];
- expB = expF128UI96( uiB96 );
- signZ = signF128UI96( uiA96 ) ^ signF128UI96( uiB96 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNF128M( aWPtr, bWPtr, zWPtr ) ) return;
- ptr = aWPtr;
- if ( ! expA ) goto possiblyInvalid;
- if ( ! expB ) {
- ptr = bWPtr;
- possiblyInvalid:
- if (
- ! fracF128UI96( ptr[indexWordHi( 4 )] )
- && ! (ptr[indexWord( 4, 2 )] | ptr[indexWord( 4, 1 )]
- | ptr[indexWord( 4, 0 )])
- ) {
- softfloat_invalidF128M( zWPtr );
- return;
- }
- }
- uiZ96 = packToF128UI96( signZ, 0x7FFF, 0 );
- goto uiZ96;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA ) {
- sigA[indexWordHi( 4 )] = fracF128UI96( uiA96 ) | 0x00010000;
- sigA[indexWord( 4, 2 )] = aWPtr[indexWord( 4, 2 )];
- sigA[indexWord( 4, 1 )] = aWPtr[indexWord( 4, 1 )];
- sigA[indexWord( 4, 0 )] = aWPtr[indexWord( 4, 0 )];
- } else {
- expA = softfloat_shiftNormSigF128M( aWPtr, 0, sigA );
- if ( expA == -128 ) goto zero;
- }
- if ( expB ) {
- sigB[indexWordHi( 4 )] = fracF128UI96( uiB96 ) | 0x00010000;
- sigB[indexWord( 4, 2 )] = bWPtr[indexWord( 4, 2 )];
- sigB[indexWord( 4, 1 )] = bWPtr[indexWord( 4, 1 )];
- sigB[indexWord( 4, 0 )] = bWPtr[indexWord( 4, 0 )];
- } else {
- expB = softfloat_shiftNormSigF128M( bWPtr, 0, sigB );
- if ( expB == -128 ) goto zero;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expZ = expA + expB - 0x4000;
- softfloat_mul128MTo256M( sigA, sigB, sigProd );
- if (
- sigProd[indexWord( 8, 2 )]
- || (sigProd[indexWord( 8, 1 )] | sigProd[indexWord( 8, 0 )])
- ) {
- sigProd[indexWord( 8, 3 )] |= 1;
- }
- extSigZPtr = &sigProd[indexMultiwordHi( 8, 5 )];
- shiftDist = 16;
- if ( extSigZPtr[indexWordHi( 5 )] & 2 ) {
- ++expZ;
- shiftDist = 15;
- }
- softfloat_shortShiftLeft160M( extSigZPtr, shiftDist, extSigZPtr );
- softfloat_roundPackMToF128M( signZ, expZ, extSigZPtr, zWPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- zero:
- uiZ96 = packToF128UI96( signZ, 0, 0 );
- uiZ96:
- zWPtr[indexWordHi( 4 )] = uiZ96;
- zWPtr[indexWord( 4, 2 )] = 0;
- zWPtr[indexWord( 4, 1 )] = 0;
- zWPtr[indexWord( 4, 0 )] = 0;
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_mulAdd.c b/life/resolver/softfloat/source/f128M_mulAdd.c
deleted file mode 100644
index e2f95df018..0000000000
--- a/life/resolver/softfloat/source/f128M_mulAdd.c
+++ /dev/null
@@ -1,92 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include "platform.h"
-#include "internals.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_mulAdd(
- const float128_t *aPtr,
- const float128_t *bPtr,
- const float128_t *cPtr,
- float128_t *zPtr
- )
-{
- const uint64_t *aWPtr, *bWPtr, *cWPtr;
- uint_fast64_t uiA64, uiA0;
- uint_fast64_t uiB64, uiB0;
- uint_fast64_t uiC64, uiC0;
-
- aWPtr = (const uint64_t *) aPtr;
- bWPtr = (const uint64_t *) bPtr;
- cWPtr = (const uint64_t *) cPtr;
- uiA64 = aWPtr[indexWord( 2, 1 )];
- uiA0 = aWPtr[indexWord( 2, 0 )];
- uiB64 = bWPtr[indexWord( 2, 1 )];
- uiB0 = bWPtr[indexWord( 2, 0 )];
- uiC64 = cWPtr[indexWord( 2, 1 )];
- uiC0 = cWPtr[indexWord( 2, 0 )];
- *zPtr = softfloat_mulAddF128( uiA64, uiA0, uiB64, uiB0, uiC64, uiC0, 0 );
-
-}
-
-#else
-
-void
- f128M_mulAdd(
- const float128_t *aPtr,
- const float128_t *bPtr,
- const float128_t *cPtr,
- float128_t *zPtr
- )
-{
-
- softfloat_mulAddF128M(
- (const uint32_t *) aPtr,
- (const uint32_t *) bPtr,
- (const uint32_t *) cPtr,
- (uint32_t *) zPtr,
- 0
- );
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_rem.c b/life/resolver/softfloat/source/f128M_rem.c
deleted file mode 100644
index 645ec9938c..0000000000
--- a/life/resolver/softfloat/source/f128M_rem.c
+++ /dev/null
@@ -1,182 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_rem( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
-
- *zPtr = f128_rem( *aPtr, *bPtr );
-
-}
-
-#else
-
-void
- f128M_rem( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
- const uint32_t *aWPtr, *bWPtr;
- uint32_t *zWPtr, uiA96;
- int32_t expA, expB;
- uint32_t x[4], rem1[5], *remPtr;
- bool signRem;
- int32_t expDiff;
- uint32_t q, recip32;
- uint64_t q64;
- uint32_t rem2[5], *altRemPtr, *newRemPtr, wordMeanRem;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- bWPtr = (const uint32_t *) bPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- expA = expF128UI96( uiA96 );
- expB = expF128UI96( bWPtr[indexWordHi( 4 )] );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
- if ( softfloat_tryPropagateNaNF128M( aWPtr, bWPtr, zWPtr ) ) return;
- if ( expA == 0x7FFF ) goto invalid;
- goto copyA;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( expA < expB - 1 ) goto copyA;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expB = softfloat_shiftNormSigF128M( bWPtr, 13, x );
- if ( expB == -128 ) goto invalid;
- remPtr = &rem1[indexMultiwordLo( 5, 4 )];
- expA = softfloat_shiftNormSigF128M( aWPtr, 13, remPtr );
- if ( expA == -128 ) goto copyA;
- signRem = signF128UI96( uiA96 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expDiff = expA - expB;
- if ( expDiff < 1 ) {
- if ( expDiff < -1 ) goto copyA;
- if ( expDiff ) {
- --expB;
- softfloat_add128M( x, x, x );
- q = 0;
- } else {
- q = (softfloat_compare128M( x, remPtr ) <= 0);
- if ( q ) softfloat_sub128M( remPtr, x, remPtr );
- }
- } else {
- recip32 =
- softfloat_approxRecip32_1(
- ((uint64_t) x[indexWord( 4, 3 )]<<32 | x[indexWord( 4, 2 )])
- >>30
- );
- expDiff -= 30;
- for (;;) {
- q64 = (uint64_t) remPtr[indexWordHi( 4 )] * recip32;
- if ( expDiff < 0 ) break;
- q = (q64 + 0x80000000)>>32;
- softfloat_remStep128MBy32( remPtr, 29, x, q, remPtr );
- if ( remPtr[indexWordHi( 4 )] & 0x80000000 ) {
- softfloat_add128M( remPtr, x, remPtr );
- }
- expDiff -= 29;
- }
- /*--------------------------------------------------------------------
- | (`expDiff' cannot be less than -29 here.)
- *--------------------------------------------------------------------*/
- q = (uint32_t) (q64>>32)>>(~expDiff & 31);
- softfloat_remStep128MBy32( remPtr, expDiff + 30, x, q, remPtr );
- if ( remPtr[indexWordHi( 4 )] & 0x80000000 ) {
- altRemPtr = &rem2[indexMultiwordLo( 5, 4 )];
- softfloat_add128M( remPtr, x, altRemPtr );
- goto selectRem;
- }
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- altRemPtr = &rem2[indexMultiwordLo( 5, 4 )];
- do {
- ++q;
- newRemPtr = altRemPtr;
- softfloat_sub128M( remPtr, x, newRemPtr );
- altRemPtr = remPtr;
- remPtr = newRemPtr;
- } while ( ! (remPtr[indexWordHi( 4 )] & 0x80000000) );
- selectRem:
- softfloat_add128M( remPtr, altRemPtr, x );
- wordMeanRem = x[indexWordHi( 4 )];
- if (
- (wordMeanRem & 0x80000000)
- || (! wordMeanRem && (q & 1) && ! x[indexWord( 4, 0 )]
- && ! (x[indexWord( 4, 2 )] | x[indexWord( 4, 1 )]))
- ) {
- remPtr = altRemPtr;
- }
- if ( remPtr[indexWordHi( 4 )] & 0x80000000 ) {
- signRem = ! signRem;
- softfloat_negX128M( remPtr );
- }
- remPtr -= indexMultiwordLo( 5, 4 );
- remPtr[indexWordHi( 5 )] = 0;
- softfloat_normRoundPackMToF128M( signRem, expB + 18, remPtr, zWPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- invalid:
- softfloat_invalidF128M( zWPtr );
- return;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- copyA:
- zWPtr[indexWordHi( 4 )] = uiA96;
- zWPtr[indexWord( 4, 2 )] = aWPtr[indexWord( 4, 2 )];
- zWPtr[indexWord( 4, 1 )] = aWPtr[indexWord( 4, 1 )];
- zWPtr[indexWord( 4, 0 )] = aWPtr[indexWord( 4, 0 )];
-
-}
-
-#endif
-
diff --git a/life/resolver/softfloat/source/f128M_roundToInt.c b/life/resolver/softfloat/source/f128M_roundToInt.c
deleted file mode 100644
index c467126561..0000000000
--- a/life/resolver/softfloat/source/f128M_roundToInt.c
+++ /dev/null
@@ -1,223 +0,0 @@
-
-/*============================================================================
-
-This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3e, by John R. Hauser.
-
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
-California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions, and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions, and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. Neither the name of the University nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=============================================================================*/
-
-#include
-#include