diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 3848b3e2a..000000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-pipelined/busybear_boot/* filter=lfs diff=lfs merge=lfs -text
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..fe7eab6c8
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,21 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+
+version: 2
+updates:
+ # Update git submodules to latest version
+ - package-ecosystem: "gitsubmodule"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ ignore:
+ - dependency-name: "addins/coremark"
+ - dependency-name: "addins/embench-iot"
+ - dependency-name: "addins/verilog-ethernet"
+ # Update actions in the GitHub Actions workflow files
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
diff --git a/.github/scripts/cli-space-cleanup.sh b/.github/scripts/cli-space-cleanup.sh
new file mode 100755
index 000000000..0f8de1619
--- /dev/null
+++ b/.github/scripts/cli-space-cleanup.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+###########################################
+## GitHub runner space cleanup
+##
+## Written: Jordan Carlin, jcarlin@hmc.edu
+## Created: 30 June 2024
+## Modified:
+##
+## Purpose: Remove unnecessary packages/directories from GitHub Actions runner
+
+## A component of the CORE-V-WALLY configurable RISC-V project.
+## https://github.com/openhwgroup/cvw
+##
+## Copyright (C) 2021-23 Harvey Mudd College & Oklahoma State University
+##
+## SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
+##
+## Licensed under the Solderpad Hardware License v 2.1 (the “License”); you may not use this file
+## except in compliance with the License, or, at your option, the Apache License version 2.0. You
+## may obtain a copy of the License at
+##
+## https:##solderpad.org/licenses/SHL-2.1/
+##
+## Unless required by applicable law or agreed to in writing, any work distributed under the
+## License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+## either express or implied. See the License for the specific language governing permissions
+## and limitations under the License.
+################################################################################################
+
+# Remove unnecessary packages
+removePacks=( '^llvm-.*' 'php.*' '^mongodb-.*' '^mysql-.*' '^dotnet-sdk-.*' 'azure-cli' 'google-cloud-cli' 'google-chrome-stable' 'firefox' '^powershell*' 'microsoft-edge-stable' 'mono-devel' 'hhvm' )
+for pack in "${removePacks[@]}"; do
+ sudo apt-get purge -y "$pack" || true
+done
+sudo apt-get autoremove -y || true
+sudo apt-get clean || true
+
+# Remove unnecessary directories
+sudo rm -rf /usr/local/lib/android
+sudo rm -rf /usr/share/dotnet
+sudo rm -rf /usr/share/swift
+sudo rm -rf /usr/share/miniconda
+sudo rm -rf /usr/share/az*
+sudo rm -rf /usr/share/gradle-*
+sudo rm -rf /usr/share/sbt
+sudo rm -rf /opt/ghc
+sudo rm -rf /usr/local/.ghcup
+sudo rm -rf /usr/local/share/powershell
+sudo rm -rf /usr/local/lib/node_modules
+sudo rm -rf /usr/local/julia*
+sudo rm -rf /usr/local/share/chromium
+sudo rm -rf /usr/local/share/vcpkg
+sudo rm -rf /usr/local/games
+sudo rm -rf /usr/local/sqlpackage
+sudo rm -rf /usr/lib/google-cloud-sdk
+sudo rm -rf /usr/lib/jvm
+sudo rm -rf /usr/lib/mono
+sudo rm -rf /usr/lib/R
+sudo rm -rf /usr/lib/postgresql
+sudo rm -rf /usr/lib/heroku
+sudo rm -rf /usr/lib/firefox
+sudo rm -rf /opt/hostedtoolcache
+
+# Clean up docker images
+sudo docker image prune --all --force
diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml
new file mode 100644
index 000000000..922d894c5
--- /dev/null
+++ b/.github/workflows/install.yml
@@ -0,0 +1,183 @@
+##################################
+# install.yml
+# jcarlin@hmc.edu October 2024
+# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
+#
+# GitHub Action to test the wally-tool-chain-install.sh script for all supported linux distributions
+# and configurations. Runs weekly and on pull requests that modify the installation scripts.
+##################################
+
+name: Installation
+
+# Run on PR that modifies the installation scripts, weekly, or manually
+on:
+ workflow_dispatch:
+ pull_request:
+ branches:
+ - main
+ paths:
+ - 'bin/wally-tool-chain-install.sh'
+ - 'bin/wally-distro-check.sh'
+ - 'bin/wally-package-install.sh'
+ - '.github/workflows/install.yml'
+ schedule:
+ - cron: "0 7 * * 3" # Run at 12:00 AM Pacific Time on Wednesdays
+
+# Use bash shell with extra GitHub Actions options for all jobs
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ installation_test:
+ name: Test installation for ${{ matrix.name }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ # Ubuntu Installations
+ - name: ubuntu-20.04
+ image: ubuntu:20.04
+ imageFamily: debian
+ regressionFail: true
+ - name: ubuntu-22.04
+ image: ubuntu:22.04
+ imageFamily: debian
+ - name: ubuntu-24.04
+ image: ubuntu:24.04
+ imageFamily: debian
+ # Debian Installations
+ - name: debian-12
+ image: debian:12
+ imageFamily: debian
+ - name: debian-11
+ image: debian:11
+ imageFamily: debian
+ # Red Hat Installations
+ - name: rocky-8
+ image: rockylinux:8
+ imageFamily: redhat
+ regressionFail: true
+ - name: rocky-9
+ image: rockylinux:9
+ imageFamily: redhat
+ - name: almalinux-8
+ image: almalinux:8
+ imageFamily: redhat
+ regressionFail: true
+ - name: almalinux-9
+ image: almalinux:9
+ imageFamily: redhat
+ # SUSE Installations
+ - name: opensuse-15.6
+ image: opensuse/leap:15.6
+ imageFamily: suse
+ # User level installation
+ - name: user-install
+ image: null
+ user: true
+ # Custom location installation
+ - name: custom-install
+ image: null
+ riscv_path: /home/riscv
+ # Custom location user level installation
+ - name: custom-user-install
+ image: null
+ user: true
+ riscv_path: $HOME/riscv-toolchain
+
+ # run on selected version of ubuntu or on ubuntu-latest with docker image
+ runs-on: ubuntu-latest
+ container:
+ image: ${{ matrix.image }}
+ options: --privileged --mount type=bind,source=/,target=/host --pid=host --entrypoint /bin/bash # Allow for connection with host
+
+ steps:
+ # Docker images need git installed or the checkout action fails
+ - name: Install Dependencies for Container Image
+ if: ${{ matrix.image != null }}
+ run: |
+ if [ ${{ matrix.imageFamily }} == "debian" ]; then
+ apt-get update
+ apt-get install -y git
+ elif [ ${{ matrix.imageFamily }} == "redhat" ]; then
+ dnf install -y git
+ dnf install curl -y --allowerasing || true
+ elif [ ${{ matrix.imageFamily }} == "suse" ]; then
+ zypper install -y git
+ fi
+ # Only clone submodules needed for standard tests/regression to save space
+ - uses: actions/checkout@v4
+ - name: Clone Necessary Submodules
+ run: |
+ git config --global --add safe.directory '*'
+ git submodule update --init addins/riscv-arch-test addins/verilog-ethernet
+ # Free up space on the host machine, either from the container or the host
+ - name: Free Up Storage
+ run: |
+ df -h
+ if [ -z ${{ matrix.image }} ]; then
+ ./.github/scripts/cli-space-cleanup.sh
+ else
+ nsenter -t 1 -m -u -n -i bash -c "$(cat .github/scripts/cli-space-cleanup.sh)"
+ fi
+ df -h
+ # Run main tool chain installation script, either as a user or system wide
+ - name: Install
+ run: |
+ if [ ! -z ${{ matrix.image }} ]; then
+ ./bin/wally-tool-chain-install.sh --clean ${{ matrix.riscv_path }}
+ elif [ -z ${{ matrix.user }} ]; then
+ sudo ./bin/wally-tool-chain-install.sh --clean ${{ matrix.riscv_path }}
+ else
+ sudo ./bin/wally-package-install.sh
+ ./bin/wally-tool-chain-install.sh --clean ${{ matrix.riscv_path }}
+ fi
+ # Set environment variables for the rest of the job
+ - name: Set Environment Variables
+ if: always()
+ run: |
+ if [ ! -z ${{ matrix.riscv_path }} ]; then
+ sed -i 's,exit 1,export RISCV=${{ matrix.riscv_path }},g' setup.sh
+ fi
+ source setup.sh
+ echo "RISCV=$RISCV" >> "$GITHUB_ENV"
+ # Upload installation logs for debugging
+ - name: Upload Installation Logs
+ uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: installation-logs-${{ matrix.name }}
+ path: ${{ env.RISCV }}/logs/
+ # Only the linux-testvectors are needed, so remove the rest of the buildroot to save space
+ # Logs have already been uploaded so they can be removed
+ - name: Clean up installation
+ run: |
+ rm -rf $RISCV/buildroot/ || sudo rm -rf $RISCV/buildroot/
+ rm -rf $RISCV/logs || sudo rm -rf $RISCV/logs
+ df -h
+ # Make riscof and zsbl only as that is the only testsuite used by standard regression
+ - name: make tests
+ run: |
+ source setup.sh
+ make riscof zsbl --jobs $(nproc --ignore 1)
+ # Run standard regression, skipping distros that are known to be broken with Verilator
+ - name: Regression
+ if: ${{ matrix.regressionFail != true }}
+ run: |
+ source setup.sh
+ regression-wally
+ - name: Lint + wsim Test Only (for distros with broken Verilator sim)
+ if: ${{ matrix.regressionFail == true }}
+ run: |
+ source setup.sh
+ mkdir -p $WALLY/sim/verilator/logs/
+ lint-wally
+ wsim rv32i arch32i --sim verilator | tee $WALLY/sim/verilator/logs/rv32i_arch32i.log
+ # Upload regression logs for debugging
+ - name: Upload regression logs
+ uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: regression-logs-${{ matrix.name }}
+ path: ${{ github.workspace }}/sim/verilator/logs/
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 000000000..f4c7501d5
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,35 @@
+name: Lint
+
+on:
+ push:
+ paths:
+ - '**/*.py'
+ - 'bin/*'
+ - 'sim/vcs/run_vcs'
+ - '.ruff.toml'
+ - '!addins/*'
+ pull_request:
+ paths:
+ - '**/*.py'
+ - 'bin/*'
+ - 'sim/vcs/run_vcs'
+ - '.ruff.toml'
+ - '!addins/*'
+
+jobs:
+ lint:
+ name: Lint (Python ${{matrix.version}})
+ strategy:
+ matrix:
+ version: [39, 312] # Test on oldest and newest verions used in wally-package-install.sh
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Set Python version
+ run: sed -i '/^target-version/c\target-version = "py${{matrix.version}}"' .ruff.toml
+
+ - name: Ensure pre-commit checks pass
+ run: python3 -m pip install pre-commit && pre-commit run --all-files --show-diff-on-failure --color=always
diff --git a/.gitignore b/.gitignore
index 630731b23..11acaf0b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,65 +1,44 @@
-**/work*
-**/wally_*.log
-
+# General file extensions to ignore
.nfs*
-
-__pycache__/
-.vscode/
-
-#External repos
-addins/riscv-arch-test/Makefile.include
-addins/riscv-tests/target
-addins/TestFloat-3e/build/Linux-x86_64-GCC/*
-benchmarks/embench/wally*.json
-
-#vsim work files to ignore
-transcript
-vsim.wlf
-wlft*
-wlft*
-/imperas-riscv-tests/FunctionRadix_32.addr
-/imperas-riscv-tests/FunctionRadix_64.addr
-/imperas-riscv-tests/FunctionRadix.addr
-/imperas-riscv-tests/ProgramMap.txt
-/imperas-riscv-tests/logs
+*.objdump*
*.o
*.d
+*.a
*.vstf
-testsBP/*/*/*.elf*
-testsBP/*/OBJ/*
-testsBP/*/*.a
-tests/wally-riscv-arch-test/riscv-test-suite/*/I/*/*
-tests/riscof/riscof_work/
+*.vcd
+*.signature.output
+*.dtb
+*.log
+*.map
+*.elf*
+*.list
+*.memfile
+
+# General directories to ignore
+.vscode/
+__pycache__/
+**/work*
+!.github/*
+/**/obj_dir*
+/**/gmon*
+
+# Tests
tests/riscof/config32.ini
tests/riscof/config32e.ini
tests/riscof/config64.ini
-tests/linux-testgen/linux-testvectors/*
-!tests/linux-testgen/linux-testvectors/tvCopier.py
-!tests/linux-testgen/linux-testvectors/tvLinker.sh
-!tests/linux-testgen/linux-testvectors/tvUnlinker.sh
-tests/linux-testgen/buildroot
-tests/linux-testgen/buildroot-image-output
-tests/linux-testgen/buildroot-config-src/main.config.old
-tests/linux-testgen/buildroot-config-src/linux.config.old
-tests/linux-testgen/buildroot-config-src/busybox.config.old
-sim/slack-notifier/slack-webhook-url.txt
-sim/logs
-fpga/generator/IP
-fpga/generator/vivado.*
-fpga/generator/.Xil/*
-fpga/generator/WallyFPGA*
-fpga/generator/reports/
-fpga/generator/*.log
-fpga/generator/*.jou
-*.objdump*
-*.signature.output
-examples/asm/sumtest/sumtest
-examples/asm/example/example
-examples/C/sum/sum
-examples/C/fir/fir
-examples/fp/softfloat_demo/softfloat_demo
-examples/fp/fpcalc/fpcalc
-src/fma/fma16_testgen
+tests/riscof/riscof_work/
+tests/wally-riscv-arch-test/riscv-test-suite/*/I/*/**
+tests/fp/vectors/*.tv
+tests/fp/vectors/sed*
+tests/fp/combined_IF_vectors/IF_vectors/*.tv
+tests/custom/*/*/
+tests/custom/*/*/*.memfile
+sim/tests/riscvdv
+testbench/trek_files/uvm_output
+
+# Linux
+linux/buildroot
+linux/testvector-generation/boottrace.S
linux/devicetree/debug/*
!linux/devicetree/debug/dump-dts.sh
linux/testvector-generation/genCheckpoint.gdb
@@ -67,10 +46,30 @@ linux/testvector-generation/silencePipe
linux/testvector-generation/silencePipe.control
linux/testvector-generation/fixBinMem
linux/testvector-generation/qemu-serial
-*.dtb
+
+# FPGA
+fpga/generator/IP
+fpga/generator/vivado.*
+fpga/generator/.Xil/*
+fpga/generator/WallyFPGA*
+fpga/generator/reports/
+fpga/generator/*.jou
+fpga/src/sdc/*
+fpga/src/sdc.tar.gz
+fpga/src/CopiedFiles_do_not_add_to_repo/*
+fpga/generator/sim/imp-funcsim.v
+fpga/generator/sim/imp-timesim.sdf
+fpga/generator/sim/imp-timesim.v
+fpga/generator/sim/syn-funcsim.v
+fpga/rvvidaemon/rvvidaemon
+fpga/zsbl/OBJ/*
+fpga/zsbl/bin/*
+fpga/src/boot.mem
+fpga/src/data.mem
+
+# Synthesis
synthDC/WORK
synthDC/alib-52
-synthDC/*.log
synthDC/*.svf
synthDC/runs/
synthDC/newRuns
@@ -79,39 +78,99 @@ synthDC/ppa/plots
synthDC/wallyplots/
synthDC/runArchive
synthDC/hdl
-sim/power.saif
-tests/fp/vectors/*.tv
synthDC/Summary.csv
-sim/wkdir
-tests/custom/work
-tests/custom/*/*/*.list
-tests/custom/*/*/*.elf
-tests/custom/*/*/*.map
-tests/custom/*/*/*.memfile
-tests/custom/crt0/*.a
-tests/custom/*/*.elf*
-sim/sd_model.log
-fpga/src/sdc/*
-fpga/src/sdc.tar.gz
-fpga/src/CopiedFiles_do_not_add_to_repo/*
-sim/branch.log
-/fpga/generator/sim/imp-funcsim.v
-/fpga/generator/sim/imp-timesim.sdf
-/fpga/generator/sim/imp-timesim.v
-/fpga/generator/sim/syn-funcsim.v
-external
+
+# Benchmarks
+benchmarks/embench/wally*.json
+benchmarks/embench/run*
+benchmarks/coremark/coremark_results.csv
+
+# Simulation
+sim/*.svg
+sim/power.saif
sim/results
-tests/wally-riscv-arch-test/riscv-test-suite/rv*i_m/I/src/*.S
-tests/wally-riscv-arch-test/riscv-test-suite/rv*i_m/I/Makefrag
-sim/branch_BP_GSHARE10.log
-sim/branch_BP_GSHARE16.log
-sim/cov/
-sim/covhtmlreport/
-sim/imperas.log
sim/results-error/
sim/test1.rep
-sim/vsim.log
-tests/coverage/*.elf
-*.elf.memfile
-sim/*Cache.log
-sim/branch
\ No newline at end of file
+sim/branch
+sim/branch-march14.tar.gz
+sim/gshareforward-no-class
+sim/local16.txt
+sim/localhistory_m6k10_results_april24.txt
+sim/cfi/*
+sim/branch/*
+sim/covhtmlreport/
+sim/*/*Cache.log
+
+# Questa
+sim/questa/logs
+sim/questa/wkdir
+sim/questa/ucdb
+sim/questa/cov
+sim/questa/fcov
+sim/questa/fcov_logs
+sim/questa/fcov_ucdb
+sim/questa/riscv.ucdb
+transcript
+vsim.wlf
+wlft*
+
+# VCS
+sim/vcs/logs
+sim/vcs/wkdir
+sim/vcs/ucdb
+sim/vcs/csrc
+sim/vcs/profileReport*
+sim/vcs/program.out
+sim/vcs/sim_out*
+sim/vcs/simprofile_dir
+sim/vcs/ucli.key
+sim/vcs/verdi_config_file
+sim/vcs/vcdplus.vpd
+sim/vcs/simprofile*
+
+# Verilator
+sim/verilator/logs
+sim/verilator/wkdir
+
+# Examples
+examples/verilog/fulladder/csrc/
+examples/verilog/fulladder/profileReport.html
+examples/verilog/fulladder/profileReport.json
+examples/verilog/fulladder/profileReport.txt
+examples/verilog/fulladder/profileReport/
+examples/verilog/fulladder/simprofile_dir/
+examples/verilog/fulladder/simv.daidir/
+examples/verilog/fulladder/ucli.key
+examples/verilog/fulladder/verdi_config_file
+examples/fp/softfloat_demo/softfloat_demo
+examples/fp/softfloat_demo/softfloat_demoDP
+examples/fp/softfloat_demo/softfloat_demoQP
+examples/fp/softfloat_demo/softfloat_demoSP
+examples/fp/fpcalc/fpcalc
+examples/fp/sqrttest/sqrttest
+examples/crypto/gfmul/gfmul
+examples/C/fir/fir
+examples/C/inline/inline
+examples/C/mcmodel/mcmodel_medany
+examples/C/mcmodel/mcmodel_medlow
+examples/C/sum/sum
+examples/C/sum_mixed/sum_mixed
+examples/C/hello/hello
+examples/C/gpio/gpio
+examples/asm/sumtest/sumtest
+examples/asm/example/example
+examples/asm/trap/trap
+examples/asm/etc/pause
+examples/C/fmul
+examples/exercises/fma16/fma16.sv
+examples/exercises/fma16/fma16_testgen
+examples/exercises/fma16/sol
+examples/exercises/riscvsoc_solutions
+
+
+# Other
+external
+config/deriv
+sim/slack-notifier/slack-webhook-url.txt
+docs/docker/buildroot-config-src
+docs/docker/testvector-generation
diff --git a/.gitmodules b/.gitmodules
index 78243a1de..672ec445f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,16 +1,3 @@
-[submodule "sky130/sky130_osu_sc_t12"]
- path = sky130/sky130_osu_sc_t12
- url = https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12/
-[submodule "addins/riscv-arch-test"]
- path = addins/riscv-arch-test
- url = https://github.com/riscv-non-isa/riscv-arch-test
- ignore = dirty
-[submodule "addins/imperas-riscv-tests"]
- path = addins/imperas-riscv-tests
- url = https://github.com/riscv-ovpsim/imperas-riscv-tests
-[submodule "addins/riscv-tests"]
- path = addins/riscv-tests
- url = https://github.com/riscv-software-src/riscv-tests
[submodule "addins/riscv-dv"]
path = addins/riscv-dv
url = https://github.com/google/riscv-dv
@@ -21,6 +8,28 @@
[submodule "addins/coremark"]
path = addins/coremark
url = https://github.com/eembc/coremark
+[submodule "addins/vivado-boards"]
+ path = addins/vivado-boards
+ url = https://github.com/Digilent/vivado-boards/
+[submodule "addins/riscv-arch-test"]
+ path = addins/riscv-arch-test
+ url = https://github.com/riscv-non-isa/riscv-arch-test
+ branch = dev
[submodule "addins/branch-predictor-simulator"]
path = addins/branch-predictor-simulator
- url = https://github.com/synxlin/branch-predictor-simulator.git
+ url = https://github.com/rosethompson/branch-predictor-simulator
+[submodule "addins/verilog-ethernet"]
+ sparseCheckout = true
+ path = addins/verilog-ethernet
+ url = https://github.com/rosethompson/verilog-ethernet.git
+[submodule "addins/cvw-arch-verif"]
+ path = addins/cvw-arch-verif
+ url = https://github.com/openhwgroup/cvw-arch-verif
+ ignore = dirty
+[submodule "addins/berkeley-softfloat-3"]
+ path = addins/berkeley-softfloat-3
+ url = https://github.com/ucb-bar/berkeley-softfloat-3.git
+[submodule "addins/berkeley-testfloat-3"]
+ path = addins/berkeley-testfloat-3
+ url = https://github.com/ucb-bar/berkeley-testfloat-3
+ ignore = untracked
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 000000000..1ac8e720e
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,41 @@
+# .pre-commit-config.yaml
+# jcarlin@hmc.edu 8 April 2025
+# Pre-commit hook configuration file for CVW
+
+# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
+
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+exclude: addins/
+minimum_pre_commit_version: "4.0.0"
+repos:
+ # Standard pre-commit hooks
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v5.0.0
+ hooks:
+ - id: check-added-large-files
+ - id: check-case-conflict
+ - id: check-docstring-first
+ # - id: check-executables-have-shebangs
+ # - id: check-shebang-scripts-are-executable
+ - id: check-symlinks
+ exclude: bin/sim_bp # symlink to compiled executable
+ - id: requirements-txt-fixer
+ files: requirements.txt
+ # - id: end-of-file-fixer
+ # - id: trailing-whitespace
+ # args: [--markdown-linebreak-ext=md]
+ - id: check-merge-conflict
+ args: ["--assume-in-merge"]
+ exclude: \.adoc$ # sections titles Level 6 "=======" get flagged otherwise
+ - id: check-json
+ - id: check-toml
+ - id: check-yaml
+
+ # Ruff python linter
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.11.4
+ hooks:
+ # Run the linter.
+ - id: ruff
+ args: [ --fix ]
diff --git a/.ruff.toml b/.ruff.toml
new file mode 100644
index 000000000..50efc7fb0
--- /dev/null
+++ b/.ruff.toml
@@ -0,0 +1,34 @@
+# Lint all .py files and extra python scripts without extensions
+exclude = ["addins/*"]
+
+# Target oldest version of Python used (Python 3.9 for Ubuntu 20.04 LTS)
+target-version = "py39"
+
+line-length=250
+
+[lint]
+select = [
+ "F", # various basic rules (pyflakes)
+ "E", # errors (pycodestyle)
+ "W", # warnings (pycodestyle)
+ "I", # Import related rules (isort)
+ "UP", # Upgraded version available in newer Python
+ "B", # bugbear rules
+ "A", # shadow builtins
+ "EXE", # Executable file shebangs
+ "Q003", # Avoidable escaped quotes
+ "Q004", # Unnecessary esacpe character
+ "RUF", # Ruff specific rules
+]
+
+ignore = [
+ "E501", # line too long
+ "E701", "E702", # multiple statements on one line
+ "E722", # do not use bare 'except'
+ "E741", # ambiguous variable name
+ "W291", # trailing whitespace
+ "W293", # blank line contains whitespace
+ "B007", # loop control variable not used
+ "B9", # overly opinionated rules
+ "RUF005", # iterable unpacking in list
+]
diff --git a/LICENSE b/LICENSE
index 9d84dec0d..173f17332 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-23 Harvey Mudd College & Oklahoma State University
+// Copyright (C) 2021-25 Harvey Mudd College & Oklahoma State University
//
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
//
diff --git a/Makefile b/Makefile
index 518bcd2dd..d50c761b8 100644
--- a/Makefile
+++ b/Makefile
@@ -2,25 +2,45 @@
# Top-level Makefile for CORE-V-Wally
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
-all:
- make install
- make regression
+MAKEFLAGS += --output-sync --no-print-directory
-# install copies over the Makefile.include from riscv-isa-sim
-# And corrects the TARGETDIR path and the RISCV_PREFIX
+SIM = ${WALLY}/sim
-install:
- # *** 1/15/23 dh: check if any of this is still needed
- #cp ${RISCV}/riscv-isa-sim/arch_test_target/spike/Makefile.include addins/riscv-arch-test/
- #sed -i '/export TARGETDIR ?=/c\export TARGETDIR ?= ${RISCV}/riscv-isa-sim/arch_test_target' addins/riscv-arch-test/Makefile.include
- #echo export RISCV_PREFIX = riscv64-unknown-elf- >> addins/riscv-arch-test/Makefile.include
- ##cd tests/linux-testgen/linux-testvectors; source ./tvLinker.sh # needs to be run in local directory
- ##rm tests/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe
- ##ln -s ${RISCV}/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe tests/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64/riscvOVPsimPlus.exe
+.PHONY: all riscof testfloat combined_IF_vectors zsbl coverage cvw-arch-verif sim_bp clean
-regression:
- make -C sim
+all: riscof testfloat combined_IF_vectors zsbl coverage sim_bp # cvw-arch-verif
+
+# riscof builds the riscv-arch-test and wally-riscv-arch-test suites
+riscof:
+ $(MAKE) -C sim
+
+testfloat:
+ $(MAKE) -C ${WALLY}/tests/fp vectors
+
+combined_IF_vectors: testfloat riscof
+ $(MAKE) -C ${WALLY}/tests/fp combined_IF_vectors
+
+zsbl:
+ $(MAKE) -C ${WALLY}/fpga/zsbl
+
+coverage:
+ $(MAKE) -C tests/coverage
+
+cvw-arch-verif:
+ $(MAKE) -C ${WALLY}/addins/cvw-arch-verif
+
+sim_bp: ${WALLY}/addins/branch-predictor-simulator/src/sim_bp
+
+${WALLY}/addins/branch-predictor-simulator/src/sim_bp:
+ $(MAKE) -C ${WALLY}/addins/branch-predictor-simulator/src
+
+# Requires a license for the Breker tool. See tests/breker/README.md for details
+breker:
+ $(MAKE) -C ${WALLY}/testbench/trek_files
+ $(MAKE) -C ${WALLY}/tests/breker
clean:
- make clean -C sim
-
+ $(MAKE) clean -C sim
+ $(MAKE) clean -C ${WALLY}/tests/fp
+ $(MAKE) clean -C ${WALLY}/tests/coverage
+ $(MAKE) clean -C ${WALLY}/addins/cvw-arch-verif
diff --git a/README.md b/README.md
index b73aecdb8..b700df728 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
+[](https://github.com/openhwgroup/cvw/actions/workflows/install.yml)
+
# core-v-wally
-Wally is a 5-stage pipelined processor configurable to support all the standard RISC-V options, incluidng RV32/64, A, C, F, D, Q, M, and Zb* extensions, virtual memory, PMP, and the various privileged modes and CSRs. It provides optional caches, branch prediction, and standard RISC-V peripherals (CLINT, PLIC, UART, GPIO). Wally is written in SystemVerilog. It passes the RISC-V Arch Tests and boots Linux on an FPGA. Configurations range from a minimal RV32E core to a fully featured RV64GC application processor.
+Wally is a 5-stage pipelined processor configurable to support all the standard RISC-V options, including RV32/64, A, B, C, D, F, M, Q, and Zk* extensions, virtual memory, PMP, and the various privileged modes and CSRs. It provides optional caches, branch prediction, and standard RISC-V peripherals (CLINT, PLIC, UART, GPIO). Wally is written in SystemVerilog. It passes the [RISC-V Arch Tests](https://github.com/riscv-non-isa/riscv-arch-test) and boots Linux on an FPGA. Configurations range from a minimal RV32E core to a fully featured RV64GC application processor with all of the RVA22S64 profile extensions. Wally is part of the OpenHWGroup family of robust open RISC-V cores.

@@ -8,124 +10,276 @@ Wally is described in an upcoming textbook, *RISC-V System-on-Chip Design*, by H
# Verification
-Wally is presently at Technology Readiness Level 4, passing the RISC-V compatibility test suite and custom tests, and booting Linux in simulation and on an FPGA. See the [Test Plan](docs/testplan.md) for details.
+Wally is presently at Technology Readiness Level 4, passing the RISC-V compatibility test suite and custom tests, and booting Linux in simulation and on an FPGA. See the [Test Plan](docs/testplans/testplan.md) for details.
# New User Setup
New users may wish to do the following setup to access the server via a GUI and use a text editor.
- Git started with Git configuration and authentication: B.1 (replace with your name and email)
- $ git config --global user.name "Ben Bitdiddle"
- $ git config --global user.email "ben_bitdiddle@wally.edu"
- $ git config --global pull.rebase false
- Optional: Download and install x2go - A.1.1
- Optional: Download and install VSCode - A.4.2
- Optional: Make sure you can log into your server via x2go and via a terminal
- Terminal on Mac, cmd on Windows, xterm on Linux
- See A.1 about ssh -Y login from a terminal
+- Git started with Git configuration and authentication: C.1 (replace with your name and email)
+ ```bash
+ $ git config --global user.name "Ben Bitdiddle"
+ $ git config --global user.email "ben_bitdiddle@wally.edu"
+ $ git config --global pull.rebase false
+ ```
+- Optional: Download and install x2go - B.1.1
+- Optional: Download and install VSCode - B.4.2
+- Optional: Make sure you can log into your server via x2go and via a terminal
+ - Terminal on Mac, cmd on Windows, xterm on Linux
+ - See B.1 about ssh -Y login from a terminal
-Then clone the repo, source setup, make the tests and run regression
+Then fork and clone the repo, source setup, make the tests and run regression
- If you don't already have a Github account, create one
- In a web browser, visit https://github.com/openhwgroup/cvw
- In the upper right part of the screen, click on Fork
- Create a fork, choosing the owner as your github account and the repository as cvw.
-
- On the Linux computer where you will be working, log in
-
-Clone your fork of the repo and run the setup script.
-
- $ cd
+1. If you don't already have a Github account, create one
+2. In a web browser, visit https://github.com/openhwgroup/cvw
+3. In the upper right part of the screen, click on Fork
+4. Create a fork, choosing the owner as your github account and the repository as cvw.
+5. On the Linux computer where you will be working, log in.
+6. Clone your fork of the repo. Change `` to your github id.
+ ```bash
$ git clone --recurse-submodules https://github.com//cvw
$ cd cvw
$ git remote add upstream https://github.com/openhwgroup/cvw
+ ```
+
+> [!NOTE]
+> If you are installing on a new system without any tools installed, please jump to the next section, [Toolchain Installation](#toolchain-installation-and-configuration-sys-admin), then come back here.
+
+7. Run the setup script to update your `PATH` and activate the python virtual environment.
+
+ ```bash
$ source ./setup.sh
+ ```
-Add the following lines to your .bashrc or .bash_profile to run the setup script each time you log in.
+8. Add the following lines to your `.bashrc` or `.bash_profile` to run the setup script each time you log in.
+ ```bash
if [ -f ~/cvw/setup.sh ]; then
source ~/cvw/setup.sh
fi
+ ```
-Edit setup.sh and change the following lines to point to the path and license server for your Siemens Questa and Synopsys Design Compiler installation and license server. If you only have Questa, you can still simulate but cannot run logic synthesis.
-
- export MGLS_LICENSE_FILE=1717@solidworks.eng.hmc.edu # Change this to your Siemens license server
- export SNPSLMD_LICENSE_FILE=27020@zircon.eng.hmc.edu # Change this to your Synopsys license server
- export QUESTAPATH=/cad/mentor/questa_sim-2021.2_1/questasim/bin # Change this for your path to Questa
- export SNPSPATH=/cad/synopsys/SYN/bin # Change this for your path to Design Compiler
-
-If the tools are not yet installed on your server, follow the Toolchain Installation instructions in the section below.
-
-Build the tests and run a regression simulation with Questa to prove everything is installed. Building tests will take a while.
-
+9. Try compiling the HelloWally program and simulating it on the SystemVerilog with Verilator and on the Spike simulator.
+ ```
+ $ cd examples/C/hello
$ make
- $ cd sim
- $ ./regression-wally (depends on having Questa installed)
+ $ wsim --sim verilator rv64gc --elf hello
+ Hello Wally!
+ 0 1 2 3 4 5 6 7 8 9
+ $ spike hello
+ Hello Wally!
+ 0 1 2 3 4 5 6 7 8 9
+ ```
-# Toolchain Installation (Sys Admin)
+10. Build the tests and run a regression simulation to prove everything is installed. Building tests may take a while.
-This section describes the open source toolchain installation. The
-current version of the toolchain has been tested on Ubuntu and Red
-Hat/Rocky 8 Linux. Ubuntu works more smoothly and is recommended
-unless you have a compelling need for RedHat.
+ ```bash
+ $ make --jobs
+ $ regression-wally
+ ```
-Ubuntu users can install the tools by running
+# Toolchain Installation and Configuration (Sys Admin)
- $ sudo $WALLY/bin/wally-tool-chain-install.sh
+> This section describes the open source toolchain installation.
-See wally-tool-chain-install.sh for a detailed description of each component,
-or to issue the commands one at a time to install on the command line.
-## Installing EDA Tools
+### Compatibility
+The current version of the toolchain has been tested on Ubuntu (versions 20.04 LTS, 22.04 LTS, and 24.04 LTS), Debian (versions 11 and 12), Red Hat/Rocky/AlmaLinux (versions 8 and 9),
+and SUSE version 15.6. Only the latest minor release of each major version is tested.
+
+> [!WARNING]
+> - Ubuntu 22.04LTS is incompatible with Synopsys Design Compiler.
+> - Verilator currently fails to simulate correctly on Ubuntu 20.04 LTS and Red Hat/Rocky/AlmaLinux 8.
+
+### Overview
+The toolchain installation script installs the following tools:
+- [RISC-V GNU Toolchain](https://github.com/riscv-collab/riscv-gnu-toolchain): GCC and accompanying compiler tools
+- [elf2hex](https://github.com/sifive/elf2hex): executable file to hexadecimal converter
+- [QEMU](https://www.qemu.org/docs/master/system/target-riscv.html): emulator
+- [Spike](https://github.com/riscv-software-src/riscv-isa-sim): functional RISC-V model
+- [Verilator](https://github.com/verilator/verilator): open-source Verilog simulator
+- [RISC-V Sail Model](https://github.com/riscv/sail-riscv): golden reference model for RISC-V
+- [OSU Skywater 130 cell library](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12): standard cell library
+- [RISCOF](https://github.com/riscv-software-src/riscof.git): RISC-V compliance test framework
+
+Additionally, Buildroot Linux is built for Wally and linux test-vectors are generated for simulation. See the [Linux README](linux/README.md) for more details. This can be skipped using the `--no-buildroot` flag.
+
+### Installation
+
+The tools can be installed by running
+
+```bash
+$ $WALLY/bin/wally-tool-chain-install.sh
+```
+If this script is run as root or using `sudo`, it will also install all of the prerequisite packages using the system package manager. The default installation directory when run in this manner is `/opt/riscv`.
+
+If a user-level installation is desired, the script can instead be run by any user without `sudo` and the installation directory will be `~/riscv`. In this case, the prerequisite packages must first be installed by running
+
+```bash
+$ sudo $WALLY/bin/wally-package-install.sh
+```
+
+In either case, the installation directory can be overridden by passing the desired directory as the last argument to the installation script. For example,
+
+```bash
+$ sudo $WALLY/bin/wally-tool-chain-install.sh /home/riscv
+```
+
+See `wally-tool-chain-install.sh` for a detailed description of each component, or to issue the commands one at a time to install on the command line.
+
+> [!NOTE]
+> The complete installation process requires ~55 GB of free space. If the `--clean` flag is passed to the installation script then the final consumed space is only ~26 GB, but upgrading the tools will reinstall everything from scratch.
+
+### Configuration
+`$WALLY/setup.sh` sources `$RISCV/site-setup.sh`. If the toolchain was installed in either of the default locations (`/opt/riscv` or `~/riscv`), `$RISCV` will automatically be set to the correct path when `setup.sh` is run. If a custom installation directory was used, then `$WALLY/setup.sh` must be modified to set the correct path.
+
+`$RISCV/site-setup.sh` allows for customization of the site specific information such as commercial licenses and PATH variables. It is automatically copied into your `$RISCV` folder when the installation script is run.
+
+Change the following lines to point to the path and license server for your Siemens Questa and Synopsys Design Compiler and VCS installations and license servers. If you only have Questa or VCS, you can still simulate but cannot run logic synthesis. If Questa, VSC, or Design Compiler are already setup on this system then don't set these variables.
+
+```bash
+export MGLS_LICENSE_FILE=.. # Change this to your Siemens license server
+export SNPSLMD_LICENSE_FILE=.. # Change this to your Synopsys license server
+export QUESTA_HOME=.. # Change this for your path to Questa
+export DC_HOME=.. # Change this for your path to Synopsys Design Compiler
+export VCS_HOME=.. # Change this for your path to Synopsys VCS
+```
+
+# Installing EDA Tools
Electronic Design Automation (EDA) tools are vital to implementations of System on Chip architectures as well as validating different designs. Open-source and commercial tools exist for multiple strategies and although the one can spend a lifetime using combinations of different tools, only a small subset of tools is utilized for this text. The tools are chosen because of their ease in access as well as their repeatability for accomplishing many of the tasks utilized to design Wally. It is anticipated that additional tools may be documented later after this is text is published to improve use and access.
-Siemens Quest is the primary tool utilized for simulating and validating Wally. For logic synthesis, you will need Synopsys Design Compiler. Questa and Design Compiler are commercial tools that require an educational or commercial license.
+Verilator is an open-source Verilog simulator. It is fast and free. Run Wally on the riscv-arch-test suite using Verilator with:
-Note: Some EDA tools utilize LM_LICENSE_FILE for their environmental variable to point to their license server. Some operating systems may also utilize MGLS_LICENSE_FILE instead, therefore, it is important to read the user manual on the preferred environmental variable required to point to a user’s license file. Although there are different mechanisms to allow licenses to work, many companies commonly utilize the FlexLM (i.e., Flex-enabled) license server manager that runs off a node locked license.
+```
+regression-wally
+```
-Although most EDA tools are Linux-friendly, they tend to have issues when not installed on recommended OS flavors. Both Red Hat Enterprise Linux and SUSE Linux products typically tend to be recommended for installing commercial-based EDA tools and are recommended for utilizing complex simulation and architecture exploration. Questa can also be installed on Microsoft Windows as well as Mac OS with a Virtual Machine such as Parallels.
+Running code or functional coverage simulations or lock-step presently require commercial tools. Siemens Questa is the primary tool utilized for simulating and validating Wally. Synopsys VCS also can run regression-wally and lock-step simulation. For logic synthesis, you will need Synopsys Design Compiler. Questa and Design Compiler are commercial tools that require an educational or commercial license.
-Siemens Questa
+Note: Some EDA tools utilize `LM_LICENSE_FILE` for their environmental variable to point to their license server. Some operating systems may also utilize `MGLS_LICENSE_FILE` instead, therefore, it is important to read the user manual on the preferred environmental variable required to point to a user’s license file. Although there are different mechanisms to allow licenses to work, many companies commonly utilize the FlexLM (i.e., Flex-enabled) license server manager that runs off a node locked license.
-Siemens Questa simulates behavioral, RTL and gate-level HDL. To install Siemens Questa first go to a web browser and navigate to
-https://eda.sw.siemens.com/en-US/ic/questa/simulation/advanced-simulator/. Click Sign In and log in with your credentials and the product can easily be downloaded and installed. Some Windows-based installations also require gcc libraries that are typically provided as a compressed zip download through Siemens.
+Although most EDA tools are Linux-friendly, they tend to have issues when not installed on recommended OS flavors. Red Hat Enterprise Linux (and its free Rocky clone) and SUSE Linux products typically tend to be recommended for installing commercial-based EDA tools and are recommended for utilizing complex simulation and architecture exploration.
-Synopsys Design Compiler (DC)
+### Siemens Questa
-Many commercial synthesis and place and route tools require a common installer. These installers are provided by the EDA vendor and Synopsys has one called Synopsys Installer. To use Synopsys Installer, you will need to acquire a license through Synopsys that is typically Called Synopsys Common Licensing (SCL). Both the Synopsys Installer, license key file, and Design Compiler can all be downloaded through Synopsys Solvnet. First open a web browser, log into Synsopsy Solvnet, and download the installer and Design Compiler installation files. Then, install the Installer
+Siemens Questa simulates behavioral, RTL and gate-level HDL. To install Siemens Questa first go to a web browser and navigate to https://eda.sw.siemens.com/en-US/ic/questa/simulation/advanced-simulator/. Click Sign In and log in with your credentials and the product can easily be downloaded and installed. Some Windows-based installations also require gcc libraries that are typically provided as a compressed zip download through Siemens.
- $ firefox &
-Navigate to https://solvnet.synopsys.com
-Log in with your institution’s username and password
-Click on Downloads, then scroll down to Synopsys Installer
-Select the latest version (currently 5.4). Click Download Here, agree,
-Click on SynopsysInstaller_v5.4.run
-Return to downloads and also get Design Compiler (synthesis) latest version, and any others you want.
- Click on all parts and the .spf file, then click Download Files near the top
-move the SynopsysIntaller into /cad/synopsys/Installer_5.4 with 755 permission for cad,
-move other files into /cad/synopsys/downloads and work as user cad from here on
+### Synopsys Design Compiler (DC)
- $ cd /cad/synopsys/installer_5.4
- $ ./SynopsysInstaller_v5.4.run
- Accept default installation directory
- $ ./installer
- Enter source path as /cad/synopsys/downloads, and installation path as /cad/synopsys
- When prompted, enter your site ID
- Follow prompts
+Many commercial synthesis and place and route tools require a common installer. These installers are provided by the EDA vendor and Synopsys has one called Synopsys Installer. To use Synopsys Installer, you will need to acquire a license through Synopsys that is typically Called Synopsys Common Licensing (SCL). Both the Synopsys Installer, license key file, and Design Compiler can all be downloaded through Synopsys Solvnet. First open a web browser, log into Synsopsy Solvnet, and download the installer and Design Compiler installation files. Then, install the Installer.
-Installer can be utilized in graphical or text-based modes. It is far easier to use the text-based installation tool. To install DC, navigate to the location where your downloaded DC files are and type installer. You should be prompted with questions related to where you wish to have your files installed.
+```bash
+$ firefox &
+```
-The Synopsys Installer automatically installs all downloaded product files into a single top-level target directory. You do not need to specify the installation directory for each product. For example, if you specify /import/programs/synopsys as the target directory, your installation directory structure might look like this after installation:
+- Navigate to https://solvnet.synopsys.com
+- Log in with your institution’s username and password
+- Click on Downloads, then scroll down to Synopsys Installer
+- Select the latest version (currently 5.4). Click Download Here, agree,
+- Click on SynopsysInstaller_v5.4.run
+- Return to downloads and also get Design Compiler (synthesis) latest version, and any others you want.
+- Click on all parts and the .spf file, then click Download Files near the top
+- Move the SynopsysInstaller into `/cad/synopsys/Installer_5.4` with 755 permission for cad,
+- move other files into `/cad/synopsys/downloads` and work as user cad from here on
- /import/programs/synopsys/syn/S-2021.06-SP1
+```bash
+$ cd /cad/synopsys/installer_5.4
+$ ./SynopsysInstaller_v5.4.run
+```
+- Accept default installation directory
+```bash
+$ ./installer
+```
+- Enter source path as `/cad/synopsys/downloads`, and installation path as `/cad/synopsys`
+- When prompted, enter your site ID
+- Follow prompts
-Note: Although most parts of Wally, including the software used in this chapter and Questa simulation, will work on most modern Linux platforms, as of 2022, the Synopsys CAD tools for SoC design are only supported on RedHat Enterprise Linux 7.4 or 8 or SUSE Linux Enterprise Server (SLES) 12 or 15. Moreover, the RISC-V formal specification (sail-riscv) does not build gracefully on RHEL7.
+Installer can be utilized in graphical or text-based modes. It is far easier to use the text-based installation tool. To install DC, navigate to the location where your downloaded DC files are and type installer. You should be prompted with questions related to where you wish to have your files installed.
-The Verilog simulation has been tested with Siemens Questa/ModelSim. This package is available to universities worldwide as part of the Design Verification Bundle through the Siemens Academic Partner Program members for $990/year.
+The Synopsys Installer automatically installs all downloaded product files into a single top-level target directory. You do not need to specify the installation directory for each product. For example, if you specify `/import/programs/synopsys` as the target directory, your installation directory structure might look like this after installation:
-If you want to implement your own version of the chip, your tool and license complexity rises significantly. Logic synthesis uses Synopsys Design Compiler. Placement and routing uses Cadence Innovus. Both Synopsys and Cadence offer their tools at a steep discount to their university program members, but the cost is still several thousand dollars per year. Most research universities with integrated circuit design programs have Siemens, Synopsys, and Cadence licenses. You also need a process design kit (PDK) for a specific integrated circuit technology and its libraries. The open-source Google Skywater 130 nm PDK is sufficient to synthesize the core but lacks memories. Google presently funds some fabrication runs for universities. IMEC and Muse Semiconductor offers full access to multiproject wafer fabrication on the TSMC 28 nm process including logic, I/O, and memory libraries; this involves three non-disclosure agreements. Fabrication costs on the order of $10,000 for a batch of 1 mm2 chips.
+```bash
+/import/programs/synopsys/syn/S-2021.06-SP1
+```
+
+> [!Note]
+> Although most parts of Wally, including the Questa simulator, will work on most modern Linux platforms, as of 2024, the Synopsys CAD tools for SoC design are only supported on Red Hat Enterprise Linux (or AlmaLinux/Rocky) 8.4+ or 9.1+ or SUSE Linux Enterprise Server (SLES) 15.
+
+The Verilog simulation has been tested with Siemens Questa/ModelSim. This package is available to universities worldwide as part of the Design Verification Bundle through the Siemens Academic Partner Program members for $990/year.
+
+If you want to implement your own version of the chip, your tool and license complexity rises significantly. Logic synthesis uses Synopsys Design Compiler. Placement and routing uses Cadence Innovus. Both Synopsys and Cadence offer their tools at a steep discount to their university program members, but the cost is still several thousand dollars per year. Most research universities with integrated circuit design programs have Siemens, Synopsys, and Cadence licenses. You also need a process design kit (PDK) for a specific integrated circuit technology and its libraries. The open-source Google Skywater 130 nm PDK is sufficient to synthesize the core but lacks memories. Google presently funds some fabrication runs for universities. IMEC and Muse Semiconductor offers full access to multiproject wafer fabrication on the TSMC 28 nm process including logic, I/O, and memory libraries; this involves three non-disclosure agreements. Fabrication costs on the order of $10,000 for a batch of 1 mm2 chips.
Startups can expect to spend more than $1 million on CAD tools to get a chip to market. Commercial CAD tools are not realistically available to individuals without a university or company connection.
+# Adding Cron Job for nightly builds
+If you want to add a cronjob you can do the following:
+1) Set up the email client `mutt` to send emails through the command line
+2) Enter `crontab -e` into a terminal
+3) add this code to test cloning CVW, making CVW's tests, then running `regression-wally --nightly --buildroot` every day at 21:30 in your local time
+```bash
+30 21 * * * curl -L https://raw.githubusercontent.com/openhwgroup/cvw/refs/heads/main/bin/nightly_build.py | python - --path {PATH_FOR_NIGHTLY_RUNS} --target all --tests all --send_email harris@hmc.edu,rose@rosethompson.net
+```
+This utility will take up approximately 100 GB on your hard drive. You can also run the script directly from `bin/nightly_build.py`.
+
+# Example wsim commands
+
+wsim runs one of multiple simulators, Questa, VCS, or Verilator using a specific configuration and either a suite of tests or a specific elf file.
+The general syntax is
+`wsim [--options]`
+
+Parameters and options:
+
+```
+-h, --help show this help message and exit
+--elf ELF, -e ELF ELF File name; use if name does not end in .elf
+--sim {questa,verilator,vcs}, -s {questa,verilator,vcs} Simulator
+--tb {testbench,testbench_fp}, -t {testbench,testbench_fp} Testbench
+--gui, -g Simulate with GUI
+--ccov, -c Code Coverage
+--fcov, -f Functional Coverage with cvw-arch-verif, implies lockstep
+--args ARGS, -a ARGS Optional arguments passed to simulator via $value$plusargs
+--params PARAMS, -p PARAMS Optional top-level parameter overrides of the form param=value
+--define DEFINE, -d DEFINE Optional define macros passed to simulator
+--vcd, -v Generate testbench.vcd
+--lockstep, -l Run ImperasDV lock, step, and compare.
+--lockstepverbose, -lv Run ImperasDV lock, step, and compare with tracing enabled
+--rvvi, -r Simulate rvvi hardware interface and ethernet.
+```
+
+Run basic test with Questa
+
+```bash
+wsim rv64gc arch64i
+```
+
+Run Questa with gui
+
+```bash
+wsim rv64gc wally64priv --gui
+```
+
+Run basic test with Verilator
+
+```bash
+wsim rv32i arch32i --sim verilator
+```
+
+Run lockstep against ImperasDV with a single elf file in the gui. Lockstep requires single elf.
+
+```bash
+wsim rv64gc $WALLY/tests/riscof/work/riscv-arch-test/rv64i_m/I/src/add-01.S/ref/ref.elf --lockstep --gui
+```
+
+Run lockstep against ImperasDV with a single elf file. Collect functional coverage.
+
+```bash
+wsim rv64gc $WALLY/addins/cvw-arch-verif/tests/rv64/Zicsr/WALLY-COV-ALL.elf --fcov
+```
+
+Run Linux boot simulation in lock step between Wally and ImperasDV
+
+```bash
+wsim buildroot buildroot --args +INSTR_LIMIT=600000000 --lockstep
+```
diff --git a/addins/README.md b/addins/README.md
new file mode 100644
index 000000000..ba04e05eb
--- /dev/null
+++ b/addins/README.md
@@ -0,0 +1,3 @@
+verilog-ethernet contains many ethernet devices. Wally's synthesizable RVVI interface only requires a small subset of these files.
+To do a sparse checkout of this repo copy sparse-checkout to cvw/.git/modules/addins/verilog-ethernet/info
+This will make the working directory only contain the necessary files.
diff --git a/addins/SoftFloat-3e/COPYING.txt b/addins/SoftFloat-3e/COPYING.txt
deleted file mode 100644
index 9c05d49ca..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/README.html b/addins/SoftFloat-3e/README.html
deleted file mode 100644
index 7989e0c26..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/README.txt b/addins/SoftFloat-3e/README.txt
deleted file mode 100644
index f819baa5c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-386-GCC/Makefile b/addins/SoftFloat-3e/build/Linux-386-GCC/Makefile
deleted file mode 100644
index 418160051..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-386-GCC/platform.h b/addins/SoftFloat-3e/build/Linux-386-GCC/platform.h
deleted file mode 100644
index 420aa4e04..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-386-SSE2-GCC/Makefile b/addins/SoftFloat-3e/build/Linux-386-SSE2-GCC/Makefile
deleted file mode 100644
index 1cf6f5e1a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-386-SSE2-GCC/platform.h b/addins/SoftFloat-3e/build/Linux-386-SSE2-GCC/platform.h
deleted file mode 100644
index 420aa4e04..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/Makefile b/addins/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/Makefile
deleted file mode 100644
index 2565fe56c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/addins/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
deleted file mode 100644
index 420aa4e04..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-x86_64-GCC/Makefile b/addins/SoftFloat-3e/build/Linux-x86_64-GCC/Makefile
deleted file mode 100644
index 570337825..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-x86_64-GCC/platform.h b/addins/SoftFloat-3e/build/Linux-x86_64-GCC/platform.h
deleted file mode 100644
index 2fccb6c09..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Linux-x86_64-GCC/softfloat.a b/addins/SoftFloat-3e/build/Linux-x86_64-GCC/softfloat.a
deleted file mode 100644
index 69cd932a8..000000000
Binary files a/addins/SoftFloat-3e/build/Linux-x86_64-GCC/softfloat.a and /dev/null differ
diff --git a/addins/SoftFloat-3e/build/Win32-MinGW/Makefile b/addins/SoftFloat-3e/build/Win32-MinGW/Makefile
deleted file mode 100644
index 418160051..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Win32-MinGW/platform.h b/addins/SoftFloat-3e/build/Win32-MinGW/platform.h
deleted file mode 100644
index 420aa4e04..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Win32-SSE2-MinGW/Makefile b/addins/SoftFloat-3e/build/Win32-SSE2-MinGW/Makefile
deleted file mode 100644
index 1cf6f5e1a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Win32-SSE2-MinGW/platform.h b/addins/SoftFloat-3e/build/Win32-SSE2-MinGW/platform.h
deleted file mode 100644
index 420aa4e04..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/Win64-MinGW-w64/Makefile b/addins/SoftFloat-3e/build/Win64-MinGW-w64/Makefile
deleted file mode 100644
index 05bbf5bb5..000000000
--- a/addins/SoftFloat-3e/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-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/addins/SoftFloat-3e/build/Win64-MinGW-w64/platform.h b/addins/SoftFloat-3e/build/Win64-MinGW-w64/platform.h
deleted file mode 100644
index 2fccb6c09..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/template-FAST_INT64/Makefile b/addins/SoftFloat-3e/build/template-FAST_INT64/Makefile
deleted file mode 100644
index c5005e6e3..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/template-FAST_INT64/platform.h b/addins/SoftFloat-3e/build/template-FAST_INT64/platform.h
deleted file mode 100644
index b63e2a720..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/template-not-FAST_INT64/Makefile b/addins/SoftFloat-3e/build/template-not-FAST_INT64/Makefile
deleted file mode 100644
index 49fddfd02..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/build/template-not-FAST_INT64/platform.h b/addins/SoftFloat-3e/build/template-not-FAST_INT64/platform.h
deleted file mode 100644
index b63e2a720..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/doc/SoftFloat-history.html b/addins/SoftFloat-3e/doc/SoftFloat-history.html
deleted file mode 100644
index daa48ca3b..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/doc/SoftFloat-source.html b/addins/SoftFloat-3e/doc/SoftFloat-source.html
deleted file mode 100644
index d4b85f7b0..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/doc/SoftFloat.html b/addins/SoftFloat-3e/doc/SoftFloat.html
deleted file mode 100644
index bb41770ec..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c b/addins/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c b/addins/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
deleted file mode 100644
index 3405b3ba4..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
deleted file mode 100644
index cb7424f43..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
deleted file mode 100644
index e7ea80258..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
deleted file mode 100644
index 7a9423bea..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
deleted file mode 100644
index d4e458a94..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
deleted file mode 100644
index ed6c2268f..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
deleted file mode 100644
index 1182be3c9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
deleted file mode 100644
index 00baf35f8..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
deleted file mode 100644
index ab6311ef2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
deleted file mode 100644
index 55ec25b58..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
deleted file mode 100644
index f838f02aa..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
deleted file mode 100644
index c1e242d23..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
deleted file mode 100644
index b21ba6603..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
deleted file mode 100644
index 6529d2ee5..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
deleted file mode 100644
index ea1d57a78..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
deleted file mode 100644
index cc3f0f42c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
deleted file mode 100644
index aa903bf80..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
deleted file mode 100644
index 1c1c2f4a0..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
deleted file mode 100644
index 4e87ff41f..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
deleted file mode 100644
index e1a875525..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c b/addins/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
deleted file mode 100644
index 1af349f3e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c b/addins/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
deleted file mode 100644
index 3115306be..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086-SSE/specialize.h b/addins/SoftFloat-3e/source/8086-SSE/specialize.h
deleted file mode 100644
index 5fe119a1e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c b/addins/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c b/addins/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
deleted file mode 100644
index 3405b3ba4..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
deleted file mode 100644
index cb7424f43..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToF128M.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
deleted file mode 100644
index e7ea80258..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
deleted file mode 100644
index 7a9423bea..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
deleted file mode 100644
index d4e458a94..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
deleted file mode 100644
index ed6c2268f..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c b/addins/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
deleted file mode 100644
index 1182be3c9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
deleted file mode 100644
index 00baf35f8..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
deleted file mode 100644
index ab6311ef2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
deleted file mode 100644
index 55ec25b58..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
deleted file mode 100644
index f838f02aa..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
deleted file mode 100644
index c1e242d23..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
deleted file mode 100644
index b21ba6603..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c b/addins/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
deleted file mode 100644
index 6529d2ee5..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
deleted file mode 100644
index ea1d57a78..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
deleted file mode 100644
index cc3f0f42c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNF128M.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
deleted file mode 100644
index 06554fbfe..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
deleted file mode 100644
index 46b9f5f2c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
deleted file mode 100644
index 89cc0fe97..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
deleted file mode 100644
index aeb6024ac..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c b/addins/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
deleted file mode 100644
index dabad4024..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/softfloat_raiseFlags.c b/addins/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
deleted file mode 100644
index 3115306be..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/8086/specialize.h b/addins/SoftFloat-3e/source/8086/specialize.h
deleted file mode 100644
index 5fe119a1e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
deleted file mode 100644
index 54a50dc35..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 5b698f664..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
deleted file mode 100644
index b22baa816..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
deleted file mode 100644
index 70f0cf1c6..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e..000000000
--- a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
deleted file mode 100644
index 1c6510c7e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
deleted file mode 100644
index e1bb1555a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
deleted file mode 100644
index 9bddee955..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
deleted file mode 100644
index 57fddd158..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
deleted file mode 100644
index 0b08e0039..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
deleted file mode 100644
index cab740358..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
deleted file mode 100644
index 83b91d3a9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
deleted file mode 100644
index 61046da3c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h b/addins/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h
deleted file mode 100644
index 2c481a259..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c
deleted file mode 100644
index 543400bc1..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 6cf1d1191..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c
deleted file mode 100644
index 4e8ede07f..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c
deleted file mode 100644
index f938c3f2d..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c
deleted file mode 100644
index 6cd4fc192..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c
deleted file mode 100644
index 7b38167f0..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c
deleted file mode 100644
index 14847029d..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c
deleted file mode 100644
index 82216cf41..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 2559fb6d2..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c
deleted file mode 100644
index 322d25ab1..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c
deleted file mode 100644
index 843c187a7..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c
deleted file mode 100644
index f5fe58770..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c
deleted file mode 100644
index 58726a357..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c
deleted file mode 100644
index 03761e433..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c
deleted file mode 100644
index f10ed0b62..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
deleted file mode 100644
index bd23c2473..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c
deleted file mode 100644
index 23e766a19..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c
deleted file mode 100644
index b8882d77c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c
deleted file mode 100644
index e33332874..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c
deleted file mode 100644
index c7508ae7c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c b/addins/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
deleted file mode 100644
index 8c6776381..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c b/addins/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
deleted file mode 100644
index 61046da3c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/ARM-VFPv2/specialize.h b/addins/SoftFloat-3e/source/ARM-VFPv2/specialize.h
deleted file mode 100644
index 5321f33bc..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_add.c b/addins/SoftFloat-3e/source/extF80M_add.c
deleted file mode 100644
index 02e415fcc..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_div.c b/addins/SoftFloat-3e/source/extF80M_div.c
deleted file mode 100644
index 4d543ce9e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_eq.c b/addins/SoftFloat-3e/source/extF80M_eq.c
deleted file mode 100644
index e17aa2435..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_eq_signaling.c b/addins/SoftFloat-3e/source/extF80M_eq_signaling.c
deleted file mode 100644
index c4a732239..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_le.c b/addins/SoftFloat-3e/source/extF80M_le.c
deleted file mode 100644
index e54eb9eea..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_le_quiet.c b/addins/SoftFloat-3e/source/extF80M_le_quiet.c
deleted file mode 100644
index 943f26206..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_lt.c b/addins/SoftFloat-3e/source/extF80M_lt.c
deleted file mode 100644
index cbc562f64..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_lt_quiet.c b/addins/SoftFloat-3e/source/extF80M_lt_quiet.c
deleted file mode 100644
index 650586d02..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_mul.c b/addins/SoftFloat-3e/source/extF80M_mul.c
deleted file mode 100644
index 281394f71..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_rem.c b/addins/SoftFloat-3e/source/extF80M_rem.c
deleted file mode 100644
index 4aff18ae9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_roundToInt.c b/addins/SoftFloat-3e/source/extF80M_roundToInt.c
deleted file mode 100644
index 2e8572957..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_sqrt.c b/addins/SoftFloat-3e/source/extF80M_sqrt.c
deleted file mode 100644
index 7ee91e0e5..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_sub.c b/addins/SoftFloat-3e/source/extF80M_sub.c
deleted file mode 100644
index 5d1895c7a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_f128M.c b/addins/SoftFloat-3e/source/extF80M_to_f128M.c
deleted file mode 100644
index da81e8d6b..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_f16.c b/addins/SoftFloat-3e/source/extF80M_to_f16.c
deleted file mode 100644
index 5ae38d0c4..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_f32.c b/addins/SoftFloat-3e/source/extF80M_to_f32.c
deleted file mode 100644
index 47cf224dc..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_f64.c b/addins/SoftFloat-3e/source/extF80M_to_f64.c
deleted file mode 100644
index 5f8f4aa29..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_i32.c b/addins/SoftFloat-3e/source/extF80M_to_i32.c
deleted file mode 100644
index 06394e341..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c b/addins/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
deleted file mode 100644
index 5f5cf599d..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c b/addins/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
deleted file mode 100644
index ec9b92844..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c b/addins/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
deleted file mode 100644
index e28b08d70..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c b/addins/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
deleted file mode 100644
index 87d80897b..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_div.c b/addins/SoftFloat-3e/source/extF80_div.c
deleted file mode 100644
index 28dfb13de..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_eq.c b/addins/SoftFloat-3e/source/extF80_eq.c
deleted file mode 100644
index efcbc3714..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_eq_signaling.c b/addins/SoftFloat-3e/source/extF80_eq_signaling.c
deleted file mode 100644
index 193b191e6..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_isSignalingNaN.c b/addins/SoftFloat-3e/source/extF80_isSignalingNaN.c
deleted file mode 100644
index 33d2abd7e..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_le.c b/addins/SoftFloat-3e/source/extF80_le.c
deleted file mode 100644
index 4e23c5142..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_le_quiet.c b/addins/SoftFloat-3e/source/extF80_le_quiet.c
deleted file mode 100644
index 9839e47f9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_lt.c b/addins/SoftFloat-3e/source/extF80_lt.c
deleted file mode 100644
index a4ac69fa6..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_lt_quiet.c b/addins/SoftFloat-3e/source/extF80_lt_quiet.c
deleted file mode 100644
index 00f4d4768..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_mul.c b/addins/SoftFloat-3e/source/extF80_mul.c
deleted file mode 100644
index 39ce4012c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_rem.c b/addins/SoftFloat-3e/source/extF80_rem.c
deleted file mode 100644
index 5ad977526..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_roundToInt.c b/addins/SoftFloat-3e/source/extF80_roundToInt.c
deleted file mode 100644
index 6c12d84c9..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_sqrt.c b/addins/SoftFloat-3e/source/extF80_sqrt.c
deleted file mode 100644
index af8c496e1..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_sub.c b/addins/SoftFloat-3e/source/extF80_sub.c
deleted file mode 100644
index 770c7563a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_f128.c b/addins/SoftFloat-3e/source/extF80_to_f128.c
deleted file mode 100644
index 4de90ae31..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_f16.c b/addins/SoftFloat-3e/source/extF80_to_f16.c
deleted file mode 100644
index 5919403fb..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_f32.c b/addins/SoftFloat-3e/source/extF80_to_f32.c
deleted file mode 100644
index 77fcfdc11..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_f64.c b/addins/SoftFloat-3e/source/extF80_to_f64.c
deleted file mode 100644
index 410d6622c..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_i32.c b/addins/SoftFloat-3e/source/extF80_to_i32.c
deleted file mode 100644
index 9acdc3c9b..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_i32_r_minMag.c b/addins/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
deleted file mode 100644
index 03224678a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_i64_r_minMag.c b/addins/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
deleted file mode 100644
index 8871d01d1..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_ui32.c b/addins/SoftFloat-3e/source/extF80_to_ui32.c
deleted file mode 100644
index 581297731..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c b/addins/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
deleted file mode 100644
index be2c53b1d..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c b/addins/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
deleted file mode 100644
index eca688c65..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_div.c b/addins/SoftFloat-3e/source/f128M_div.c
deleted file mode 100644
index b443548f5..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_eq.c b/addins/SoftFloat-3e/source/f128M_eq.c
deleted file mode 100644
index 497fdbf6f..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_eq_signaling.c b/addins/SoftFloat-3e/source/f128M_eq_signaling.c
deleted file mode 100644
index a9fa4d510..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_le.c b/addins/SoftFloat-3e/source/f128M_le.c
deleted file mode 100644
index 7306e45c3..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_le_quiet.c b/addins/SoftFloat-3e/source/f128M_le_quiet.c
deleted file mode 100644
index d9e442942..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_lt.c b/addins/SoftFloat-3e/source/f128M_lt.c
deleted file mode 100644
index d2f797fea..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_lt_quiet.c b/addins/SoftFloat-3e/source/f128M_lt_quiet.c
deleted file mode 100644
index adbddea71..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_mul.c b/addins/SoftFloat-3e/source/f128M_mul.c
deleted file mode 100644
index 4b8292a27..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_mulAdd.c b/addins/SoftFloat-3e/source/f128M_mulAdd.c
deleted file mode 100644
index 2b0b7fe26..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_rem.c b/addins/SoftFloat-3e/source/f128M_rem.c
deleted file mode 100644
index 39aafdd6a..000000000
--- a/addins/SoftFloat-3e/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/addins/SoftFloat-3e/source/f128M_roundToInt.c b/addins/SoftFloat-3e/source/f128M_roundToInt.c
deleted file mode 100644
index b96d742b2..000000000
--- a/addins/SoftFloat-3e/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
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void
- f128M_roundToInt(
- const float128_t *aPtr,
- uint_fast8_t roundingMode,
- bool exact,
- float128_t *zPtr
- )
-{
-
- *zPtr = f128_roundToInt( *aPtr, roundingMode, exact );
-
-}
-
-#else
-
-void
- f128M_roundToInt(
- const float128_t *aPtr,
- uint_fast8_t roundingMode,
- bool exact,
- float128_t *zPtr
- )
-{
- const uint32_t *aWPtr;
- uint32_t *zWPtr;
- uint32_t ui96;
- int32_t exp;
- uint32_t sigExtra;
- bool sign;
- uint_fast8_t bitPos;
- bool roundNear;
- unsigned int index, lastIndex;
- bool extra;
- uint32_t wordA, bit, wordZ;
- uint_fast8_t carry;
- uint32_t extrasMask;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- ui96 = aWPtr[indexWordHi( 4 )];
- exp = expF128UI96( ui96 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp < 0x3FFF ) {
- zWPtr[indexWord( 4, 2 )] = 0;
- zWPtr[indexWord( 4, 1 )] = 0;
- zWPtr[indexWord( 4, 0 )] = 0;
- sigExtra = aWPtr[indexWord( 4, 2 )];
- if ( !sigExtra ) {
- sigExtra = aWPtr[indexWord( 4, 1 )] | aWPtr[indexWord( 4, 0 )];
- }
- if ( !sigExtra && !(ui96 & 0x7FFFFFFF) ) goto ui96;
- if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
- sign = signF128UI96( ui96 );
- switch ( roundingMode ) {
- case softfloat_round_near_even:
- if ( !fracF128UI96( ui96 ) && !sigExtra ) break;
- case softfloat_round_near_maxMag:
- if ( exp == 0x3FFE ) goto mag1;
- break;
- case softfloat_round_min:
- if ( sign ) goto mag1;
- break;
- case softfloat_round_max:
- if ( !sign ) goto mag1;
- break;
-#ifdef SOFTFLOAT_ROUND_ODD
- case softfloat_round_odd:
- goto mag1;
-#endif
- }
- ui96 = packToF128UI96( sign, 0, 0 );
- goto ui96;
- mag1:
- ui96 = packToF128UI96( sign, 0x3FFF, 0 );
- goto ui96;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( 0x406F <= exp ) {
- if (
- (exp == 0x7FFF)
- && (fracF128UI96( ui96 )
- || (aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )]))
- ) {
- softfloat_propagateNaNF128M( aWPtr, 0, zWPtr );
- return;
- }
- zWPtr[indexWord( 4, 2 )] = aWPtr[indexWord( 4, 2 )];
- zWPtr[indexWord( 4, 1 )] = aWPtr[indexWord( 4, 1 )];
- zWPtr[indexWord( 4, 0 )] = aWPtr[indexWord( 4, 0 )];
- goto ui96;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- bitPos = 0x406F - exp;
- roundNear =
- (roundingMode == softfloat_round_near_maxMag)
- || (roundingMode == softfloat_round_near_even);
- bitPos -= roundNear;
- index = indexWordLo( 4 );
- lastIndex = indexWordHi( 4 );
- extra = 0;
- for (;;) {
- wordA = aWPtr[index];
- if ( bitPos < 32 ) break;
- if ( wordA ) extra = 1;
- zWPtr[index] = 0;
- index += wordIncr;
- bitPos -= 32;
- }
- bit = (uint32_t) 1<
-#include
-#include "platform.h"
-#include "internals.h"
-#include "specialize.h"
-#include "softfloat.h"
-
-#ifdef SOFTFLOAT_FAST_INT64
-
-void f128M_sqrt( const float128_t *aPtr, float128_t *zPtr )
-{
-
- *zPtr = f128_sqrt( *aPtr );
-
-}
-
-#else
-
-void f128M_sqrt( const float128_t *aPtr, float128_t *zPtr )
-{
- const uint32_t *aWPtr;
- uint32_t *zWPtr;
- uint32_t uiA96;
- bool signA;
- int32_t rawExpA;
- uint32_t rem[6];
- int32_t expA, expZ;
- uint64_t rem64;
- uint32_t sig32A, recipSqrt32, sig32Z, qs[3], q;
- uint64_t sig64Z;
- uint32_t term[5];
- uint64_t x64;
- uint32_t y[5], rem32;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- zWPtr = (uint32_t *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- signA = signF128UI96( uiA96 );
- rawExpA = expF128UI96( uiA96 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( rawExpA == 0x7FFF ) {
- if (
- fracF128UI96( uiA96 )
- || (aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- ) {
- softfloat_propagateNaNF128M( aWPtr, 0, zWPtr );
- return;
- }
- if ( ! signA ) goto copyA;
- goto invalid;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- expA = softfloat_shiftNormSigF128M( aWPtr, 13 - (rawExpA & 1), rem );
- if ( expA == -128 ) goto copyA;
- if ( signA ) goto invalid;
- /*------------------------------------------------------------------------
- | (`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) + 0x3FFE;
- expA &= 1;
- rem64 = (uint64_t) rem[indexWord( 4, 3 )]<<32 | rem[indexWord( 4, 2 )];
- if ( expA ) {
- if ( ! rawExpA ) {
- softfloat_shortShiftRight128M( rem, 1, rem );
- rem64 >>= 1;
- }
- sig32A = rem64>>29;
- } else {
- sig32A = rem64>>30;
- }
- recipSqrt32 = softfloat_approxRecipSqrt32_1( expA, sig32A );
- sig32Z = ((uint64_t) sig32A * recipSqrt32)>>32;
- if ( expA ) sig32Z >>= 1;
- qs[2] = sig32Z;
- rem64 -= (uint64_t) sig32Z * sig32Z;
- rem[indexWord( 4, 3 )] = rem64>>32;
- rem[indexWord( 4, 2 )] = rem64;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = ((uint32_t) (rem64>>2) * (uint64_t) recipSqrt32)>>32;
- sig64Z = ((uint64_t) sig32Z<<32) + ((uint64_t) q<<3);
- term[indexWord( 4, 3 )] = 0;
- term[indexWord( 4, 0 )] = 0;
- /*------------------------------------------------------------------------
- | (Repeating this loop is a rare occurrence.)
- *------------------------------------------------------------------------*/
- for (;;) {
- x64 = ((uint64_t) sig32Z<<32) + sig64Z;
- term[indexWord( 4, 2 )] = x64>>32;
- term[indexWord( 4, 1 )] = x64;
- softfloat_remStep128MBy32( rem, 29, term, q, y );
- rem32 = y[indexWord( 4, 3 )];
- if ( ! (rem32 & 0x80000000) ) break;
- --q;
- sig64Z -= 1<<3;
- }
- qs[1] = q;
- rem64 = (uint64_t) rem32<<32 | y[indexWord( 4, 2 )];
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = ((uint32_t) (rem64>>2) * (uint64_t) recipSqrt32)>>32;
- if ( rem64>>34 ) q += recipSqrt32;
- sig64Z <<= 1;
- /*------------------------------------------------------------------------
- | (Repeating this loop is a rare occurrence.)
- *------------------------------------------------------------------------*/
- for (;;) {
- x64 = sig64Z + (q>>26);
- term[indexWord( 4, 2 )] = x64>>32;
- term[indexWord( 4, 1 )] = x64;
- term[indexWord( 4, 0 )] = q<<6;
- softfloat_remStep128MBy32(
- y, 29, term, q, &rem[indexMultiwordHi( 6, 4 )] );
- rem32 = rem[indexWordHi( 6 )];
- if ( ! (rem32 & 0x80000000) ) break;
- --q;
- }
- qs[0] = q;
- rem64 = (uint64_t) rem32<<32 | rem[indexWord( 6, 4 )];
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- q = (((uint32_t) (rem64>>2) * (uint64_t) recipSqrt32)>>32) + 2;
- if ( rem64>>34 ) q += recipSqrt32;
- x64 = (uint64_t) q<<27;
- y[indexWord( 5, 0 )] = x64;
- x64 = ((uint64_t) qs[0]<<24) + (x64>>32);
- y[indexWord( 5, 1 )] = x64;
- x64 = ((uint64_t) qs[1]<<21) + (x64>>32);
- y[indexWord( 5, 2 )] = x64;
- x64 = ((uint64_t) qs[2]<<18) + (x64>>32);
- y[indexWord( 5, 3 )] = x64;
- y[indexWord( 5, 4 )] = x64>>32;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( (q & 0xF) <= 2 ) {
- q &= ~3;
- y[indexWordLo( 5 )] = q<<27;
- term[indexWord( 5, 4 )] = 0;
- term[indexWord( 5, 3 )] = 0;
- term[indexWord( 5, 2 )] = 0;
- term[indexWord( 5, 1 )] = q>>6;
- term[indexWord( 5, 0 )] = q<<26;
- softfloat_sub160M( y, term, term );
- rem[indexWord( 6, 1 )] = 0;
- rem[indexWord( 6, 0 )] = 0;
- softfloat_remStep160MBy32(
- &rem[indexMultiwordLo( 6, 5 )],
- 14,
- term,
- q,
- &rem[indexMultiwordLo( 6, 5 )]
- );
- rem32 = rem[indexWord( 6, 4 )];
- if ( rem32 & 0x80000000 ) {
- softfloat_sub1X160M( y );
- } else {
- if (
- rem32 || rem[indexWord( 6, 0 )] || rem[indexWord( 6, 1 )]
- || (rem[indexWord( 6, 3 )] | rem[indexWord( 6, 2 )])
- ) {
- y[indexWordLo( 5 )] |= 1;
- }
- }
- }
- softfloat_roundPackMToF128M( 0, expZ, y, 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/addins/SoftFloat-3e/source/f128M_sub.c b/addins/SoftFloat-3e/source/f128M_sub.c
deleted file mode 100644
index 5d65c799f..000000000
--- a/addins/SoftFloat-3e/source/f128M_sub.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 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
-
-void
- f128M_sub( 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_subMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
- } else {
- *zPtr = softfloat_addMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
- }
-#else
- magsFuncPtr =
- (signA == signB) ? softfloat_subMagsF128 : softfloat_addMagsF128;
- *zPtr = (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
-#endif
-
-}
-
-#else
-
-void
- f128M_sub( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr )
-{
-
- softfloat_addF128M(
- (const uint32_t *) aPtr,
- (const uint32_t *) bPtr,
- (uint32_t *) zPtr,
- true
- );
-
-}
-
-#endif
-
diff --git a/addins/SoftFloat-3e/source/f128M_to_extF80M.c b/addins/SoftFloat-3e/source/f128M_to_extF80M.c
deleted file mode 100644
index b0340c794..000000000
--- a/addins/SoftFloat-3e/source/f128M_to_extF80M.c
+++ /dev/null
@@ -1,101 +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_to_extF80M( const float128_t *aPtr, extFloat80_t *zPtr )
-{
-
- *zPtr = f128_to_extF80( *aPtr );
-
-}
-
-#else
-
-void f128M_to_extF80M( const float128_t *aPtr, extFloat80_t *zPtr )
-{
- const uint32_t *aWPtr;
- struct extFloat80M *zSPtr;
- uint32_t uiA96;
- bool sign;
- int32_t exp;
- struct commonNaN commonNaN;
- uint32_t sig[4];
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- zSPtr = (struct extFloat80M *) zPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- sign = signF128UI96( uiA96 );
- exp = expF128UI96( uiA96 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( softfloat_isNaNF128M( aWPtr ) ) {
- softfloat_f128MToCommonNaN( aWPtr, &commonNaN );
- softfloat_commonNaNToExtF80M( &commonNaN, zSPtr );
- return;
- }
- zSPtr->signExp = packToExtF80UI64( sign, 0x7FFF );
- zSPtr->signif = UINT64_C( 0x8000000000000000 );
- return;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp = softfloat_shiftNormSigF128M( aWPtr, 15, sig );
- if ( exp == -128 ) {
- zSPtr->signExp = packToExtF80UI64( sign, 0 );
- zSPtr->signif = 0;
- return;
- }
- if ( sig[indexWord( 4, 0 )] ) sig[indexWord( 4, 1 )] |= 1;
- softfloat_roundPackMToExtF80M(
- sign, exp, &sig[indexMultiwordHi( 4, 3 )], 80, zSPtr );
-
-}
-
-#endif
-
diff --git a/addins/SoftFloat-3e/source/f128M_to_f16.c b/addins/SoftFloat-3e/source/f128M_to_f16.c
deleted file mode 100644
index 95109a771..000000000
--- a/addins/SoftFloat-3e/source/f128M_to_f16.c
+++ /dev/null
@@ -1,113 +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 f128M_to_f16( const float128_t *aPtr )
-{
-
- return f128_to_f16( *aPtr );
-
-}
-
-#else
-
-float16_t f128M_to_f16( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
- bool sign;
- int32_t exp;
- uint32_t frac32;
- struct commonNaN commonNaN;
- uint16_t uiZ, frac16;
- union ui16_f16 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiA96 = aWPtr[indexWordHi( 4 )];
- sign = signF128UI96( uiA96 );
- exp = expF128UI96( uiA96 );
- frac32 =
- fracF128UI96( uiA96 )
- | ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
- | aWPtr[indexWord( 4, 0 )])
- != 0);
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( frac32 ) {
- softfloat_f128MToCommonNaN( aWPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF16UI( &commonNaN );
- } else {
- uiZ = packToF16UI( sign, 0x1F, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- frac16 = frac32>>2 | (frac32 & 3);
- if ( ! (exp | frac16) ) {
- uiZ = packToF16UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp -= 0x3FF1;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x40 ) exp = -0x40;
- }
- return softfloat_roundPackToF16( sign, exp, frac16 | 0x4000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/addins/SoftFloat-3e/source/f128M_to_f32.c b/addins/SoftFloat-3e/source/f128M_to_f32.c
deleted file mode 100644
index 4542deb0c..000000000
--- a/addins/SoftFloat-3e/source/f128M_to_f32.c
+++ /dev/null
@@ -1,109 +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 f128M_to_f32( const float128_t *aPtr )
-{
-
- return f128_to_f32( *aPtr );
-
-}
-
-#else
-
-float32_t f128M_to_f32( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
- bool sign;
- int32_t exp;
- uint64_t frac64;
- struct commonNaN commonNaN;
- uint32_t uiZ, frac32;
- union ui32_f32 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- sign = signF128UI96( uiA96 );
- exp = expF128UI96( uiA96 );
- frac64 =
- (uint64_t) fracF128UI96( uiA96 )<<32 | aWPtr[indexWord( 4, 2 )]
- | ((aWPtr[indexWord( 4, 1 )] | aWPtr[indexWord( 4, 0 )]) != 0);
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( frac64 ) {
- softfloat_f128MToCommonNaN( aWPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF32UI( &commonNaN );
- } else {
- uiZ = packToF32UI( sign, 0xFF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- frac32 = softfloat_shortShiftRightJam64( frac64, 18 );
- if ( ! (exp | frac32) ) {
- uiZ = packToF32UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp -= 0x3F81;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return softfloat_roundPackToF32( sign, exp, frac32 | 0x40000000 );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/addins/SoftFloat-3e/source/f128M_to_f64.c b/addins/SoftFloat-3e/source/f128M_to_f64.c
deleted file mode 100644
index 6213bb7f5..000000000
--- a/addins/SoftFloat-3e/source/f128M_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 f128M_to_f64( const float128_t *aPtr )
-{
-
- return f128_to_f64( *aPtr );
-
-}
-
-#else
-
-float64_t f128M_to_f64( const float128_t *aPtr )
-{
- const uint32_t *aWPtr;
- uint32_t uiA96;
- bool sign;
- int32_t exp;
- uint64_t frac64;
- struct commonNaN commonNaN;
- uint64_t uiZ;
- uint32_t frac32;
- union ui64_f64 uZ;
-
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- aWPtr = (const uint32_t *) aPtr;
- uiA96 = aWPtr[indexWordHi( 4 )];
- sign = signF128UI96( uiA96 );
- exp = expF128UI96( uiA96 );
- frac64 = (uint64_t) fracF128UI96( uiA96 )<<32 | aWPtr[indexWord( 4, 2 )];
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exp == 0x7FFF ) {
- if ( frac64 || aWPtr[indexWord( 4, 1 )] | aWPtr[indexWord( 4, 0 )] ) {
- softfloat_f128MToCommonNaN( aWPtr, &commonNaN );
- uiZ = softfloat_commonNaNToF64UI( &commonNaN );
- } else {
- uiZ = packToF64UI( sign, 0x7FF, 0 );
- }
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- frac32 = aWPtr[indexWord( 4, 1 )];
- frac64 = frac64<<14 | frac32>>18;
- if ( (frac32 & 0x0003FFFF) || aWPtr[indexWord( 4, 0 )] ) frac64 |= 1;
- if ( ! (exp | frac64) ) {
- uiZ = packToF64UI( sign, 0, 0 );
- goto uiZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- exp -= 0x3C01;
- if ( sizeof (int_fast16_t) < sizeof (int32_t) ) {
- if ( exp < -0x1000 ) exp = -0x1000;
- }
- return
- softfloat_roundPackToF64(
- sign, exp, frac64 | UINT64_C( 0x4000000000000000 ) );
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-
-#endif
-
diff --git a/addins/SoftFloat-3e/source/f128M_to_i32.c b/addins/SoftFloat-3e/source/f128M_to_i32.c
deleted file mode 100644
index 54cc6f603..000000000
--- a/addins/SoftFloat-3e/source/f128M_to_i32.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, 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