From 28514476ef8c824c3d189d98f23d0f8d23e496ea Mon Sep 17 00:00:00 2001
From: Andrew Kelley
Date: Mon, 31 Oct 2022 20:29:55 -0700
Subject: [PATCH 01/68] remove `-fstage1` option
After this commit, the self-hosted compiler does not offer the option to
use stage1 as a backend anymore.
---
CMakeLists.txt | 1 -
build.zig | 123 +-----------------------
lib/build_runner.zig | 6 --
lib/std/build.zig | 16 ----
lib/std/build/TranslateCStep.zig | 14 ---
src/Compilation.zig | 127 +++++++++----------------
src/Sema.zig | 2 -
src/link.zig | 23 +----
src/link/Coff.zig | 3 +-
src/link/Coff/lld.zig | 20 +---
src/link/Elf.zig | 23 +----
src/link/MachO.zig | 8 +-
src/link/MachO/zld.zig | 19 +---
src/link/Wasm.zig | 54 +++--------
src/main.zig | 25 +----
src/test.zig | 1 -
src/translate_c.zig | 27 +-----
src/translate_c/ast.zig | 48 ++++------
test/link/wasm/archive/build.zig | 1 -
test/link/wasm/bss/build.zig | 1 -
test/link/wasm/producers/build.zig | 1 -
test/link/wasm/segments/build.zig | 1 -
test/link/wasm/stack_pointer/build.zig | 1 -
test/link/wasm/type/build.zig | 1 -
test/tests.zig | 10 +-
25 files changed, 95 insertions(+), 461 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 015832913fd1..e289a79348c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1084,7 +1084,6 @@ set(ZIG_BUILD_ARGS
--zig-lib-dir "${CMAKE_SOURCE_DIR}/lib"
"-Dconfig_h=${ZIG_CONFIG_H_OUT}"
"-Denable-llvm"
- "-Denable-stage1"
${ZIG_RELEASE_ARG}
${ZIG_STATIC_ARG}
${ZIG_NO_LIB_ARG}
diff --git a/build.zig b/build.zig
index 69f65d2a5939..adab2b241177 100644
--- a/build.zig
+++ b/build.zig
@@ -69,9 +69,8 @@ pub fn build(b: *Builder) !void {
const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false;
- const have_stage1 = b.option(bool, "enable-stage1", "Include the stage1 compiler behind a feature flag") orelse false;
const static_llvm = b.option(bool, "static-llvm", "Disable integration with system-installed LLVM, Clang, LLD, and libc++") orelse false;
- const enable_llvm = b.option(bool, "enable-llvm", "Build self-hosted compiler with LLVM backend enabled") orelse (have_stage1 or static_llvm);
+ const enable_llvm = b.option(bool, "enable-llvm", "Build self-hosted compiler with LLVM backend enabled") orelse static_llvm;
const llvm_has_m68k = b.option(
bool,
"llvm-has-m68k",
@@ -133,7 +132,6 @@ pub fn build(b: *Builder) !void {
const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse (enable_llvm or only_c);
const sanitize_thread = b.option(bool, "sanitize-thread", "Enable thread-sanitization") orelse false;
const strip = b.option(bool, "strip", "Omit debug information") orelse false;
- const use_zig0 = b.option(bool, "zig0", "Bootstrap using zig0") orelse false;
const value_tracing = b.option(bool, "value-tracing", "Enable extra state tracking to help troubleshoot bugs in the compiler (using the std.debug.Trace API)") orelse false;
const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {
@@ -146,11 +144,7 @@ pub fn build(b: *Builder) !void {
target.ofmt = .c;
}
- const main_file: ?[]const u8 = mf: {
- if (!have_stage1) break :mf "src/main.zig";
- if (use_zig0) break :mf null;
- break :mf "src/stage1.zig";
- };
+ const main_file: ?[]const u8 = "src/main.zig";
const exe = b.addExecutable("zig", main_file);
@@ -264,92 +258,6 @@ pub fn build(b: *Builder) !void {
}
};
- if (have_stage1) {
- const softfloat = b.addStaticLibrary("softfloat", null);
- softfloat.setBuildMode(.ReleaseFast);
- softfloat.setTarget(target);
- softfloat.addIncludePath("deps/SoftFloat-3e-prebuilt");
- softfloat.addIncludePath("deps/SoftFloat-3e/source/8086");
- softfloat.addIncludePath("deps/SoftFloat-3e/source/include");
- softfloat.addCSourceFiles(&softfloat_sources, &[_][]const u8{ "-std=c99", "-O3" });
- softfloat.single_threaded = single_threaded;
-
- const zig0 = b.addExecutable("zig0", null);
- zig0.addCSourceFiles(&.{"src/stage1/zig0.cpp"}, &exe_cflags);
- zig0.addIncludePath("zig-cache/tmp"); // for config.h
- zig0.defineCMacro("ZIG_VERSION_MAJOR", b.fmt("{d}", .{zig_version.major}));
- zig0.defineCMacro("ZIG_VERSION_MINOR", b.fmt("{d}", .{zig_version.minor}));
- zig0.defineCMacro("ZIG_VERSION_PATCH", b.fmt("{d}", .{zig_version.patch}));
- zig0.defineCMacro("ZIG_VERSION_STRING", b.fmt("\"{s}\"", .{version}));
-
- for ([_]*std.build.LibExeObjStep{ zig0, exe, test_cases }) |artifact| {
- artifact.addIncludePath("src");
- artifact.addIncludePath("deps/SoftFloat-3e/source/include");
- artifact.addIncludePath("deps/SoftFloat-3e-prebuilt");
-
- artifact.defineCMacro("ZIG_LINK_MODE", "Static");
-
- artifact.addCSourceFiles(&stage1_sources, &exe_cflags);
- artifact.addCSourceFiles(&optimized_c_sources, &[_][]const u8{ "-std=c99", "-O3" });
-
- artifact.linkLibrary(softfloat);
- artifact.linkLibCpp();
- }
-
- try addStaticLlvmOptionsToExe(zig0);
-
- const zig1_obj_ext = target.getObjectFormat().fileExt(target.getCpuArch());
- const zig1_obj_path = b.pathJoin(&.{ "zig-cache", "tmp", b.fmt("zig1{s}", .{zig1_obj_ext}) });
- const zig1_compiler_rt_path = b.pathJoin(&.{ b.pathFromRoot("lib"), "std", "special", "compiler_rt.zig" });
-
- const zig1_obj = zig0.run();
- zig1_obj.addArgs(&.{
- "src/stage1.zig",
- "-target",
- try target.zigTriple(b.allocator),
- "-mcpu=baseline",
- "--name",
- "zig1",
- "--zig-lib-dir",
- b.pathFromRoot("lib"),
- b.fmt("-femit-bin={s}", .{b.pathFromRoot(zig1_obj_path)}),
- "-fcompiler-rt",
- "-lc",
- });
- {
- zig1_obj.addArgs(&.{ "--pkg-begin", "build_options" });
- zig1_obj.addFileSourceArg(exe_options.getSource());
- zig1_obj.addArgs(&.{ "--pkg-end", "--pkg-begin", "compiler_rt", zig1_compiler_rt_path, "--pkg-end" });
- }
- switch (mode) {
- .Debug => {},
- .ReleaseFast => {
- zig1_obj.addArg("-OReleaseFast");
- zig1_obj.addArg("-fstrip");
- },
- .ReleaseSafe => {
- zig1_obj.addArg("-OReleaseSafe");
- zig1_obj.addArg("-fstrip");
- },
- .ReleaseSmall => {
- zig1_obj.addArg("-OReleaseSmall");
- zig1_obj.addArg("-fstrip");
- },
- }
- if (single_threaded orelse false) {
- zig1_obj.addArg("-fsingle-threaded");
- }
-
- if (use_zig0) {
- exe.step.dependOn(&zig1_obj.step);
- exe.addObjectFile(zig1_obj_path);
- }
-
- // This is intentionally a dummy path. stage1.zig tries to @import("compiler_rt") in case
- // of being built by cmake. But when built by zig it's gonna get a compiler_rt so that
- // is pointless.
- exe.addPackagePath("compiler_rt", "src/empty.zig");
- }
if (cmake_cfg) |cfg| {
// Inside this code path, we have to coordinate with system packaged LLVM, Clang, and LLD.
// That means we also have to rely on stage1 compiled c++ files. We parse config.h to find
@@ -379,7 +287,6 @@ pub fn build(b: *Builder) !void {
exe_options.addOption(bool, "enable_tracy_callstack", tracy_callstack);
exe_options.addOption(bool, "enable_tracy_allocation", tracy_allocation);
exe_options.addOption(bool, "value_tracing", value_tracing);
- exe_options.addOption(bool, "have_stage1", have_stage1);
if (tracy) |tracy_path| {
const client_cpp = fs.path.join(
b.allocator,
@@ -414,7 +321,6 @@ pub fn build(b: *Builder) !void {
test_cases_options.addOption(bool, "enable_link_snapshots", enable_link_snapshots);
test_cases_options.addOption(bool, "skip_non_native", skip_non_native);
test_cases_options.addOption(bool, "skip_stage1", skip_stage1);
- test_cases_options.addOption(bool, "have_stage1", have_stage1);
test_cases_options.addOption(bool, "have_llvm", enable_llvm);
test_cases_options.addOption(bool, "llvm_has_m68k", llvm_has_m68k);
test_cases_options.addOption(bool, "llvm_has_csky", llvm_has_csky);
@@ -1010,31 +916,6 @@ const softfloat_sources = [_][]const u8{
"deps/SoftFloat-3e/source/ui64_to_extF80M.c",
};
-const stage1_sources = [_][]const u8{
- "src/stage1/analyze.cpp",
- "src/stage1/astgen.cpp",
- "src/stage1/bigfloat.cpp",
- "src/stage1/bigint.cpp",
- "src/stage1/buffer.cpp",
- "src/stage1/codegen.cpp",
- "src/stage1/errmsg.cpp",
- "src/stage1/error.cpp",
- "src/stage1/heap.cpp",
- "src/stage1/ir.cpp",
- "src/stage1/ir_print.cpp",
- "src/stage1/mem.cpp",
- "src/stage1/os.cpp",
- "src/stage1/parser.cpp",
- "src/stage1/range_set.cpp",
- "src/stage1/stage1.cpp",
- "src/stage1/target.cpp",
- "src/stage1/tokenizer.cpp",
- "src/stage1/util.cpp",
- "src/stage1/softfloat_ext.cpp",
-};
-const optimized_c_sources = [_][]const u8{
- "src/stage1/parse_f128.c",
-};
const zig_cpp_sources = [_][]const u8{
// These are planned to stay even when we are self-hosted.
"src/zig_llvm.cpp",
diff --git a/lib/build_runner.zig b/lib/build_runner.zig
index 510bae4a521e..735ddb9de185 100644
--- a/lib/build_runner.zig
+++ b/lib/build_runner.zig
@@ -183,10 +183,6 @@ pub fn main() !void {
builder.enable_darling = true;
} else if (mem.eql(u8, arg, "-fno-darling")) {
builder.enable_darling = false;
- } else if (mem.eql(u8, arg, "-fstage1")) {
- builder.use_stage1 = true;
- } else if (mem.eql(u8, arg, "-fno-stage1")) {
- builder.use_stage1 = false;
} else if (mem.eql(u8, arg, "-freference-trace")) {
builder.reference_trace = 256;
} else if (mem.startsWith(u8, arg, "-freference-trace=")) {
@@ -318,8 +314,6 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
try out_stream.writeAll(
\\
\\Advanced Options:
- \\ -fstage1 Force using bootstrap compiler as the codegen backend
- \\ -fno-stage1 Prevent using bootstrap compiler as the codegen backend
\\ -freference-trace[=num] How many lines of reference trace should be shown per compile error
\\ -fno-reference-trace Disable reference trace
\\ --build-file [file] Override path to build.zig
diff --git a/lib/std/build.zig b/lib/std/build.zig
index 77f0779c603e..73487d8ea9ab 100644
--- a/lib/std/build.zig
+++ b/lib/std/build.zig
@@ -46,7 +46,6 @@ pub const Builder = struct {
prominent_compile_errors: bool,
color: enum { auto, on, off } = .auto,
reference_trace: ?u32 = null,
- use_stage1: ?bool = null,
invalid_user_input: bool,
zig_exe: []const u8,
default_step: *Step,
@@ -1621,7 +1620,6 @@ pub const LibExeObjStep = struct {
stack_size: ?u64 = null,
want_lto: ?bool = null,
- use_stage1: ?bool = null,
use_llvm: ?bool = null,
use_lld: ?bool = null,
@@ -2467,20 +2465,6 @@ pub const LibExeObjStep = struct {
try zig_args.append(try std.fmt.allocPrint(builder.allocator, "-freference-trace={d}", .{some}));
}
- if (self.use_stage1) |stage1| {
- if (stage1) {
- try zig_args.append("-fstage1");
- } else {
- try zig_args.append("-fno-stage1");
- }
- } else if (builder.use_stage1) |stage1| {
- if (stage1) {
- try zig_args.append("-fstage1");
- } else {
- try zig_args.append("-fno-stage1");
- }
- }
-
if (self.use_llvm) |use_llvm| {
if (use_llvm) {
try zig_args.append("-fLLVM");
diff --git a/lib/std/build/TranslateCStep.zig b/lib/std/build/TranslateCStep.zig
index 7d7f2a62a46b..1f9bee463c74 100644
--- a/lib/std/build/TranslateCStep.zig
+++ b/lib/std/build/TranslateCStep.zig
@@ -21,7 +21,6 @@ output_dir: ?[]const u8,
out_basename: []const u8,
target: CrossTarget = CrossTarget{},
output_file: build.GeneratedFile,
-use_stage1: ?bool = null,
pub fn create(builder: *Builder, source: build.FileSource) *TranslateCStep {
const self = builder.allocator.create(TranslateCStep) catch unreachable;
@@ -92,19 +91,6 @@ fn make(step: *Step) !void {
try argv_list.append("-D");
try argv_list.append(c_macro);
}
- if (self.use_stage1) |stage1| {
- if (stage1) {
- try argv_list.append("-fstage1");
- } else {
- try argv_list.append("-fno-stage1");
- }
- } else if (self.builder.use_stage1) |stage1| {
- if (stage1) {
- try argv_list.append("-fstage1");
- } else {
- try argv_list.append("-fno-stage1");
- }
- }
try argv_list.append(self.source.getPath(self.builder));
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 48cf246287cb..a0b78394e711 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -935,7 +935,6 @@ pub const InitOptions = struct {
use_llvm: ?bool = null,
use_lld: ?bool = null,
use_clang: ?bool = null,
- use_stage1: ?bool = null,
single_threaded: ?bool = null,
strip: ?bool = null,
formatted_panics: ?bool = null,
@@ -1133,9 +1132,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
const comp = try arena.create(Compilation);
const root_name = try arena.dupeZ(u8, options.root_name);
- const use_stage1 = options.use_stage1 orelse false;
- if (use_stage1 and !build_options.have_stage1) return error.ZigCompilerBuiltWithoutStage1;
-
// Make a decision on whether to use LLVM or our own backend.
const use_llvm = build_options.have_llvm and blk: {
if (options.use_llvm) |explicit|
@@ -1149,11 +1145,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
if (options.main_pkg == null)
break :blk false;
- // The stage1 compiler depends on the stage1 C++ LLVM backend
- // to compile zig code.
- if (use_stage1)
- break :blk true;
-
// If LLVM does not support the target, then we can't use it.
if (!target_util.hasLlvmSupport(options.target, options.target.ofmt))
break :blk false;
@@ -1181,8 +1172,10 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
// compiler state, the second clause here can be removed so that incremental
// cache mode is used for LLVM backend too. We need some fuzz testing before
// that can be enabled.
- const cache_mode = if ((use_stage1 and !options.disable_lld_caching) or
- (use_llvm and !options.disable_lld_caching)) CacheMode.whole else options.cache_mode;
+ const cache_mode = if (use_llvm and !options.disable_lld_caching)
+ CacheMode.whole
+ else
+ options.cache_mode;
const tsan = options.want_tsan orelse false;
// TSAN is implemented in C++ so it requires linking libc++.
@@ -1545,7 +1538,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
// Synchronize with other matching comments: ZigOnlyHashStuff
hash.add(valgrind);
hash.add(single_threaded);
- hash.add(use_stage1);
hash.add(use_llvm);
hash.add(dll_export_fns);
hash.add(options.is_test);
@@ -1587,9 +1579,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
.handle = artifact_dir,
.path = try options.local_cache_directory.join(arena, &[_][]const u8{artifact_sub_dir}),
};
- log.debug("zig_cache_artifact_directory='{?s}' use_stage1={}", .{
- zig_cache_artifact_directory.path, use_stage1,
- });
const builtin_pkg = try Package.createWithDir(
gpa,
@@ -1907,7 +1896,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
.subsystem = options.subsystem,
.is_test = options.is_test,
.wasi_exec_model = wasi_exec_model,
- .use_stage1 = use_stage1,
.hash_style = options.hash_style,
.enable_link_snapshots = options.enable_link_snapshots,
.native_darwin_sdk = options.native_darwin_sdk,
@@ -2344,7 +2332,6 @@ pub fn update(comp: *Compilation) !void {
comp.c_object_work_queue.writeItemAssumeCapacity(key);
}
- const use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1;
if (comp.bin_file.options.module) |module| {
module.compile_log_text.shrinkAndFree(module.gpa, 0);
module.generation += 1;
@@ -2360,7 +2347,7 @@ pub fn update(comp: *Compilation) !void {
// import_table here.
// Likewise, in the case of `zig test`, the test runner is the root source file,
// and so there is nothing to import the main file.
- if (use_stage1 or comp.bin_file.options.is_test) {
+ if (comp.bin_file.options.is_test) {
_ = try module.importPkg(module.main_pkg);
}
@@ -2374,21 +2361,19 @@ pub fn update(comp: *Compilation) !void {
comp.astgen_work_queue.writeItemAssumeCapacity(value);
}
- if (!use_stage1) {
- // Put a work item in for checking if any files used with `@embedFile` changed.
- {
- try comp.embed_file_work_queue.ensureUnusedCapacity(module.embed_table.count());
- var it = module.embed_table.iterator();
- while (it.next()) |entry| {
- const embed_file = entry.value_ptr.*;
- comp.embed_file_work_queue.writeItemAssumeCapacity(embed_file);
- }
+ // Put a work item in for checking if any files used with `@embedFile` changed.
+ {
+ try comp.embed_file_work_queue.ensureUnusedCapacity(module.embed_table.count());
+ var it = module.embed_table.iterator();
+ while (it.next()) |entry| {
+ const embed_file = entry.value_ptr.*;
+ comp.embed_file_work_queue.writeItemAssumeCapacity(embed_file);
}
+ }
- try comp.work_queue.writeItem(.{ .analyze_pkg = std_pkg });
- if (comp.bin_file.options.is_test) {
- try comp.work_queue.writeItem(.{ .analyze_pkg = module.main_pkg });
- }
+ try comp.work_queue.writeItem(.{ .analyze_pkg = std_pkg });
+ if (comp.bin_file.options.is_test) {
+ try comp.work_queue.writeItem(.{ .analyze_pkg = module.main_pkg });
}
}
@@ -2400,36 +2385,34 @@ pub fn update(comp: *Compilation) !void {
try comp.performAllTheWork(main_progress_node);
- if (!use_stage1) {
- if (comp.bin_file.options.module) |module| {
- if (comp.bin_file.options.is_test and comp.totalErrorCount() == 0) {
- // The `test_functions` decl has been intentionally postponed until now,
- // at which point we must populate it with the list of test functions that
- // have been discovered and not filtered out.
- try module.populateTestFunctions(main_progress_node);
- }
+ if (comp.bin_file.options.module) |module| {
+ if (comp.bin_file.options.is_test and comp.totalErrorCount() == 0) {
+ // The `test_functions` decl has been intentionally postponed until now,
+ // at which point we must populate it with the list of test functions that
+ // have been discovered and not filtered out.
+ try module.populateTestFunctions(main_progress_node);
+ }
- // Process the deletion set. We use a while loop here because the
- // deletion set may grow as we call `clearDecl` within this loop,
- // and more unreferenced Decls are revealed.
- while (module.deletion_set.count() != 0) {
- const decl_index = module.deletion_set.keys()[0];
- const decl = module.declPtr(decl_index);
- assert(decl.deletion_flag);
- assert(decl.dependants.count() == 0);
- const is_anon = if (decl.zir_decl_index == 0) blk: {
- break :blk decl.src_namespace.anon_decls.swapRemove(decl_index);
- } else false;
-
- try module.clearDecl(decl_index, null);
-
- if (is_anon) {
- module.destroyDecl(decl_index);
- }
- }
+ // Process the deletion set. We use a while loop here because the
+ // deletion set may grow as we call `clearDecl` within this loop,
+ // and more unreferenced Decls are revealed.
+ while (module.deletion_set.count() != 0) {
+ const decl_index = module.deletion_set.keys()[0];
+ const decl = module.declPtr(decl_index);
+ assert(decl.deletion_flag);
+ assert(decl.dependants.count() == 0);
+ const is_anon = if (decl.zir_decl_index == 0) blk: {
+ break :blk decl.src_namespace.anon_decls.swapRemove(decl_index);
+ } else false;
+
+ try module.clearDecl(decl_index, null);
- try module.processExports();
+ if (is_anon) {
+ module.destroyDecl(decl_index);
+ }
}
+
+ try module.processExports();
}
if (comp.totalErrorCount() != 0) {
@@ -2536,11 +2519,8 @@ fn flush(comp: *Compilation, prog_node: *std.Progress.Node) !void {
};
comp.link_error_flags = comp.bin_file.errorFlags();
- const use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1;
- if (!use_stage1) {
- if (comp.bin_file.options.module) |module| {
- try link.File.C.flushEmitH(module);
- }
+ if (comp.bin_file.options.module) |module| {
+ try link.File.C.flushEmitH(module);
}
}
@@ -2610,7 +2590,6 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes
// Synchronize with other matching comments: ZigOnlyHashStuff
man.hash.add(comp.bin_file.options.valgrind);
man.hash.add(comp.bin_file.options.single_threaded);
- man.hash.add(comp.bin_file.options.use_stage1);
man.hash.add(comp.bin_file.options.use_llvm);
man.hash.add(comp.bin_file.options.dll_export_fns);
man.hash.add(comp.bin_file.options.is_test);
@@ -3010,8 +2989,6 @@ pub fn performAllTheWork(
comp.work_queue_wait_group.reset();
defer comp.work_queue_wait_group.wait();
- const use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1;
-
{
const astgen_frame = tracy.namedFrame("astgen");
defer astgen_frame.end();
@@ -3056,7 +3033,7 @@ pub fn performAllTheWork(
}
}
- if (!use_stage1) {
+ {
const outdated_and_deleted_decls_frame = tracy.namedFrame("outdated_and_deleted_decls");
defer outdated_and_deleted_decls_frame.end();
@@ -3064,15 +3041,6 @@ pub fn performAllTheWork(
if (comp.bin_file.options.module) |mod| {
try mod.processOutdatedAndDeletedDecls();
}
- } else if (comp.bin_file.options.module) |mod| {
- // If there are any AstGen compile errors, report them now to avoid
- // hitting stage1 bugs.
- if (mod.failed_files.count() != 0) {
- return;
- }
- comp.updateStage1Module(main_progress_node) catch |err| {
- fatal("unable to build stage1 zig object: {s}", .{@errorName(err)});
- };
}
if (comp.bin_file.options.module) |mod| {
@@ -3598,10 +3566,7 @@ pub fn cImport(comp: *Compilation, c_src: []const u8) !CImportResult {
var man = comp.obtainCObjectCacheManifest();
defer man.deinit();
- const use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1;
-
man.hash.add(@as(u16, 0xb945)); // Random number to distinguish translate-c from compiling C objects
- man.hash.add(use_stage1);
man.hash.addBytes(c_src);
// If the previous invocation resulted in clang errors, we will see a hit
@@ -3665,7 +3630,6 @@ pub fn cImport(comp: *Compilation, c_src: []const u8) !CImportResult {
new_argv.ptr + new_argv.len,
&clang_errors,
c_headers_dir_path_z,
- use_stage1,
) catch |err| switch (err) {
error.OutOfMemory => return error.OutOfMemory,
error.ASTUnitFailure => {
@@ -5097,8 +5061,6 @@ pub fn dump_argv(argv: []const []const u8) void {
}
pub fn getZigBackend(comp: Compilation) std.builtin.CompilerBackend {
- const use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1;
- if (use_stage1) return .stage1;
if (build_options.have_llvm and comp.bin_file.options.use_llvm) return .stage2_llvm;
const target = comp.bin_file.options.target;
if (target.ofmt == .c) return .stage2_c;
@@ -5394,7 +5356,6 @@ fn buildOutputFromZig(
.link_mode = .Static,
.function_sections = true,
.no_builtin = true,
- .use_stage1 = build_options.have_stage1 and comp.bin_file.options.use_stage1,
.want_sanitize_c = false,
.want_stack_check = false,
.want_stack_protector = 0,
diff --git a/src/Sema.zig b/src/Sema.zig
index debd18005abb..a85c80826edc 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -2121,8 +2121,6 @@ fn failWithUseOfAsync(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError
const msg = msg: {
const msg = try sema.errMsg(block, src, "async has not been implemented in the self-hosted compiler yet", .{});
errdefer msg.destroy(sema.gpa);
-
- try sema.errNote(block, src, msg, "to use async enable the stage1 compiler with either '-fstage1' or by setting '.use_stage1 = true` in your 'build.zig' script", .{});
break :msg msg;
};
return sema.failWithOwnedErrorMsg(msg);
diff --git a/src/link.zig b/src/link.zig
index 4dfcf171af15..e57ffd425662 100644
--- a/src/link.zig
+++ b/src/link.zig
@@ -155,7 +155,6 @@ pub const Options = struct {
build_id: bool,
disable_lld_caching: bool,
is_test: bool,
- use_stage1: bool,
hash_style: HashStyle,
major_subsystem_version: ?u32,
minor_subsystem_version: ?u32,
@@ -293,8 +292,7 @@ pub const File = struct {
return &(try MachO.openPath(allocator, options)).base;
}
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
- if (use_stage1 or options.emit == null) {
+ if (options.emit == null) {
return switch (options.target.ofmt) {
.coff => &(try Coff.createEmpty(allocator, options)).base,
.elf => &(try Elf.createEmpty(allocator, options)).base,
@@ -983,24 +981,7 @@ pub const File = struct {
// If there is no Zig code to compile, then we should skip flushing the output file
// because it will not be part of the linker line anyway.
- const module_obj_path: ?[]const u8 = if (base.options.module) |module| blk: {
- const use_stage1 = build_options.have_stage1 and base.options.use_stage1;
- if (use_stage1) {
- const obj_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = base.options.root_name,
- .target = base.options.target,
- .output_mode = .Obj,
- });
- switch (base.options.cache_mode) {
- .incremental => break :blk try module.zig_cache_artifact_directory.join(
- arena,
- &[_][]const u8{obj_basename},
- ),
- .whole => break :blk try fs.path.join(arena, &.{
- fs.path.dirname(full_out_path_z).?, obj_basename,
- }),
- }
- }
+ const module_obj_path: ?[]const u8 = if (base.options.module != null) blk: {
try base.flushModule(comp, prog_node);
const dirname = fs.path.dirname(full_out_path_z) orelse ".";
diff --git a/src/link/Coff.zig b/src/link/Coff.zig
index 3f89de960881..aa94704c5451 100644
--- a/src/link/Coff.zig
+++ b/src/link/Coff.zig
@@ -248,8 +248,7 @@ pub fn createEmpty(gpa: Allocator, options: link.Options) !*Coff {
};
const use_llvm = build_options.have_llvm and options.use_llvm;
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
- if (use_llvm and !use_stage1) {
+ if (use_llvm) {
self.llvm_object = try LlvmObject.create(gpa, options);
}
return self;
diff --git a/src/link/Coff/lld.zig b/src/link/Coff/lld.zig
index 7c53ef30bdb4..c1edb55b8092 100644
--- a/src/link/Coff/lld.zig
+++ b/src/link/Coff/lld.zig
@@ -30,25 +30,7 @@ pub fn linkWithLLD(self: *Coff, comp: *Compilation, prog_node: *std.Progress.Nod
// If there is no Zig code to compile, then we should skip flushing the output file because it
// will not be part of the linker line anyway.
- const module_obj_path: ?[]const u8 = if (self.base.options.module) |module| blk: {
- const use_stage1 = build_options.have_stage1 and self.base.options.use_stage1;
- if (use_stage1) {
- const obj_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = self.base.options.root_name,
- .target = self.base.options.target,
- .output_mode = .Obj,
- });
- switch (self.base.options.cache_mode) {
- .incremental => break :blk try module.zig_cache_artifact_directory.join(
- arena,
- &[_][]const u8{obj_basename},
- ),
- .whole => break :blk try fs.path.join(arena, &.{
- fs.path.dirname(full_out_path).?, obj_basename,
- }),
- }
- }
-
+ const module_obj_path: ?[]const u8 = if (self.base.options.module != null) blk: {
try self.flushModule(comp, prog_node);
if (fs.path.dirname(full_out_path)) |dirname| {
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index f98e33e58b2a..b7968b3f1c10 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -328,8 +328,7 @@ pub fn createEmpty(gpa: Allocator, options: link.Options) !*Elf {
.page_size = page_size,
};
const use_llvm = build_options.have_llvm and options.use_llvm;
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
- if (use_llvm and !use_stage1) {
+ if (use_llvm) {
self.llvm_object = try LlvmObject.create(gpa, options);
}
return self;
@@ -1228,25 +1227,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v
// If there is no Zig code to compile, then we should skip flushing the output file because it
// will not be part of the linker line anyway.
- const module_obj_path: ?[]const u8 = if (self.base.options.module) |module| blk: {
- // stage1 puts the object file in the cache directory.
- if (self.base.options.use_stage1) {
- const obj_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = self.base.options.root_name,
- .target = self.base.options.target,
- .output_mode = .Obj,
- });
- switch (self.base.options.cache_mode) {
- .incremental => break :blk try module.zig_cache_artifact_directory.join(
- arena,
- &[_][]const u8{obj_basename},
- ),
- .whole => break :blk try fs.path.join(arena, &.{
- fs.path.dirname(full_out_path).?, obj_basename,
- }),
- }
- }
-
+ const module_obj_path: ?[]const u8 = if (self.base.options.module != null) blk: {
try self.flushModule(comp, prog_node);
if (fs.path.dirname(full_out_path)) |dirname| {
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index fb651edbe38e..8c9e5329f2ec 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -290,8 +290,7 @@ pub const Export = struct {
pub fn openPath(allocator: Allocator, options: link.Options) !*MachO {
assert(options.target.ofmt == .macho);
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
- if (use_stage1 or options.emit == null or options.module == null) {
+ if (options.emit == null or options.module == null) {
return createEmpty(allocator, options);
}
@@ -377,7 +376,6 @@ pub fn createEmpty(gpa: Allocator, options: link.Options) !*MachO {
const cpu_arch = options.target.cpu.arch;
const page_size: u16 = if (cpu_arch == .aarch64) 0x4000 else 0x1000;
const use_llvm = build_options.have_llvm and options.use_llvm;
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
const self = try gpa.create(MachO);
errdefer gpa.destroy(self);
@@ -390,13 +388,13 @@ pub fn createEmpty(gpa: Allocator, options: link.Options) !*MachO {
.file = null,
},
.page_size = page_size,
- .mode = if (use_stage1 or use_llvm or options.module == null or options.cache_mode == .whole)
+ .mode = if (use_llvm or options.module == null or options.cache_mode == .whole)
.one_shot
else
.incremental,
};
- if (use_llvm and !use_stage1) {
+ if (use_llvm) {
self.llvm_object = try LlvmObject.create(gpa, options);
}
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig
index 5baaf71f18b0..9baecd326a3c 100644
--- a/src/link/MachO/zld.zig
+++ b/src/link/MachO/zld.zig
@@ -3746,24 +3746,7 @@ pub fn linkWithZld(macho_file: *MachO, comp: *Compilation, prog_node: *std.Progr
// If there is no Zig code to compile, then we should skip flushing the output file because it
// will not be part of the linker line anyway.
- const module_obj_path: ?[]const u8 = if (options.module) |module| blk: {
- if (options.use_stage1) {
- const obj_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = options.root_name,
- .target = target,
- .output_mode = .Obj,
- });
- switch (options.cache_mode) {
- .incremental => break :blk try module.zig_cache_artifact_directory.join(
- arena,
- &[_][]const u8{obj_basename},
- ),
- .whole => break :blk try fs.path.join(arena, &.{
- fs.path.dirname(full_out_path).?, obj_basename,
- }),
- }
- }
-
+ const module_obj_path: ?[]const u8 = if (options.module != null) blk: {
try macho_file.flushModule(comp, prog_node);
if (fs.path.dirname(full_out_path)) |dirname| {
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index adcb539bd65a..4a9db75c9806 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -382,8 +382,7 @@ pub fn createEmpty(gpa: Allocator, options: link.Options) !*Wasm {
};
const use_llvm = build_options.have_llvm and options.use_llvm;
- const use_stage1 = build_options.have_stage1 and options.use_stage1;
- if (use_llvm and !use_stage1) {
+ if (use_llvm) {
wasm.llvm_object = try LlvmObject.create(gpa, options);
}
return wasm;
@@ -2986,25 +2985,7 @@ fn linkWithLLD(wasm: *Wasm, comp: *Compilation, prog_node: *std.Progress.Node) !
// If there is no Zig code to compile, then we should skip flushing the output file because it
// will not be part of the linker line anyway.
- const module_obj_path: ?[]const u8 = if (wasm.base.options.module) |mod| blk: {
- const use_stage1 = build_options.have_stage1 and wasm.base.options.use_stage1;
- if (use_stage1) {
- const obj_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = wasm.base.options.root_name,
- .target = wasm.base.options.target,
- .output_mode = .Obj,
- });
- switch (wasm.base.options.cache_mode) {
- .incremental => break :blk try mod.zig_cache_artifact_directory.join(
- arena,
- &[_][]const u8{obj_basename},
- ),
- .whole => break :blk try fs.path.join(arena, &.{
- fs.path.dirname(full_out_path).?, obj_basename,
- }),
- }
- }
-
+ const module_obj_path: ?[]const u8 = if (wasm.base.options.module != null) blk: {
try wasm.flushModule(comp, prog_node);
if (fs.path.dirname(full_out_path)) |dirname| {
@@ -3198,26 +3179,19 @@ fn linkWithLLD(wasm: *Wasm, comp: *Compilation, prog_node: *std.Progress.Node) !
if (wasm.base.options.module) |mod| {
// when we use stage1, we use the exports that stage1 provided us.
// For stage2, we can directly retrieve them from the module.
- const use_stage1 = build_options.have_stage1 and wasm.base.options.use_stage1;
- if (use_stage1) {
- for (comp.export_symbol_names.items) |symbol_name| {
- try argv.append(try std.fmt.allocPrint(arena, "--export={s}", .{symbol_name}));
- }
- } else {
- const skip_export_non_fn = target.os.tag == .wasi and
- wasm.base.options.wasi_exec_model == .command;
- for (mod.decl_exports.values()) |exports| {
- for (exports.items) |exprt| {
- const exported_decl = mod.declPtr(exprt.exported_decl);
- if (skip_export_non_fn and exported_decl.ty.zigTypeTag() != .Fn) {
- // skip exporting symbols when we're building a WASI command
- // and the symbol is not a function
- continue;
- }
- const symbol_name = exported_decl.name;
- const arg = try std.fmt.allocPrint(arena, "--export={s}", .{symbol_name});
- try argv.append(arg);
+ const skip_export_non_fn = target.os.tag == .wasi and
+ wasm.base.options.wasi_exec_model == .command;
+ for (mod.decl_exports.values()) |exports| {
+ for (exports.items) |exprt| {
+ const exported_decl = mod.declPtr(exprt.exported_decl);
+ if (skip_export_non_fn and exported_decl.ty.zigTypeTag() != .Fn) {
+ // skip exporting symbols when we're building a WASI command
+ // and the symbol is not a function
+ continue;
}
+ const symbol_name = exported_decl.name;
+ const arg = try std.fmt.allocPrint(arena, "--export={s}", .{symbol_name});
+ try argv.append(arg);
}
}
}
diff --git a/src/main.zig b/src/main.zig
index 45d6b5bffc2f..c5da8e3a884e 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -394,8 +394,6 @@ const usage_build_generic =
\\ -fno-LLVM Prevent using LLVM as the codegen backend
\\ -fClang Force using Clang as the C/C++ compilation backend
\\ -fno-Clang Prevent using Clang as the C/C++ compilation backend
- \\ -fstage1 Force using bootstrap compiler as the codegen backend
- \\ -fno-stage1 Prevent using bootstrap compiler as the codegen backend
\\ -freference-trace[=num] How many lines of reference trace should be shown per compile error
\\ -fno-reference-trace Disable reference trace
\\ -fsingle-threaded Code assumes there is only one thread
@@ -719,7 +717,6 @@ fn buildOutputType(
var use_llvm: ?bool = null;
var use_lld: ?bool = null;
var use_clang: ?bool = null;
- var use_stage1: ?bool = null;
var link_eh_frame_hdr = false;
var link_emit_relocs = false;
var each_lib_rpath: ?bool = null;
@@ -1158,10 +1155,6 @@ fn buildOutputType(
use_clang = true;
} else if (mem.eql(u8, arg, "-fno-Clang")) {
use_clang = false;
- } else if (mem.eql(u8, arg, "-fstage1")) {
- use_stage1 = true;
- } else if (mem.eql(u8, arg, "-fno-stage1")) {
- use_stage1 = false;
} else if (mem.eql(u8, arg, "-freference-trace")) {
reference_trace = 256;
} else if (mem.startsWith(u8, arg, "-freference-trace=")) {
@@ -2909,7 +2902,6 @@ fn buildOutputType(
.use_llvm = use_llvm,
.use_lld = use_lld,
.use_clang = use_clang,
- .use_stage1 = use_stage1,
.hash_style = hash_style,
.rdynamic = rdynamic,
.linker_script = linker_script,
@@ -3024,8 +3016,7 @@ fn buildOutputType(
return std.io.getStdOut().writeAll(try comp.generateBuiltinZigSource(arena));
}
if (arg_mode == .translate_c) {
- const stage1_mode = use_stage1 orelse false;
- return cmdTranslateC(comp, arena, have_enable_cache, stage1_mode);
+ return cmdTranslateC(comp, arena, have_enable_cache);
}
const hook: AfterUpdateHook = blk: {
@@ -3444,7 +3435,7 @@ fn freePkgTree(gpa: Allocator, pkg: *Package, free_parent: bool) void {
}
}
-fn cmdTranslateC(comp: *Compilation, arena: Allocator, enable_cache: bool, stage1_mode: bool) !void {
+fn cmdTranslateC(comp: *Compilation, arena: Allocator, enable_cache: bool) !void {
if (!build_options.have_llvm)
fatal("cannot translate-c: compiler built without LLVM extensions", .{});
@@ -3457,7 +3448,6 @@ fn cmdTranslateC(comp: *Compilation, arena: Allocator, enable_cache: bool, stage
defer if (enable_cache) man.deinit();
man.hash.add(@as(u16, 0xb945)); // Random number to distinguish translate-c from compiling C objects
- man.hash.add(stage1_mode);
man.hashCSource(c_source_file) catch |err| {
fatal("unable to process '{s}': {s}", .{ c_source_file.src_path, @errorName(err) });
};
@@ -3509,7 +3499,6 @@ fn cmdTranslateC(comp: *Compilation, arena: Allocator, enable_cache: bool, stage
new_argv.ptr + new_argv.len,
&clang_errors,
c_headers_dir_path_z,
- stage1_mode,
) catch |err| switch (err) {
error.OutOfMemory => return error.OutOfMemory,
error.ASTUnitFailure => fatal("clang API returned errors but due to a clang bug, it is not exposing the errors for zig to see. For more details: https://github.com/ziglang/zig/issues/4455", .{}),
@@ -3755,8 +3744,6 @@ pub const usage_build =
\\ Build a project from build.zig.
\\
\\Options:
- \\ -fstage1 Force using bootstrap compiler as the codegen backend
- \\ -fno-stage1 Prevent using bootstrap compiler as the codegen backend
\\ -freference-trace[=num] How many lines of reference trace should be shown per compile error
\\ -fno-reference-trace Disable reference trace
\\ --build-file [file] Override path to build.zig
@@ -3770,7 +3757,6 @@ pub const usage_build =
pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
var prominent_compile_errors: bool = false;
- var use_stage1: ?bool = null;
// We want to release all the locks before executing the child process, so we make a nice
// big block here to ensure the cleanup gets run when we extract out our argv.
@@ -3827,12 +3813,6 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
continue;
} else if (mem.eql(u8, arg, "--prominent-compile-errors")) {
prominent_compile_errors = true;
- } else if (mem.eql(u8, arg, "-fstage1")) {
- use_stage1 = true;
- try child_argv.append(arg);
- } else if (mem.eql(u8, arg, "-fno-stage1")) {
- use_stage1 = false;
- try child_argv.append(arg);
} else if (mem.eql(u8, arg, "-freference-trace")) {
try child_argv.append(arg);
reference_trace = 256;
@@ -3979,7 +3959,6 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
.optimize_mode = .Debug,
.self_exe_path = self_exe_path,
.thread_pool = &thread_pool,
- .use_stage1 = use_stage1,
.cache_mode = .whole,
.reference_trace = reference_trace,
.debug_compile_errors = debug_compile_errors,
diff --git a/src/test.zig b/src/test.zig
index ab70198e410d..de0efc359d78 100644
--- a/src/test.zig
+++ b/src/test.zig
@@ -1548,7 +1548,6 @@ pub const TestContext = struct {
.dynamic_linker = target_info.dynamic_linker.get(),
.link_libc = case.link_libc,
.use_llvm = use_llvm,
- .use_stage1 = null, // We already handled stage1 tests
.self_exe_path = zig_exe_path,
// TODO instead of turning off color, pass in a std.Progress.Node
.color = .off,
diff --git a/src/translate_c.zig b/src/translate_c.zig
index 7a4bd843a58f..d4b2e0c709fc 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -327,16 +327,6 @@ pub const Context = struct {
pattern_list: PatternList,
- /// This is used to emit different code depending on whether
- /// the output zig source code is intended to be compiled with stage1 or stage2.
- /// Ideally we will have stage1 and stage2 support the exact same Zig language,
- /// but for now they diverge because I would rather focus on finishing and shipping
- /// stage2 than implementing the features in stage1.
- /// The list of differences are currently:
- /// * function pointers in stage1 are e.g. `fn()void`
- /// but in stage2 they are `*const fn()void`.
- zig_is_stage1: bool,
-
fn getMangle(c: *Context) u32 {
c.mangle_count += 1;
return c.mangle_count;
@@ -365,7 +355,6 @@ pub fn translate(
args_end: [*]?[*]const u8,
errors: *[]ClangErrMsg,
resources_path: [*:0]const u8,
- zig_is_stage1: bool,
) !std.zig.Ast {
// TODO stage2 bug
var tmp = errors;
@@ -395,7 +384,6 @@ pub fn translate(
.global_scope = try arena.create(Scope.Root),
.clang_context = ast_unit.getASTContext(),
.pattern_list = try PatternList.init(gpa),
- .zig_is_stage1 = zig_is_stage1,
};
context.global_scope.* = Scope.Root.init(&context);
defer {
@@ -435,7 +423,7 @@ pub fn translate(
}
}
- return ast.render(gpa, zig_is_stage1, context.global_scope.nodes.items);
+ return ast.render(gpa, context.global_scope.nodes.items);
}
/// Determines whether macro is of the form: `#define FOO FOO` (Possibly with trailing tokens)
@@ -4747,9 +4735,6 @@ fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clan
.Pointer => {
const child_qt = ty.getPointeeType();
const is_fn_proto = qualTypeChildIsFnProto(child_qt);
- if (c.zig_is_stage1 and is_fn_proto) {
- return Tag.optional_type.create(c.arena, try transQualType(c, scope, child_qt, source_loc));
- }
const is_const = is_fn_proto or child_qt.isConstQualified();
const is_volatile = child_qt.isVolatileQualified();
const elem_type = try transQualType(c, scope, child_qt, source_loc);
@@ -6681,16 +6666,10 @@ fn getFnProto(c: *Context, ref: Node) ?*ast.Payload.Func {
return null;
if (getContainerTypeOf(c, init)) |ty_node| {
if (ty_node.castTag(.optional_type)) |prefix| {
- if (c.zig_is_stage1) {
- if (prefix.data.castTag(.func)) |fn_proto| {
+ if (prefix.data.castTag(.single_pointer)) |sp| {
+ if (sp.data.elem_type.castTag(.func)) |fn_proto| {
return fn_proto;
}
- } else {
- if (prefix.data.castTag(.single_pointer)) |sp| {
- if (sp.data.elem_type.castTag(.func)) |fn_proto| {
- return fn_proto;
- }
- }
}
}
}
diff --git a/src/translate_c/ast.zig b/src/translate_c/ast.zig
index bc0f002c2116..00f5481b9878 100644
--- a/src/translate_c/ast.zig
+++ b/src/translate_c/ast.zig
@@ -732,11 +732,10 @@ pub const Payload = struct {
/// Converts the nodes into a Zig Ast.
/// Caller must free the source slice.
-pub fn render(gpa: Allocator, zig_is_stage1: bool, nodes: []const Node) !std.zig.Ast {
+pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
var ctx = Context{
.gpa = gpa,
.buf = std.ArrayList(u8).init(gpa),
- .zig_is_stage1 = zig_is_stage1,
};
defer ctx.buf.deinit();
defer ctx.nodes.deinit(gpa);
@@ -805,11 +804,6 @@ const Context = struct {
extra_data: std.ArrayListUnmanaged(std.zig.Ast.Node.Index) = .{},
tokens: std.zig.Ast.TokenList = .{},
- /// This is used to emit different code depending on whether
- /// the output zig source code is intended to be compiled with stage1 or stage2.
- /// Refer to the Context in translate_c.zig.
- zig_is_stage1: bool,
-
fn addTokenFmt(c: *Context, tag: TokenTag, comptime format: []const u8, args: anytype) Allocator.Error!TokenIndex {
const start_index = c.buf.items.len;
try c.buf.writer().print(format ++ " ", args);
@@ -932,7 +926,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
.call => {
const payload = node.castTag(.call).?.data;
// Cosmetic: avoids an unnecesary address_of on most function calls.
- const lhs = if (!c.zig_is_stage1 and payload.lhs.tag() == .fn_identifier)
+ const lhs = if (payload.lhs.tag() == .fn_identifier)
try c.addNode(.{
.tag = .identifier,
.main_token = try c.addIdentifier(payload.lhs.castTag(.fn_identifier).?.data),
@@ -1097,28 +1091,20 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
// value (implicit in stage1, explicit in stage2), except in
// the context of an address_of, which is handled there.
const payload = node.castTag(.fn_identifier).?.data;
- if (c.zig_is_stage1) {
- return try c.addNode(.{
- .tag = .identifier,
- .main_token = try c.addIdentifier(payload),
- .data = undefined,
- });
- } else {
- const tok = try c.addToken(.ampersand, "&");
- const arg = try c.addNode(.{
- .tag = .identifier,
- .main_token = try c.addIdentifier(payload),
- .data = undefined,
- });
- return c.addNode(.{
- .tag = .address_of,
- .main_token = tok,
- .data = .{
- .lhs = arg,
- .rhs = undefined,
- },
- });
- }
+ const tok = try c.addToken(.ampersand, "&");
+ const arg = try c.addNode(.{
+ .tag = .identifier,
+ .main_token = try c.addIdentifier(payload),
+ .data = undefined,
+ });
+ return c.addNode(.{
+ .tag = .address_of,
+ .main_token = tok,
+ .data = .{
+ .lhs = arg,
+ .rhs = undefined,
+ },
+ });
},
.float_literal => {
const payload = node.castTag(.float_literal).?.data;
@@ -1448,7 +1434,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
.optional_type => return renderPrefixOp(c, node, .optional_type, .question_mark, "?"),
.address_of => {
const payload = node.castTag(.address_of).?.data;
- if (c.zig_is_stage1 and payload.tag() == .fn_identifier)
+ if (payload.tag() == .fn_identifier)
return try c.addNode(.{
.tag = .identifier,
.main_token = try c.addIdentifier(payload.castTag(.fn_identifier).?.data),
diff --git a/test/link/wasm/archive/build.zig b/test/link/wasm/archive/build.zig
index 5ac97c9cef5a..7efa88999ad8 100644
--- a/test/link/wasm/archive/build.zig
+++ b/test/link/wasm/archive/build.zig
@@ -13,7 +13,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/bss/build.zig b/test/link/wasm/bss/build.zig
index 0a8d652338c2..c9bc1aa1069a 100644
--- a/test/link/wasm/bss/build.zig
+++ b/test/link/wasm/bss/build.zig
@@ -11,7 +11,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
// to make sure the bss segment is emitted, we must import memory
diff --git a/test/link/wasm/producers/build.zig b/test/link/wasm/producers/build.zig
index 0f29c6896836..7557b4fa4144 100644
--- a/test/link/wasm/producers/build.zig
+++ b/test/link/wasm/producers/build.zig
@@ -12,7 +12,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
lib.install();
diff --git a/test/link/wasm/segments/build.zig b/test/link/wasm/segments/build.zig
index 06ca55300fbb..1b2cdf87ab4f 100644
--- a/test/link/wasm/segments/build.zig
+++ b/test/link/wasm/segments/build.zig
@@ -11,7 +11,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
lib.install();
diff --git a/test/link/wasm/stack_pointer/build.zig b/test/link/wasm/stack_pointer/build.zig
index 1f50a60d1989..5b67c3caa3f4 100644
--- a/test/link/wasm/stack_pointer/build.zig
+++ b/test/link/wasm/stack_pointer/build.zig
@@ -11,7 +11,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
lib.stack_size = std.wasm.page_size * 2; // set an explicit stack size
diff --git a/test/link/wasm/type/build.zig b/test/link/wasm/type/build.zig
index 2c926eced3e5..fbae6dc741da 100644
--- a/test/link/wasm/type/build.zig
+++ b/test/link/wasm/type/build.zig
@@ -11,7 +11,6 @@ pub fn build(b: *Builder) void {
lib.setBuildMode(mode);
lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
lib.use_llvm = false;
- lib.use_stage1 = false;
lib.use_lld = false;
lib.strip = false;
lib.install();
diff --git a/test/tests.zig b/test/tests.zig
index b738de86b0ad..0817a541d953 100644
--- a/test/tests.zig
+++ b/test/tests.zig
@@ -720,20 +720,18 @@ pub fn addPkgTests(
these_tests.addIncludePath("test");
if (test_target.backend) |backend| switch (backend) {
.stage1 => {
- these_tests.use_stage1 = true;
+ @panic("stage1 testing requested");
},
.stage2_llvm => {
- these_tests.use_stage1 = false;
these_tests.use_llvm = true;
},
.stage2_c => {
- these_tests.use_stage1 = false;
these_tests.use_llvm = false;
},
else => {
- these_tests.use_stage1 = false;
these_tests.use_llvm = false;
- // TODO: force self-hosted linkers to avoid LLD creeping in until the auto-select mechanism deems them worthy
+ // TODO: force self-hosted linkers to avoid LLD creeping in
+ // until the auto-select mechanism deems them worthy
these_tests.use_lld = false;
},
};
@@ -1355,8 +1353,6 @@ pub fn addCAbiTests(b: *build.Builder, skip_non_native: bool) *build.Step {
triple_prefix,
}));
- test_step.use_stage1 = false;
-
step.dependOn(&test_step.step);
}
return step;
From db023b98a4deef527d4c70d146009f754e9b168d Mon Sep 17 00:00:00 2001
From: Andrew Kelley
Date: Fri, 4 Nov 2022 18:35:04 -0700
Subject: [PATCH 02/68] build: introduce -Dwasi-bootstrap option
Also, make -Donly-c prevent Autodoc from being included in the binary.
This produces a 2.6 MiB zig.wasm file. 781 KB if piped through zstd.
---
build.zig | 39 +++++++++++++++++++++++++--------------
src/Compilation.zig | 12 +++++++-----
src/main.zig | 8 +++++++-
3 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/build.zig b/build.zig
index adab2b241177..8560e5e2d2ca 100644
--- a/build.zig
+++ b/build.zig
@@ -14,13 +14,30 @@ const zig_version = std.builtin.Version{ .major = 0, .minor = 11, .patch = 0 };
const stack_size = 32 * 1024 * 1024;
pub fn build(b: *Builder) !void {
- b.setPreferredReleaseMode(.ReleaseFast);
- const test_step = b.step("test", "Run all the tests");
- const mode = b.standardReleaseOptions();
- var target = b.standardTargetOptions(.{});
+ const wasi_bootstrap = b.option(bool, "wasi-bootstrap", "Produce a WASI build for bootstrapping the compiler") orelse false;
+ const release = b.option(bool, "release", "Build in release mode") orelse wasi_bootstrap;
+ const only_c = b.option(bool, "only-c", "Translate the Zig compiler to C code, with only the C backend enabled") orelse wasi_bootstrap;
+ const target = t: {
+ var default_target: std.zig.CrossTarget = .{};
+ if (wasi_bootstrap) {
+ default_target.cpu_arch = .wasm32;
+ default_target.os_tag = .wasi;
+ break :t default_target;
+ } else if (only_c) {
+ default_target.ofmt = .c;
+ }
+ break :t b.standardTargetOptions(.{ .default_target = default_target });
+ };
+ const mode: std.builtin.Mode = if (release) switch (target.getCpuArch()) {
+ .wasm32 => .ReleaseSmall,
+ else => .ReleaseFast,
+ } else .Debug;
+
const single_threaded = b.option(bool, "single-threaded", "Build artifacts that run in single threaded mode");
const use_zig_libcxx = b.option(bool, "use-zig-libcxx", "If libc++ is needed, use zig's bundled version, don't try to integrate with the system") orelse false;
+ const test_step = b.step("test", "Run all the tests");
+
const docgen_exe = b.addExecutable("docgen", "doc/docgen.zig");
docgen_exe.single_threaded = single_threaded;
@@ -48,8 +65,6 @@ pub fn build(b: *Builder) !void {
const fmt_build_zig = b.addFmt(&[_][]const u8{"build.zig"});
- const only_c = b.option(bool, "only-c", "Translate the Zig compiler to C code, with only the C backend enabled") orelse false;
-
const skip_debug = b.option(bool, "skip-debug", "Main test suite skips debug builds") orelse false;
const skip_release = b.option(bool, "skip-release", "Main test suite skips release builds") orelse false;
const skip_release_small = b.option(bool, "skip-release-small", "Main test suite skips release-small builds") orelse skip_release;
@@ -65,7 +80,7 @@ pub fn build(b: *Builder) !void {
if (deprecated_skip_install_lib_files) {
std.log.warn("-Dskip-install-lib-files is deprecated in favor of -Dno-lib", .{});
}
- const skip_install_lib_files = b.option(bool, "no-lib", "skip copying of lib/ files to installation prefix. Useful for development") orelse deprecated_skip_install_lib_files;
+ const skip_install_lib_files = b.option(bool, "no-lib", "skip copying of lib/ files to installation prefix. Useful for development") orelse (deprecated_skip_install_lib_files or wasi_bootstrap);
const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false;
@@ -129,21 +144,17 @@ pub fn build(b: *Builder) !void {
const tracy_callstack = b.option(bool, "tracy-callstack", "Include callstack information with Tracy data. Does nothing if -Dtracy is not provided") orelse (tracy != null);
const tracy_allocation = b.option(bool, "tracy-allocation", "Include allocation information with Tracy data. Does nothing if -Dtracy is not provided") orelse (tracy != null);
const force_gpa = b.option(bool, "force-gpa", "Force the compiler to use GeneralPurposeAllocator") orelse false;
- const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse (enable_llvm or only_c);
+ const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse (enable_llvm or (only_c and !wasi_bootstrap));
const sanitize_thread = b.option(bool, "sanitize-thread", "Enable thread-sanitization") orelse false;
- const strip = b.option(bool, "strip", "Omit debug information") orelse false;
+ const strip = b.option(bool, "strip", "Omit debug information");
const value_tracing = b.option(bool, "value-tracing", "Enable extra state tracking to help troubleshoot bugs in the compiler (using the std.debug.Trace API)") orelse false;
const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {
- if (strip) break :blk @as(u32, 0);
+ if (strip == true) break :blk @as(u32, 0);
if (mode != .Debug) break :blk 0;
break :blk 4;
};
- if (only_c) {
- target.ofmt = .c;
- }
-
const main_file: ?[]const u8 = "src/main.zig";
const exe = b.addExecutable("zig", main_file);
diff --git a/src/Compilation.zig b/src/Compilation.zig
index a0b78394e711..853d83485a77 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2421,11 +2421,13 @@ pub fn update(comp: *Compilation) !void {
return;
}
- if (comp.emit_docs) |doc_location| {
- if (comp.bin_file.options.module) |module| {
- var autodoc = Autodoc.init(module, doc_location);
- defer autodoc.deinit();
- try autodoc.generateZirData();
+ if (!build_options.only_c) {
+ if (comp.emit_docs) |doc_location| {
+ if (comp.bin_file.options.module) |module| {
+ var autodoc = Autodoc.init(module, doc_location);
+ defer autodoc.deinit();
+ try autodoc.generateZirData();
+ }
}
}
diff --git a/src/main.zig b/src/main.zig
index c5da8e3a884e..5947ff773aa4 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -168,7 +168,13 @@ pub fn main() anyerror!void {
// This sets our CWD to "/preopens/cwd"
// Dot-prefixed preopens like `--dir=.` are "mounted" at "/preopens/cwd"
// Other preopens like `--dir=lib` are "mounted" at "/"
- try std.os.initPreopensWasi(std.heap.page_allocator, "/preopens/cwd");
+ try std.os.initPreopensWasi(arena, "/preopens/cwd");
+ }
+
+ // Short circuit some of the other logic for bootstrapping.
+ if (build_options.only_c) {
+ assert(mem.eql(u8, args[1], "build-obj"));
+ return buildOutputType(gpa, arena, args, .{ .build = .Obj });
}
return mainArgs(gpa, arena, args);
From 4e2a960b523070c7f8fddf0ea9b6e2a94e31dafe Mon Sep 17 00:00:00 2001
From: Andrew Kelley
Date: Wed, 9 Nov 2022 14:44:34 -0700
Subject: [PATCH 03/68] std.fs: fix openDirAbsolute
These functions had a compile error since the introduction of
IterableDir.
---
lib/std/fs.zig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/std/fs.zig b/lib/std/fs.zig
index 8ae21259ae1d..12ee39a7bf43 100644
--- a/lib/std/fs.zig
+++ b/lib/std/fs.zig
@@ -2685,12 +2685,12 @@ pub fn openDirAbsolute(absolute_path: []const u8, flags: Dir.OpenDirOptions) Fil
/// Same as `openDirAbsolute` but the path parameter is null-terminated.
pub fn openDirAbsoluteZ(absolute_path_c: [*:0]const u8, flags: Dir.OpenDirOptions) File.OpenError!Dir {
assert(path.isAbsoluteZ(absolute_path_c));
- return cwd().openDirZ(absolute_path_c, flags);
+ return cwd().openDirZ(absolute_path_c, flags, false);
}
/// Same as `openDirAbsolute` but the path parameter is null-terminated.
pub fn openDirAbsoluteW(absolute_path_c: [*:0]const u16, flags: Dir.OpenDirOptions) File.OpenError!Dir {
assert(path.isAbsoluteWindowsW(absolute_path_c));
- return cwd().openDirW(absolute_path_c, flags);
+ return cwd().openDirW(absolute_path_c, flags, false);
}
/// Opens a directory at the given path. The directory is a system resource that remains
From 3ba916584db5485c38ebf2390e8d22bc6d81bf8e Mon Sep 17 00:00:00 2001
From: Andrew Kelley
Date: Fri, 4 Nov 2022 18:47:19 -0700
Subject: [PATCH 04/68] actually remove stage1
---
deps/SoftFloat-3e-prebuilt/platform.h | 99 -
deps/SoftFloat-3e/COPYING.txt | 37 -
deps/SoftFloat-3e/README.html | 49 -
deps/SoftFloat-3e/README.txt | 21 -
deps/SoftFloat-3e/doc/SoftFloat-history.html | 258 -
deps/SoftFloat-3e/doc/SoftFloat-source.html | 686 -
deps/SoftFloat-3e/doc/SoftFloat.html | 1527 -
.../source/8086-SSE/extF80M_isSignalingNaN.c | 57 -
.../source/8086-SSE/f128M_isSignalingNaN.c | 60 -
.../source/8086-SSE/s_commonNaNToExtF80M.c | 56 -
.../source/8086-SSE/s_commonNaNToExtF80UI.c | 56 -
.../source/8086-SSE/s_commonNaNToF128M.c | 56 -
.../source/8086-SSE/s_commonNaNToF128UI.c | 55 -
.../source/8086-SSE/s_commonNaNToF16UI.c | 51 -
.../source/8086-SSE/s_commonNaNToF32UI.c | 51 -
.../source/8086-SSE/s_commonNaNToF64UI.c | 53 -
.../source/8086-SSE/s_extF80MToCommonNaN.c | 62 -
.../source/8086-SSE/s_extF80UIToCommonNaN.c | 62 -
.../source/8086-SSE/s_f128MToCommonNaN.c | 62 -
.../source/8086-SSE/s_f128UIToCommonNaN.c | 65 -
.../source/8086-SSE/s_f16UIToCommonNaN.c | 59 -
.../source/8086-SSE/s_f32UIToCommonNaN.c | 59 -
.../source/8086-SSE/s_f64UIToCommonNaN.c | 59 -
.../source/8086-SSE/s_propagateNaNExtF80M.c | 107 -
.../source/8086-SSE/s_propagateNaNExtF80UI.c | 106 -
.../source/8086-SSE/s_propagateNaNF128M.c | 76 -
.../source/8086-SSE/s_propagateNaNF128UI.c | 81 -
.../source/8086-SSE/s_propagateNaNF16UI.c | 63 -
.../source/8086-SSE/s_propagateNaNF32UI.c | 63 -
.../source/8086-SSE/s_propagateNaNF64UI.c | 63 -
.../source/8086-SSE/softfloat_raiseFlags.c | 52 -
.../SoftFloat-3e/source/8086-SSE/specialize.h | 376 -
.../source/8086/extF80M_isSignalingNaN.c | 57 -
.../source/8086/f128M_isSignalingNaN.c | 60 -
.../source/8086/s_commonNaNToExtF80M.c | 56 -
.../source/8086/s_commonNaNToExtF80UI.c | 56 -
.../source/8086/s_commonNaNToF128M.c | 56 -
.../source/8086/s_commonNaNToF128UI.c | 55 -
.../source/8086/s_commonNaNToF16UI.c | 51 -
.../source/8086/s_commonNaNToF32UI.c | 51 -
.../source/8086/s_commonNaNToF64UI.c | 53 -
.../source/8086/s_extF80MToCommonNaN.c | 62 -
.../source/8086/s_extF80UIToCommonNaN.c | 62 -
.../source/8086/s_f128MToCommonNaN.c | 62 -
.../source/8086/s_f128UIToCommonNaN.c | 65 -
.../source/8086/s_f16UIToCommonNaN.c | 59 -
.../source/8086/s_f32UIToCommonNaN.c | 59 -
.../source/8086/s_f64UIToCommonNaN.c | 59 -
.../source/8086/s_propagateNaNExtF80M.c | 107 -
.../source/8086/s_propagateNaNExtF80UI.c | 106 -
.../source/8086/s_propagateNaNF128M.c | 108 -
.../source/8086/s_propagateNaNF128UI.c | 105 -
.../source/8086/s_propagateNaNF16UI.c | 84 -
.../source/8086/s_propagateNaNF32UI.c | 84 -
.../source/8086/s_propagateNaNF64UI.c | 84 -
.../source/8086/softfloat_raiseFlags.c | 52 -
deps/SoftFloat-3e/source/8086/specialize.h | 376 -
.../extF80M_isSignalingNaN.c | 57 -
.../f128M_isSignalingNaN.c | 60 -
.../s_commonNaNToExtF80M.c | 57 -
.../s_commonNaNToExtF80UI.c | 57 -
.../ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c | 60 -
.../s_commonNaNToF128UI.c | 56 -
.../ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c | 5 -
.../ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c | 5 -
.../ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c | 5 -
.../s_extF80MToCommonNaN.c | 5 -
.../s_extF80UIToCommonNaN.c | 5 -
.../ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c | 5 -
.../s_f128UIToCommonNaN.c | 5 -
.../ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c | 5 -
.../ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c | 5 -
.../ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c | 5 -
.../s_propagateNaNExtF80M.c | 74 -
.../s_propagateNaNExtF80UI.c | 73 -
.../s_propagateNaNF128M.c | 68 -
.../s_propagateNaNF128UI.c | 73 -
.../s_propagateNaNF16UI.c | 58 -
.../s_propagateNaNF32UI.c | 58 -
.../s_propagateNaNF64UI.c | 58 -
.../softfloat_raiseFlags.c | 52 -
.../source/ARM-VFPv2-defaultNaN/specialize.h | 407 -
.../source/ARM-VFPv2/extF80M_isSignalingNaN.c | 57 -
.../source/ARM-VFPv2/f128M_isSignalingNaN.c | 60 -
.../source/ARM-VFPv2/s_commonNaNToExtF80M.c | 56 -
.../source/ARM-VFPv2/s_commonNaNToExtF80UI.c | 56 -
.../source/ARM-VFPv2/s_commonNaNToF128M.c | 56 -
.../source/ARM-VFPv2/s_commonNaNToF128UI.c | 55 -
.../source/ARM-VFPv2/s_commonNaNToF16UI.c | 51 -
.../source/ARM-VFPv2/s_commonNaNToF32UI.c | 51 -
.../source/ARM-VFPv2/s_commonNaNToF64UI.c | 53 -
.../source/ARM-VFPv2/s_extF80MToCommonNaN.c | 62 -
.../source/ARM-VFPv2/s_extF80UIToCommonNaN.c | 62 -
.../source/ARM-VFPv2/s_f128MToCommonNaN.c | 62 -
.../source/ARM-VFPv2/s_f128UIToCommonNaN.c | 65 -
.../source/ARM-VFPv2/s_f16UIToCommonNaN.c | 59 -
.../source/ARM-VFPv2/s_f32UIToCommonNaN.c | 59 -
.../source/ARM-VFPv2/s_f64UIToCommonNaN.c | 59 -
.../source/ARM-VFPv2/s_propagateNaNExtF80M.c | 86 -
.../source/ARM-VFPv2/s_propagateNaNExtF80UI.c | 83 -
.../source/ARM-VFPv2/s_propagateNaNF128M.c | 77 -
.../source/ARM-VFPv2/s_propagateNaNF128UI.c | 83 -
.../source/ARM-VFPv2/s_propagateNaNF16UI.c | 63 -
.../source/ARM-VFPv2/s_propagateNaNF32UI.c | 63 -
.../source/ARM-VFPv2/s_propagateNaNF64UI.c | 63 -
.../source/ARM-VFPv2/softfloat_raiseFlags.c | 52 -
.../source/ARM-VFPv2/specialize.h | 376 -
deps/SoftFloat-3e/source/extF80M_add.c | 100 -
deps/SoftFloat-3e/source/extF80M_div.c | 194 -
deps/SoftFloat-3e/source/extF80M_eq.c | 98 -
.../source/extF80M_eq_signaling.c | 92 -
deps/SoftFloat-3e/source/extF80M_le.c | 106 -
deps/SoftFloat-3e/source/extF80M_le_quiet.c | 112 -
deps/SoftFloat-3e/source/extF80M_lt.c | 106 -
deps/SoftFloat-3e/source/extF80M_lt_quiet.c | 112 -
deps/SoftFloat-3e/source/extF80M_mul.c | 139 -
deps/SoftFloat-3e/source/extF80M_rem.c | 204 -
deps/SoftFloat-3e/source/extF80M_roundToInt.c | 176 -
deps/SoftFloat-3e/source/extF80M_sqrt.c | 180 -
deps/SoftFloat-3e/source/extF80M_sub.c | 100 -
deps/SoftFloat-3e/source/extF80M_to_f128M.c | 125 -
deps/SoftFloat-3e/source/extF80M_to_f16.c | 112 -
deps/SoftFloat-3e/source/extF80M_to_f32.c | 112 -
deps/SoftFloat-3e/source/extF80M_to_f64.c | 112 -
deps/SoftFloat-3e/source/extF80M_to_i32.c | 100 -
.../source/extF80M_to_i32_r_minMag.c | 120 -
deps/SoftFloat-3e/source/extF80M_to_i64.c | 97 -
.../source/extF80M_to_i64_r_minMag.c | 115 -
deps/SoftFloat-3e/source/extF80M_to_ui32.c | 101 -
.../source/extF80M_to_ui32_r_minMag.c | 111 -
deps/SoftFloat-3e/source/extF80M_to_ui64.c | 97 -
.../source/extF80M_to_ui64_r_minMag.c | 108 -
deps/SoftFloat-3e/source/extF80_add.c | 80 -
deps/SoftFloat-3e/source/extF80_div.c | 203 -
deps/SoftFloat-3e/source/extF80_eq.c | 73 -
.../SoftFloat-3e/source/extF80_eq_signaling.c | 67 -
.../source/extF80_isSignalingNaN.c | 51 -
deps/SoftFloat-3e/source/extF80_le.c | 73 -
deps/SoftFloat-3e/source/extF80_le_quiet.c | 78 -
deps/SoftFloat-3e/source/extF80_lt.c | 73 -
deps/SoftFloat-3e/source/extF80_lt_quiet.c | 78 -
deps/SoftFloat-3e/source/extF80_mul.c | 158 -
deps/SoftFloat-3e/source/extF80_rem.c | 225 -
deps/SoftFloat-3e/source/extF80_roundToInt.c | 154 -
deps/SoftFloat-3e/source/extF80_sqrt.c | 176 -
deps/SoftFloat-3e/source/extF80_sub.c | 80 -
deps/SoftFloat-3e/source/extF80_to_f128.c | 75 -
deps/SoftFloat-3e/source/extF80_to_f16.c | 96 -
deps/SoftFloat-3e/source/extF80_to_f32.c | 96 -
deps/SoftFloat-3e/source/extF80_to_f64.c | 96 -
deps/SoftFloat-3e/source/extF80_to_i32.c | 83 -
.../source/extF80_to_i32_r_minMag.c | 97 -
deps/SoftFloat-3e/source/extF80_to_i64.c | 89 -
.../source/extF80_to_i64_r_minMag.c | 94 -
deps/SoftFloat-3e/source/extF80_to_ui32.c | 83 -
.../source/extF80_to_ui32_r_minMag.c | 88 -
deps/SoftFloat-3e/source/extF80_to_ui64.c | 84 -
.../source/extF80_to_ui64_r_minMag.c | 88 -
deps/SoftFloat-3e/source/f128M_add.c | 97 -
deps/SoftFloat-3e/source/f128M_div.c | 187 -
deps/SoftFloat-3e/source/f128M_eq.c | 100 -
deps/SoftFloat-3e/source/f128M_eq_signaling.c | 92 -
deps/SoftFloat-3e/source/f128M_le.c | 93 -
deps/SoftFloat-3e/source/f128M_le_quiet.c | 96 -
deps/SoftFloat-3e/source/f128M_lt.c | 93 -
deps/SoftFloat-3e/source/f128M_lt_quiet.c | 96 -
deps/SoftFloat-3e/source/f128M_mul.c | 158 -
deps/SoftFloat-3e/source/f128M_mulAdd.c | 92 -
deps/SoftFloat-3e/source/f128M_rem.c | 182 -
deps/SoftFloat-3e/source/f128M_roundToInt.c | 223 -
deps/SoftFloat-3e/source/f128M_sqrt.c | 228 -
deps/SoftFloat-3e/source/f128M_sub.c | 97 -
deps/SoftFloat-3e/source/f128M_to_extF80M.c | 101 -
deps/SoftFloat-3e/source/f128M_to_f16.c | 113 -
deps/SoftFloat-3e/source/f128M_to_f32.c | 109 -
deps/SoftFloat-3e/source/f128M_to_f64.c | 112 -
deps/SoftFloat-3e/source/f128M_to_i32.c | 98 -
.../source/f128M_to_i32_r_minMag.c | 106 -
deps/SoftFloat-3e/source/f128M_to_i64.c | 102 -
.../source/f128M_to_i64_r_minMag.c | 124 -
deps/SoftFloat-3e/source/f128M_to_ui32.c | 98 -
.../source/f128M_to_ui32_r_minMag.c | 102 -
deps/SoftFloat-3e/source/f128M_to_ui64.c | 102 -
.../source/f128M_to_ui64_r_minMag.c | 114 -
deps/SoftFloat-3e/source/f128_add.c | 78 -
deps/SoftFloat-3e/source/f128_div.c | 199 -
deps/SoftFloat-3e/source/f128_eq.c | 73 -
deps/SoftFloat-3e/source/f128_eq_signaling.c | 67 -
.../SoftFloat-3e/source/f128_isSignalingNaN.c | 51 -
deps/SoftFloat-3e/source/f128_le.c | 72 -
deps/SoftFloat-3e/source/f128_le_quiet.c | 78 -
deps/SoftFloat-3e/source/f128_lt.c | 72 -
deps/SoftFloat-3e/source/f128_lt_quiet.c | 78 -
deps/SoftFloat-3e/source/f128_mul.c | 163 -
deps/SoftFloat-3e/source/f128_mulAdd.c | 63 -
deps/SoftFloat-3e/source/f128_rem.c | 190 -
deps/SoftFloat-3e/source/f128_roundToInt.c | 172 -
deps/SoftFloat-3e/source/f128_sqrt.c | 201 -
deps/SoftFloat-3e/source/f128_sub.c | 78 -
deps/SoftFloat-3e/source/f128_to_extF80.c | 109 -
deps/SoftFloat-3e/source/f128_to_f16.c | 95 -
deps/SoftFloat-3e/source/f128_to_f32.c | 95 -
deps/SoftFloat-3e/source/f128_to_f64.c | 100 -
deps/SoftFloat-3e/source/f128_to_i32.c | 85 -
.../source/f128_to_i32_r_minMag.c | 100 -
deps/SoftFloat-3e/source/f128_to_i64.c | 95 -
.../source/f128_to_i64_r_minMag.c | 113 -
deps/SoftFloat-3e/source/f128_to_ui32.c | 86 -
.../source/f128_to_ui32_r_minMag.c | 89 -
deps/SoftFloat-3e/source/f128_to_ui64.c | 96 -
.../source/f128_to_ui64_r_minMag.c | 105 -
deps/SoftFloat-3e/source/f16_add.c | 70 -
deps/SoftFloat-3e/source/f16_div.c | 186 -
deps/SoftFloat-3e/source/f16_eq.c | 66 -
deps/SoftFloat-3e/source/f16_eq_signaling.c | 61 -
deps/SoftFloat-3e/source/f16_isSignalingNaN.c | 51 -
deps/SoftFloat-3e/source/f16_le.c | 66 -
deps/SoftFloat-3e/source/f16_le_quiet.c | 71 -
deps/SoftFloat-3e/source/f16_lt.c | 66 -
deps/SoftFloat-3e/source/f16_lt_quiet.c | 71 -
deps/SoftFloat-3e/source/f16_mul.c | 140 -
deps/SoftFloat-3e/source/f16_mulAdd.c | 60 -
deps/SoftFloat-3e/source/f16_rem.c | 171 -
deps/SoftFloat-3e/source/f16_roundToInt.c | 120 -
deps/SoftFloat-3e/source/f16_sqrt.c | 136 -
deps/SoftFloat-3e/source/f16_sub.c | 70 -
deps/SoftFloat-3e/source/f16_to_extF80.c | 101 -
deps/SoftFloat-3e/source/f16_to_extF80M.c | 111 -
deps/SoftFloat-3e/source/f16_to_f128.c | 96 -
deps/SoftFloat-3e/source/f16_to_f128M.c | 111 -
deps/SoftFloat-3e/source/f16_to_f32.c | 93 -
deps/SoftFloat-3e/source/f16_to_f64.c | 93 -
deps/SoftFloat-3e/source/f16_to_i32.c | 87 -
.../SoftFloat-3e/source/f16_to_i32_r_minMag.c | 88 -
deps/SoftFloat-3e/source/f16_to_i64.c | 87 -
.../SoftFloat-3e/source/f16_to_i64_r_minMag.c | 88 -
deps/SoftFloat-3e/source/f16_to_ui32.c | 84 -
.../source/f16_to_ui32_r_minMag.c | 87 -
deps/SoftFloat-3e/source/f16_to_ui64.c | 96 -
.../source/f16_to_ui64_r_minMag.c | 87 -
deps/SoftFloat-3e/source/f32_add.c | 70 -
deps/SoftFloat-3e/source/f32_div.c | 180 -
deps/SoftFloat-3e/source/f32_eq.c | 66 -
deps/SoftFloat-3e/source/f32_eq_signaling.c | 61 -
deps/SoftFloat-3e/source/f32_isSignalingNaN.c | 51 -
deps/SoftFloat-3e/source/f32_le.c | 66 -
deps/SoftFloat-3e/source/f32_le_quiet.c | 71 -
deps/SoftFloat-3e/source/f32_lt.c | 66 -
deps/SoftFloat-3e/source/f32_lt_quiet.c | 71 -
deps/SoftFloat-3e/source/f32_mul.c | 137 -
deps/SoftFloat-3e/source/f32_mulAdd.c | 60 -
deps/SoftFloat-3e/source/f32_rem.c | 168 -
deps/SoftFloat-3e/source/f32_roundToInt.c | 120 -
deps/SoftFloat-3e/source/f32_sqrt.c | 121 -
deps/SoftFloat-3e/source/f32_sub.c | 70 -
deps/SoftFloat-3e/source/f32_to_extF80.c | 101 -
deps/SoftFloat-3e/source/f32_to_extF80M.c | 111 -
deps/SoftFloat-3e/source/f32_to_f128.c | 96 -
deps/SoftFloat-3e/source/f32_to_f128M.c | 115 -
deps/SoftFloat-3e/source/f32_to_f16.c | 88 -
deps/SoftFloat-3e/source/f32_to_f64.c | 93 -
deps/SoftFloat-3e/source/f32_to_i32.c | 84 -
.../SoftFloat-3e/source/f32_to_i32_r_minMag.c | 89 -
deps/SoftFloat-3e/source/f32_to_i64.c | 96 -
.../SoftFloat-3e/source/f32_to_i64_r_minMag.c | 94 -
deps/SoftFloat-3e/source/f32_to_ui32.c | 84 -
.../source/f32_to_ui32_r_minMag.c | 88 -
deps/SoftFloat-3e/source/f32_to_ui64.c | 96 -
.../source/f32_to_ui64_r_minMag.c | 90 -
deps/SoftFloat-3e/source/f64_add.c | 74 -
deps/SoftFloat-3e/source/f64_div.c | 172 -
deps/SoftFloat-3e/source/f64_eq.c | 66 -
deps/SoftFloat-3e/source/f64_eq_signaling.c | 61 -
deps/SoftFloat-3e/source/f64_isSignalingNaN.c | 51 -
deps/SoftFloat-3e/source/f64_le.c | 67 -
deps/SoftFloat-3e/source/f64_le_quiet.c | 72 -
deps/SoftFloat-3e/source/f64_lt.c | 67 -
deps/SoftFloat-3e/source/f64_lt_quiet.c | 72 -
deps/SoftFloat-3e/source/f64_mul.c | 150 -
deps/SoftFloat-3e/source/f64_mulAdd.c | 60 -
deps/SoftFloat-3e/source/f64_rem.c | 189 -
deps/SoftFloat-3e/source/f64_roundToInt.c | 120 -
deps/SoftFloat-3e/source/f64_sqrt.c | 133 -
deps/SoftFloat-3e/source/f64_sub.c | 74 -
deps/SoftFloat-3e/source/f64_to_extF80.c | 101 -
deps/SoftFloat-3e/source/f64_to_extF80M.c | 111 -
deps/SoftFloat-3e/source/f64_to_f128.c | 98 -
deps/SoftFloat-3e/source/f64_to_f128M.c | 117 -
deps/SoftFloat-3e/source/f64_to_f16.c | 88 -
deps/SoftFloat-3e/source/f64_to_f32.c | 88 -
deps/SoftFloat-3e/source/f64_to_i32.c | 82 -
.../SoftFloat-3e/source/f64_to_i32_r_minMag.c | 96 -
deps/SoftFloat-3e/source/f64_to_i64.c | 103 -
.../SoftFloat-3e/source/f64_to_i64_r_minMag.c | 100 -
deps/SoftFloat-3e/source/f64_to_ui32.c | 82 -
.../source/f64_to_ui32_r_minMag.c | 88 -
deps/SoftFloat-3e/source/f64_to_ui64.c | 103 -
.../source/f64_to_ui64_r_minMag.c | 93 -
deps/SoftFloat-3e/source/i32_to_extF80.c | 65 -
deps/SoftFloat-3e/source/i32_to_extF80M.c | 78 -
deps/SoftFloat-3e/source/i32_to_f128.c | 64 -
deps/SoftFloat-3e/source/i32_to_f128M.c | 81 -
deps/SoftFloat-3e/source/i32_to_f16.c | 71 -
deps/SoftFloat-3e/source/i32_to_f32.c | 58 -
deps/SoftFloat-3e/source/i32_to_f64.c | 65 -
deps/SoftFloat-3e/source/i64_to_extF80.c | 65 -
deps/SoftFloat-3e/source/i64_to_extF80M.c | 78 -
deps/SoftFloat-3e/source/i64_to_f128.c | 72 -
deps/SoftFloat-3e/source/i64_to_f128M.c | 92 -
deps/SoftFloat-3e/source/i64_to_f16.c | 70 -
deps/SoftFloat-3e/source/i64_to_f32.c | 70 -
deps/SoftFloat-3e/source/i64_to_f64.c | 58 -
deps/SoftFloat-3e/source/include/internals.h | 278 -
deps/SoftFloat-3e/source/include/opts-GCC.h | 114 -
.../source/include/primitiveTypes.h | 86 -
deps/SoftFloat-3e/source/include/primitives.h | 1160 -
deps/SoftFloat-3e/source/include/softfloat.h | 372 -
.../source/include/softfloat_types.h | 82 -
deps/SoftFloat-3e/source/s_add128.c | 55 -
deps/SoftFloat-3e/source/s_add256M.c | 65 -
deps/SoftFloat-3e/source/s_addCarryM.c | 70 -
deps/SoftFloat-3e/source/s_addComplCarryM.c | 70 -
deps/SoftFloat-3e/source/s_addExtF80M.c | 186 -
deps/SoftFloat-3e/source/s_addF128M.c | 211 -
deps/SoftFloat-3e/source/s_addM.c | 70 -
deps/SoftFloat-3e/source/s_addMagsExtF80.c | 156 -
deps/SoftFloat-3e/source/s_addMagsF128.c | 154 -
deps/SoftFloat-3e/source/s_addMagsF16.c | 183 -
deps/SoftFloat-3e/source/s_addMagsF32.c | 126 -
deps/SoftFloat-3e/source/s_addMagsF64.c | 128 -
deps/SoftFloat-3e/source/s_approxRecip32_1.c | 66 -
.../source/s_approxRecipSqrt32_1.c | 73 -
.../source/s_approxRecipSqrt_1Ks.c | 49 -
deps/SoftFloat-3e/source/s_approxRecip_1Ks.c | 49 -
deps/SoftFloat-3e/source/s_compare128M.c | 62 -
deps/SoftFloat-3e/source/s_compare96M.c | 62 -
.../source/s_compareNonnormExtF80M.c | 111 -
.../source/s_countLeadingZeros16.c | 60 -
.../source/s_countLeadingZeros32.c | 64 -
.../source/s_countLeadingZeros64.c | 73 -
.../source/s_countLeadingZeros8.c | 59 -
deps/SoftFloat-3e/source/s_eq128.c | 51 -
deps/SoftFloat-3e/source/s_invalidExtF80M.c | 49 -
deps/SoftFloat-3e/source/s_invalidF128M.c | 53 -
deps/SoftFloat-3e/source/s_isNaNF128M.c | 57 -
deps/SoftFloat-3e/source/s_le128.c | 51 -
deps/SoftFloat-3e/source/s_lt128.c | 51 -
deps/SoftFloat-3e/source/s_mul128By32.c | 58 -
deps/SoftFloat-3e/source/s_mul128MTo256M.c | 100 -
deps/SoftFloat-3e/source/s_mul128To256M.c | 71 -
.../source/s_mul64ByShifted32To128.c | 56 -
deps/SoftFloat-3e/source/s_mul64To128.c | 66 -
deps/SoftFloat-3e/source/s_mul64To128M.c | 68 -
deps/SoftFloat-3e/source/s_mulAddF128.c | 350 -
deps/SoftFloat-3e/source/s_mulAddF128M.c | 382 -
deps/SoftFloat-3e/source/s_mulAddF16.c | 226 -
deps/SoftFloat-3e/source/s_mulAddF32.c | 224 -
deps/SoftFloat-3e/source/s_mulAddF64.c | 496 -
deps/SoftFloat-3e/source/s_negXM.c | 63 -
deps/SoftFloat-3e/source/s_normExtF80SigM.c | 52 -
.../source/s_normRoundPackMToExtF80M.c | 78 -
.../source/s_normRoundPackMToF128M.c | 73 -
.../source/s_normRoundPackToExtF80.c | 71 -
.../source/s_normRoundPackToF128.c | 81 -
.../source/s_normRoundPackToF16.c | 58 -
.../source/s_normRoundPackToF32.c | 58 -
.../source/s_normRoundPackToF64.c | 58 -
.../source/s_normSubnormalExtF80Sig.c | 52 -
.../source/s_normSubnormalF128Sig.c | 65 -
.../source/s_normSubnormalF128SigM.c | 61 -
.../source/s_normSubnormalF16Sig.c | 52 -
.../source/s_normSubnormalF32Sig.c | 52 -
.../source/s_normSubnormalF64Sig.c | 52 -
deps/SoftFloat-3e/source/s_remStepMBy32.c | 86 -
deps/SoftFloat-3e/source/s_roundMToI64.c | 102 -
deps/SoftFloat-3e/source/s_roundMToUI64.c | 98 -
.../source/s_roundPackMToExtF80M.c | 256 -
.../SoftFloat-3e/source/s_roundPackMToF128M.c | 178 -
.../SoftFloat-3e/source/s_roundPackToExtF80.c | 256 -
deps/SoftFloat-3e/source/s_roundPackToF128.c | 171 -
deps/SoftFloat-3e/source/s_roundPackToF16.c | 113 -
deps/SoftFloat-3e/source/s_roundPackToF32.c | 113 -
deps/SoftFloat-3e/source/s_roundPackToF64.c | 117 -
deps/SoftFloat-3e/source/s_roundToI32.c | 98 -
deps/SoftFloat-3e/source/s_roundToI64.c | 101 -
deps/SoftFloat-3e/source/s_roundToUI32.c | 93 -
deps/SoftFloat-3e/source/s_roundToUI64.c | 97 -
deps/SoftFloat-3e/source/s_shiftLeftM.c | 91 -
.../SoftFloat-3e/source/s_shiftNormSigF128M.c | 78 -
deps/SoftFloat-3e/source/s_shiftRightJam128.c | 69 -
.../source/s_shiftRightJam128Extra.c | 77 -
.../SoftFloat-3e/source/s_shiftRightJam256M.c | 126 -
deps/SoftFloat-3e/source/s_shiftRightJam32.c | 51 -
deps/SoftFloat-3e/source/s_shiftRightJam64.c | 51 -
.../source/s_shiftRightJam64Extra.c | 62 -
deps/SoftFloat-3e/source/s_shiftRightJamM.c | 101 -
deps/SoftFloat-3e/source/s_shiftRightM.c | 91 -
.../SoftFloat-3e/source/s_shortShiftLeft128.c | 55 -
.../source/s_shortShiftLeft64To96M.c | 56 -
deps/SoftFloat-3e/source/s_shortShiftLeftM.c | 70 -
.../source/s_shortShiftRight128.c | 55 -
.../source/s_shortShiftRightExtendM.c | 73 -
.../source/s_shortShiftRightJam128.c | 60 -
.../source/s_shortShiftRightJam128Extra.c | 59 -
.../source/s_shortShiftRightJam64.c | 50 -
.../source/s_shortShiftRightJam64Extra.c | 56 -
.../source/s_shortShiftRightJamM.c | 72 -
deps/SoftFloat-3e/source/s_shortShiftRightM.c | 70 -
deps/SoftFloat-3e/source/s_sub128.c | 55 -
deps/SoftFloat-3e/source/s_sub1XM.c | 60 -
deps/SoftFloat-3e/source/s_sub256M.c | 65 -
deps/SoftFloat-3e/source/s_subM.c | 70 -
deps/SoftFloat-3e/source/s_subMagsExtF80.c | 158 -
deps/SoftFloat-3e/source/s_subMagsF128.c | 139 -
deps/SoftFloat-3e/source/s_subMagsF16.c | 187 -
deps/SoftFloat-3e/source/s_subMagsF32.c | 143 -
deps/SoftFloat-3e/source/s_subMagsF64.c | 141 -
.../source/s_tryPropagateNaNExtF80M.c | 64 -
.../source/s_tryPropagateNaNF128M.c | 55 -
deps/SoftFloat-3e/source/softfloat_state.c | 52 -
deps/SoftFloat-3e/source/ui32_to_extF80.c | 59 -
deps/SoftFloat-3e/source/ui32_to_extF80M.c | 74 -
deps/SoftFloat-3e/source/ui32_to_f128.c | 60 -
deps/SoftFloat-3e/source/ui32_to_f128M.c | 76 -
deps/SoftFloat-3e/source/ui32_to_f16.c | 65 -
deps/SoftFloat-3e/source/ui32_to_f32.c | 57 -
deps/SoftFloat-3e/source/ui32_to_f64.c | 59 -
deps/SoftFloat-3e/source/ui64_to_extF80.c | 59 -
deps/SoftFloat-3e/source/ui64_to_extF80M.c | 74 -
deps/SoftFloat-3e/source/ui64_to_f128.c | 68 -
deps/SoftFloat-3e/source/ui64_to_f128M.c | 86 -
deps/SoftFloat-3e/source/ui64_to_f16.c | 64 -
deps/SoftFloat-3e/source/ui64_to_f32.c | 64 -
deps/SoftFloat-3e/source/ui64_to_f64.c | 59 -
src/Compilation.zig | 194 -
src/stage1.zig | 479 -
src/stage1/all_types.hpp | 4746 ---
src/stage1/analyze.cpp | 10443 ------
src/stage1/analyze.hpp | 314 -
src/stage1/astgen.cpp | 8339 -----
src/stage1/astgen.hpp | 37 -
src/stage1/bigfloat.cpp | 220 -
src/stage1/bigfloat.hpp | 60 -
src/stage1/bigint.cpp | 1895 --
src/stage1/bigint.hpp | 112 -
src/stage1/buffer.cpp | 79 -
src/stage1/buffer.hpp | 211 -
src/stage1/codegen.cpp | 11034 -------
src/stage1/codegen.hpp | 40 -
src/stage1/config.h.in | 30 -
src/stage1/empty.cpp | 0
src/stage1/errmsg.cpp | 135 -
src/stage1/errmsg.hpp | 30 -
src/stage1/error.cpp | 95 -
src/stage1/error.hpp | 17 -
src/stage1/hash_map.hpp | 446 -
src/stage1/heap.cpp | 314 -
src/stage1/heap.hpp | 81 -
src/stage1/ir.cpp | 26627 ----------------
src/stage1/ir.hpp | 34 -
src/stage1/ir_print.cpp | 3543 --
src/stage1/ir_print.hpp | 25 -
src/stage1/list.hpp | 96 -
src/stage1/mem.cpp | 23 -
src/stage1/mem.hpp | 139 -
src/stage1/mem_hash_map.hpp | 244 -
src/stage1/mem_list.hpp | 104 -
src/stage1/mem_type_info.hpp | 25 -
src/stage1/os.cpp | 1282 -
src/stage1/os.hpp | 120 -
src/stage1/parse_f128.c | 1085 -
src/stage1/parse_f128.h | 21 -
src/stage1/parser.cpp | 3603 ---
src/stage1/parser.hpp | 29 -
src/stage1/range_set.cpp | 74 -
src/stage1/range_set.hpp | 30 -
src/stage1/softfloat.hpp | 77 -
src/stage1/softfloat_ext.cpp | 71 -
src/stage1/softfloat_ext.hpp | 16 -
src/stage1/stage1.cpp | 131 -
src/stage1/stage1.h | 230 -
src/stage1/stage2.h | 188 -
src/stage1/target.cpp | 1165 -
src/stage1/target.hpp | 92 -
src/stage1/tokenizer.cpp | 1626 -
src/stage1/tokenizer.hpp | 161 -
src/stage1/util.cpp | 115 -
src/stage1/util.hpp | 247 -
src/stage1/util_base.hpp | 77 -
src/stage1/zig0.cpp | 578 -
src/stage1/zigendian.h | 34 -
491 files changed, 124927 deletions(-)
delete mode 100644 deps/SoftFloat-3e-prebuilt/platform.h
delete mode 100644 deps/SoftFloat-3e/COPYING.txt
delete mode 100644 deps/SoftFloat-3e/README.html
delete mode 100644 deps/SoftFloat-3e/README.txt
delete mode 100644 deps/SoftFloat-3e/doc/SoftFloat-history.html
delete mode 100644 deps/SoftFloat-3e/doc/SoftFloat-source.html
delete mode 100644 deps/SoftFloat-3e/doc/SoftFloat.html
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
delete mode 100644 deps/SoftFloat-3e/source/8086-SSE/specialize.h
delete mode 100644 deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
delete mode 100644 deps/SoftFloat-3e/source/8086/specialize.h
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
delete mode 100644 deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h
delete mode 100644 deps/SoftFloat-3e/source/extF80M_add.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_div.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_eq.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_le.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_lt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_mul.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_rem.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_sub.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_add.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_div.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_eq.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_le.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_lt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_mul.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_rem.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_sub.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_add.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_div.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_eq.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_le.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_lt.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_mul.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_mulAdd.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_rem.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_sub.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128_add.c
delete mode 100644 deps/SoftFloat-3e/source/f128_div.c
delete mode 100644 deps/SoftFloat-3e/source/f128_eq.c
delete mode 100644 deps/SoftFloat-3e/source/f128_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/f128_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/f128_le.c
delete mode 100644 deps/SoftFloat-3e/source/f128_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f128_lt.c
delete mode 100644 deps/SoftFloat-3e/source/f128_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f128_mul.c
delete mode 100644 deps/SoftFloat-3e/source/f128_mulAdd.c
delete mode 100644 deps/SoftFloat-3e/source/f128_rem.c
delete mode 100644 deps/SoftFloat-3e/source/f128_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/f128_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/f128_sub.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/f128_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f16_add.c
delete mode 100644 deps/SoftFloat-3e/source/f16_div.c
delete mode 100644 deps/SoftFloat-3e/source/f16_eq.c
delete mode 100644 deps/SoftFloat-3e/source/f16_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/f16_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/f16_le.c
delete mode 100644 deps/SoftFloat-3e/source/f16_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f16_lt.c
delete mode 100644 deps/SoftFloat-3e/source/f16_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f16_mul.c
delete mode 100644 deps/SoftFloat-3e/source/f16_mulAdd.c
delete mode 100644 deps/SoftFloat-3e/source/f16_rem.c
delete mode 100644 deps/SoftFloat-3e/source/f16_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/f16_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/f16_sub.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/f16_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f32_add.c
delete mode 100644 deps/SoftFloat-3e/source/f32_div.c
delete mode 100644 deps/SoftFloat-3e/source/f32_eq.c
delete mode 100644 deps/SoftFloat-3e/source/f32_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/f32_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/f32_le.c
delete mode 100644 deps/SoftFloat-3e/source/f32_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f32_lt.c
delete mode 100644 deps/SoftFloat-3e/source/f32_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f32_mul.c
delete mode 100644 deps/SoftFloat-3e/source/f32_mulAdd.c
delete mode 100644 deps/SoftFloat-3e/source/f32_rem.c
delete mode 100644 deps/SoftFloat-3e/source/f32_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/f32_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/f32_sub.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f64_add.c
delete mode 100644 deps/SoftFloat-3e/source/f64_div.c
delete mode 100644 deps/SoftFloat-3e/source/f64_eq.c
delete mode 100644 deps/SoftFloat-3e/source/f64_eq_signaling.c
delete mode 100644 deps/SoftFloat-3e/source/f64_isSignalingNaN.c
delete mode 100644 deps/SoftFloat-3e/source/f64_le.c
delete mode 100644 deps/SoftFloat-3e/source/f64_le_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f64_lt.c
delete mode 100644 deps/SoftFloat-3e/source/f64_lt_quiet.c
delete mode 100644 deps/SoftFloat-3e/source/f64_mul.c
delete mode 100644 deps/SoftFloat-3e/source/f64_mulAdd.c
delete mode 100644 deps/SoftFloat-3e/source/f64_rem.c
delete mode 100644 deps/SoftFloat-3e/source/f64_roundToInt.c
delete mode 100644 deps/SoftFloat-3e/source/f64_sqrt.c
delete mode 100644 deps/SoftFloat-3e/source/f64_sub.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_i32.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_i32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_i64.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_i64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_ui32.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_ui64.c
delete mode 100644 deps/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/i32_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/i64_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/include/internals.h
delete mode 100644 deps/SoftFloat-3e/source/include/opts-GCC.h
delete mode 100644 deps/SoftFloat-3e/source/include/primitiveTypes.h
delete mode 100644 deps/SoftFloat-3e/source/include/primitives.h
delete mode 100644 deps/SoftFloat-3e/source/include/softfloat.h
delete mode 100644 deps/SoftFloat-3e/source/include/softfloat_types.h
delete mode 100644 deps/SoftFloat-3e/source/s_add128.c
delete mode 100644 deps/SoftFloat-3e/source/s_add256M.c
delete mode 100644 deps/SoftFloat-3e/source/s_addCarryM.c
delete mode 100644 deps/SoftFloat-3e/source/s_addComplCarryM.c
delete mode 100644 deps/SoftFloat-3e/source/s_addExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_addF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_addM.c
delete mode 100644 deps/SoftFloat-3e/source/s_addMagsExtF80.c
delete mode 100644 deps/SoftFloat-3e/source/s_addMagsF128.c
delete mode 100644 deps/SoftFloat-3e/source/s_addMagsF16.c
delete mode 100644 deps/SoftFloat-3e/source/s_addMagsF32.c
delete mode 100644 deps/SoftFloat-3e/source/s_addMagsF64.c
delete mode 100644 deps/SoftFloat-3e/source/s_approxRecip32_1.c
delete mode 100644 deps/SoftFloat-3e/source/s_approxRecipSqrt32_1.c
delete mode 100644 deps/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c
delete mode 100644 deps/SoftFloat-3e/source/s_approxRecip_1Ks.c
delete mode 100644 deps/SoftFloat-3e/source/s_compare128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_compare96M.c
delete mode 100644 deps/SoftFloat-3e/source/s_compareNonnormExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_countLeadingZeros16.c
delete mode 100644 deps/SoftFloat-3e/source/s_countLeadingZeros32.c
delete mode 100644 deps/SoftFloat-3e/source/s_countLeadingZeros64.c
delete mode 100644 deps/SoftFloat-3e/source/s_countLeadingZeros8.c
delete mode 100644 deps/SoftFloat-3e/source/s_eq128.c
delete mode 100644 deps/SoftFloat-3e/source/s_invalidExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_invalidF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_isNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_le128.c
delete mode 100644 deps/SoftFloat-3e/source/s_lt128.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul128By32.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul128MTo256M.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul128To256M.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul64ByShifted32To128.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul64To128.c
delete mode 100644 deps/SoftFloat-3e/source/s_mul64To128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_mulAddF128.c
delete mode 100644 deps/SoftFloat-3e/source/s_mulAddF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_mulAddF16.c
delete mode 100644 deps/SoftFloat-3e/source/s_mulAddF32.c
delete mode 100644 deps/SoftFloat-3e/source/s_mulAddF64.c
delete mode 100644 deps/SoftFloat-3e/source/s_negXM.c
delete mode 100644 deps/SoftFloat-3e/source/s_normExtF80SigM.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackToExtF80.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackToF128.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackToF16.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackToF32.c
delete mode 100644 deps/SoftFloat-3e/source/s_normRoundPackToF64.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalF128Sig.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalF128SigM.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalF16Sig.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalF32Sig.c
delete mode 100644 deps/SoftFloat-3e/source/s_normSubnormalF64Sig.c
delete mode 100644 deps/SoftFloat-3e/source/s_remStepMBy32.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundMToI64.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundMToUI64.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackMToExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackMToF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackToExtF80.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackToF128.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackToF16.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackToF32.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundPackToF64.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundToI32.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundToI64.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundToUI32.c
delete mode 100644 deps/SoftFloat-3e/source/s_roundToUI64.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftLeftM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftNormSigF128M.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam128.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam128Extra.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam256M.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam32.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam64.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJam64Extra.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightJamM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shiftRightM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftLeft128.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftLeft64To96M.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftLeftM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRight128.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightExtendM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightJam128.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightJam64.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightJamM.c
delete mode 100644 deps/SoftFloat-3e/source/s_shortShiftRightM.c
delete mode 100644 deps/SoftFloat-3e/source/s_sub128.c
delete mode 100644 deps/SoftFloat-3e/source/s_sub1XM.c
delete mode 100644 deps/SoftFloat-3e/source/s_sub256M.c
delete mode 100644 deps/SoftFloat-3e/source/s_subM.c
delete mode 100644 deps/SoftFloat-3e/source/s_subMagsExtF80.c
delete mode 100644 deps/SoftFloat-3e/source/s_subMagsF128.c
delete mode 100644 deps/SoftFloat-3e/source/s_subMagsF16.c
delete mode 100644 deps/SoftFloat-3e/source/s_subMagsF32.c
delete mode 100644 deps/SoftFloat-3e/source/s_subMagsF64.c
delete mode 100644 deps/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c
delete mode 100644 deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c
delete mode 100644 deps/SoftFloat-3e/source/softfloat_state.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/ui32_to_f64.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_extF80.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_extF80M.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_f128.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_f128M.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_f16.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_f32.c
delete mode 100644 deps/SoftFloat-3e/source/ui64_to_f64.c
delete mode 100644 src/stage1.zig
delete mode 100644 src/stage1/all_types.hpp
delete mode 100644 src/stage1/analyze.cpp
delete mode 100644 src/stage1/analyze.hpp
delete mode 100644 src/stage1/astgen.cpp
delete mode 100644 src/stage1/astgen.hpp
delete mode 100644 src/stage1/bigfloat.cpp
delete mode 100644 src/stage1/bigfloat.hpp
delete mode 100644 src/stage1/bigint.cpp
delete mode 100644 src/stage1/bigint.hpp
delete mode 100644 src/stage1/buffer.cpp
delete mode 100644 src/stage1/buffer.hpp
delete mode 100644 src/stage1/codegen.cpp
delete mode 100644 src/stage1/codegen.hpp
delete mode 100644 src/stage1/config.h.in
delete mode 100644 src/stage1/empty.cpp
delete mode 100644 src/stage1/errmsg.cpp
delete mode 100644 src/stage1/errmsg.hpp
delete mode 100644 src/stage1/error.cpp
delete mode 100644 src/stage1/error.hpp
delete mode 100644 src/stage1/hash_map.hpp
delete mode 100644 src/stage1/heap.cpp
delete mode 100644 src/stage1/heap.hpp
delete mode 100644 src/stage1/ir.cpp
delete mode 100644 src/stage1/ir.hpp
delete mode 100644 src/stage1/ir_print.cpp
delete mode 100644 src/stage1/ir_print.hpp
delete mode 100644 src/stage1/list.hpp
delete mode 100644 src/stage1/mem.cpp
delete mode 100644 src/stage1/mem.hpp
delete mode 100644 src/stage1/mem_hash_map.hpp
delete mode 100644 src/stage1/mem_list.hpp
delete mode 100644 src/stage1/mem_type_info.hpp
delete mode 100644 src/stage1/os.cpp
delete mode 100644 src/stage1/os.hpp
delete mode 100644 src/stage1/parse_f128.c
delete mode 100644 src/stage1/parse_f128.h
delete mode 100644 src/stage1/parser.cpp
delete mode 100644 src/stage1/parser.hpp
delete mode 100644 src/stage1/range_set.cpp
delete mode 100644 src/stage1/range_set.hpp
delete mode 100644 src/stage1/softfloat.hpp
delete mode 100644 src/stage1/softfloat_ext.cpp
delete mode 100644 src/stage1/softfloat_ext.hpp
delete mode 100644 src/stage1/stage1.cpp
delete mode 100644 src/stage1/stage1.h
delete mode 100644 src/stage1/stage2.h
delete mode 100644 src/stage1/target.cpp
delete mode 100644 src/stage1/target.hpp
delete mode 100644 src/stage1/tokenizer.cpp
delete mode 100644 src/stage1/tokenizer.hpp
delete mode 100644 src/stage1/util.cpp
delete mode 100644 src/stage1/util.hpp
delete mode 100644 src/stage1/util_base.hpp
delete mode 100644 src/stage1/zig0.cpp
delete mode 100644 src/stage1/zigendian.h
diff --git a/deps/SoftFloat-3e-prebuilt/platform.h b/deps/SoftFloat-3e-prebuilt/platform.h
deleted file mode 100644
index 2c4a0ec88ec3..000000000000
--- a/deps/SoftFloat-3e-prebuilt/platform.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef ZIG_DEP_SOFTFLOAT_PLATFORM_H
-#define ZIG_DEP_SOFTFLOAT_PLATFORM_H
-
-#if defined(__BIG_ENDIAN__)
-#define BIGENDIAN 1
-#elif defined(_BIG_ENDIAN) && (_BIG_ENDIAN == 1)
-#define BIGENDIAN 1
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-#define BIGENDIAN 1
-#elif defined(__ARMEB__)
-#define BIGENDIAN 1
-#elif defined(__THUMBEB__)
-#define BIGENDIAN 1
-#elif defined(__AARCH64EB__)
-#define BIGENDIAN 1
-#elif defined(_MIPSEB)
-#define BIGENDIAN 1
-#elif defined(__MIPSEB)
-#define BIGENDIAN 1
-#elif defined(__MIPSEB__)
-#define BIGENDIAN 1
-#elif defined(__sparc)
-#define BIGENDIAN 1
-#elif defined(__sparc__)
-#define BIGENDIAN 1
-#elif defined(_POWER)
-#define BIGENDIAN 1
-#elif defined(__hpux)
-#define BIGENDIAN 1
-#elif defined(__hppa)
-#define BIGENDIAN 1
-#elif defined(_POWER)
-#define BIGENDIAN 1
-#elif defined(__s390__)
-#define BIGENDIAN 1
-#endif
-
-#if defined(__LITTLE_ENDIAN__)
-#define LITTLEENDIAN 1
-#elif defined(_LITTLE_ENDIAN) && (_LITTLE_ENDIAN == 1)
-#define LITTLEENDIAN 1
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-#define LITTLEENDIAN 1
-#elif defined(__ARMEL__)
-#define LITTLEENDIAN 1
-#elif defined(__THUMBEL__)
-#define LITTLEENDIAN 1
-#elif defined(__AARCH64EL__)
-#define LITTLEENDIAN 1
-#elif defined(_MIPSEL)
-#define LITTLEENDIAN 1
-#elif defined(__MIPSEL)
-#define LITTLEENDIAN 1
-#elif defined(__MIPSEL__)
-#define LITTLEENDIAN 1
-#elif defined(__i386__)
-#define LITTLEENDIAN 1
-#elif defined(__alpha__)
-#define LITTLEENDIAN 1
-#elif defined(__ia64)
-#define LITTLEENDIAN 1
-#elif defined(__ia64__)
-#define LITTLEENDIAN 1
-#elif defined(_M_IX86)
-#define LITTLEENDIAN 1
-#elif defined(_M_IA64)
-#define LITTLEENDIAN 1
-#elif defined(_M_ALPHA)
-#define LITTLEENDIAN 1
-#elif defined(__amd64)
-#define LITTLEENDIAN 1
-#elif defined(__amd64__)
-#define LITTLEENDIAN 1
-#elif defined(_M_AMD64)
-#define LITTLEENDIAN 1
-#elif defined(__x86_64)
-#define LITTLEENDIAN 1
-#elif defined(__x86_64__)
-#define LITTLEENDIAN 1
-#elif defined(_M_X64)
-#define LITTLEENDIAN 1
-#elif defined(__bfin__)
-#define LITTLEENDIAN 1
-#endif
-
-#if defined(LITTLEENDIAN) && defined(BIGENDIAN)
-#error unable to detect endianness
-#elif !defined(LITTLEENDIAN) && !defined(BIGENDIAN)
-#error unable to detect endianness
-#endif
-
-#define INLINE inline
-#if _MSC_VER
-#define THREAD_LOCAL __declspec(thread)
-#else
-#define THREAD_LOCAL __thread
-#endif
-
-#endif
diff --git a/deps/SoftFloat-3e/COPYING.txt b/deps/SoftFloat-3e/COPYING.txt
deleted file mode 100644
index b5690face082..000000000000
--- a/deps/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/deps/SoftFloat-3e/README.html b/deps/SoftFloat-3e/README.html
deleted file mode 100644
index 7989e0c2602e..000000000000
--- a/deps/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/deps/SoftFloat-3e/README.txt b/deps/SoftFloat-3e/README.txt
deleted file mode 100644
index 1613c7671800..000000000000
--- a/deps/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/deps/SoftFloat-3e/doc/SoftFloat-history.html b/deps/SoftFloat-3e/doc/SoftFloat-history.html
deleted file mode 100644
index daa48ca3b374..000000000000
--- a/deps/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/deps/SoftFloat-3e/doc/SoftFloat-source.html b/deps/SoftFloat-3e/doc/SoftFloat-source.html
deleted file mode 100644
index d4b85f7b092f..000000000000
--- a/deps/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/deps/SoftFloat-3e/doc/SoftFloat.html b/deps/SoftFloat-3e/doc/SoftFloat.html
deleted file mode 100644
index bb41770ec521..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c28d7..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771672..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
deleted file mode 100644
index 3405b3ba4efb..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
deleted file mode 100644
index cb7424f430c9..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
deleted file mode 100644
index e7ea80258916..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
deleted file mode 100644
index 7a9423bea290..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
deleted file mode 100644
index d4e458a94143..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
deleted file mode 100644
index ed6c2268f31f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
deleted file mode 100644
index 1182be3c9cdf..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
deleted file mode 100644
index 00baf35f893a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
deleted file mode 100644
index ab6311ef2906..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
deleted file mode 100644
index 55ec25b58c8d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
deleted file mode 100644
index f838f02aaf1f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
deleted file mode 100644
index c1e242d23684..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
deleted file mode 100644
index b21ba660398d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
deleted file mode 100644
index 6529d2ee5fd1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
deleted file mode 100644
index ea1d57a78814..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
deleted file mode 100644
index cc3f0f42c55d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
deleted file mode 100644
index aa903bf80909..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
deleted file mode 100644
index 1c1c2f4a0983..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
deleted file mode 100644
index 4e87ff41f806..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
deleted file mode 100644
index e1a87552506f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
deleted file mode 100644
index 1af349f3e324..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
deleted file mode 100644
index 3115306beedd..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086-SSE/specialize.h b/deps/SoftFloat-3e/source/8086-SSE/specialize.h
deleted file mode 100644
index 5fe119a1e1f1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c28d7..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771672..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
deleted file mode 100644
index 3405b3ba4efb..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
deleted file mode 100644
index cb7424f430c9..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
deleted file mode 100644
index e7ea80258916..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
deleted file mode 100644
index 7a9423bea290..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
deleted file mode 100644
index d4e458a94143..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
deleted file mode 100644
index ed6c2268f31f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
deleted file mode 100644
index 1182be3c9cdf..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
deleted file mode 100644
index 00baf35f893a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
deleted file mode 100644
index ab6311ef2906..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
deleted file mode 100644
index 55ec25b58c8d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
deleted file mode 100644
index f838f02aaf1f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
deleted file mode 100644
index c1e242d23684..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
deleted file mode 100644
index b21ba660398d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
deleted file mode 100644
index 6529d2ee5fd1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
deleted file mode 100644
index ea1d57a78814..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
deleted file mode 100644
index cc3f0f42c55d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
deleted file mode 100644
index 06554fbfe1ec..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
deleted file mode 100644
index 46b9f5f2c25a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
deleted file mode 100644
index 89cc0fe97ea2..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
deleted file mode 100644
index aeb6024acf96..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
deleted file mode 100644
index dabad402482a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
deleted file mode 100644
index 3115306beedd..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/8086/specialize.h b/deps/SoftFloat-3e/source/8086/specialize.h
deleted file mode 100644
index 5fe119a1e1f1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c28d7..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771672..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
deleted file mode 100644
index 54a50dc3575b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 5b698f6645ad..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
deleted file mode 100644
index b22baa816be0..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
deleted file mode 100644
index 70f0cf1c6cfc..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
deleted file mode 100644
index 7c7d5c82e9da..000000000000
--- a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/*----------------------------------------------------------------------------
-| This file intentionally contains no code.
-*----------------------------------------------------------------------------*/
-
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
deleted file mode 100644
index 1c6510c7e3c5..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
deleted file mode 100644
index e1bb1555aa73..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
deleted file mode 100644
index 9bddee955d56..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
deleted file mode 100644
index 57fddd158adc..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
deleted file mode 100644
index 0b08e003967b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
deleted file mode 100644
index cab740358e3b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
deleted file mode 100644
index 83b91d3a9d96..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
deleted file mode 100644
index 61046da3c05e..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h
deleted file mode 100644
index 2c481a259675..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c
deleted file mode 100644
index 85ee211c28d7..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c
deleted file mode 100644
index 79a707771672..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c
deleted file mode 100644
index 543400bc1a92..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
deleted file mode 100644
index 6cf1d119186e..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c
deleted file mode 100644
index 4e8ede07fd01..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c
deleted file mode 100644
index f938c3f2d37e..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c
deleted file mode 100644
index 6cd4fc192c2d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c
deleted file mode 100644
index 7b38167f0022..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c
deleted file mode 100644
index 14847029d28a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c
deleted file mode 100644
index 82216cf4111d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
deleted file mode 100644
index 2559fb6d2c3b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c
deleted file mode 100644
index 322d25ab1e53..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c
deleted file mode 100644
index 843c187a7da1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c
deleted file mode 100644
index f5fe58770d20..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c
deleted file mode 100644
index 58726a357166..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c
deleted file mode 100644
index 03761e4331c6..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c
deleted file mode 100644
index f10ed0b62f11..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
deleted file mode 100644
index bd23c2473658..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c
deleted file mode 100644
index 23e766a1937f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c
deleted file mode 100644
index b8882d77cfba..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c
deleted file mode 100644
index e333328746e6..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c
deleted file mode 100644
index c7508ae7cd1d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
deleted file mode 100644
index 8c67763818a1..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
deleted file mode 100644
index 61046da3c05e..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h b/deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h
deleted file mode 100644
index 5321f33bcaad..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_add.c b/deps/SoftFloat-3e/source/extF80M_add.c
deleted file mode 100644
index 02e415fcc133..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_div.c b/deps/SoftFloat-3e/source/extF80M_div.c
deleted file mode 100644
index 4d543ce9e510..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_eq.c b/deps/SoftFloat-3e/source/extF80M_eq.c
deleted file mode 100644
index e17aa24351e9..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_eq_signaling.c b/deps/SoftFloat-3e/source/extF80M_eq_signaling.c
deleted file mode 100644
index c4a7322393ad..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_le.c b/deps/SoftFloat-3e/source/extF80M_le.c
deleted file mode 100644
index e54eb9eea095..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_le_quiet.c b/deps/SoftFloat-3e/source/extF80M_le_quiet.c
deleted file mode 100644
index 943f262061bf..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_lt.c b/deps/SoftFloat-3e/source/extF80M_lt.c
deleted file mode 100644
index cbc562f64d7c..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_lt_quiet.c b/deps/SoftFloat-3e/source/extF80M_lt_quiet.c
deleted file mode 100644
index 650586d025a9..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_mul.c b/deps/SoftFloat-3e/source/extF80M_mul.c
deleted file mode 100644
index 281394f713f5..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_rem.c b/deps/SoftFloat-3e/source/extF80M_rem.c
deleted file mode 100644
index 4aff18ae9791..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_roundToInt.c b/deps/SoftFloat-3e/source/extF80M_roundToInt.c
deleted file mode 100644
index 2e8572957110..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_sqrt.c b/deps/SoftFloat-3e/source/extF80M_sqrt.c
deleted file mode 100644
index 7ee91e0e5765..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_sub.c b/deps/SoftFloat-3e/source/extF80M_sub.c
deleted file mode 100644
index 5d1895c7a028..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_f128M.c b/deps/SoftFloat-3e/source/extF80M_to_f128M.c
deleted file mode 100644
index da81e8d6b326..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_f16.c b/deps/SoftFloat-3e/source/extF80M_to_f16.c
deleted file mode 100644
index 5ae38d0c4b8a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_f32.c b/deps/SoftFloat-3e/source/extF80M_to_f32.c
deleted file mode 100644
index 47cf224dc1f8..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_f64.c b/deps/SoftFloat-3e/source/extF80M_to_f64.c
deleted file mode 100644
index 5f8f4aa2998b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_i32.c b/deps/SoftFloat-3e/source/extF80M_to_i32.c
deleted file mode 100644
index 06394e34181f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
deleted file mode 100644
index 5f5cf599df94..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
deleted file mode 100644
index ec9b92844c97..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
deleted file mode 100644
index e28b08d70d2a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
deleted file mode 100644
index 87d80897b782..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_div.c b/deps/SoftFloat-3e/source/extF80_div.c
deleted file mode 100644
index 28dfb13de8e2..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_eq.c b/deps/SoftFloat-3e/source/extF80_eq.c
deleted file mode 100644
index efcbc37143c5..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_eq_signaling.c b/deps/SoftFloat-3e/source/extF80_eq_signaling.c
deleted file mode 100644
index 193b191e6cf8..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_isSignalingNaN.c b/deps/SoftFloat-3e/source/extF80_isSignalingNaN.c
deleted file mode 100644
index 33d2abd7e9bf..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_le.c b/deps/SoftFloat-3e/source/extF80_le.c
deleted file mode 100644
index 4e23c5142007..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_le_quiet.c b/deps/SoftFloat-3e/source/extF80_le_quiet.c
deleted file mode 100644
index 9839e47f9e01..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_lt.c b/deps/SoftFloat-3e/source/extF80_lt.c
deleted file mode 100644
index a4ac69fa6c23..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_lt_quiet.c b/deps/SoftFloat-3e/source/extF80_lt_quiet.c
deleted file mode 100644
index 00f4d4768771..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_mul.c b/deps/SoftFloat-3e/source/extF80_mul.c
deleted file mode 100644
index 39ce4012c454..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_rem.c b/deps/SoftFloat-3e/source/extF80_rem.c
deleted file mode 100644
index 5ad977526241..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_roundToInt.c b/deps/SoftFloat-3e/source/extF80_roundToInt.c
deleted file mode 100644
index 6c12d84c9e9f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_sqrt.c b/deps/SoftFloat-3e/source/extF80_sqrt.c
deleted file mode 100644
index af8c496e1432..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_sub.c b/deps/SoftFloat-3e/source/extF80_sub.c
deleted file mode 100644
index 770c7563a248..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_f128.c b/deps/SoftFloat-3e/source/extF80_to_f128.c
deleted file mode 100644
index 4de90ae3166a..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_f16.c b/deps/SoftFloat-3e/source/extF80_to_f16.c
deleted file mode 100644
index 5919403fb9c4..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_f32.c b/deps/SoftFloat-3e/source/extF80_to_f32.c
deleted file mode 100644
index 77fcfdc112ec..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_f64.c b/deps/SoftFloat-3e/source/extF80_to_f64.c
deleted file mode 100644
index 410d6622c4f0..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_i32.c b/deps/SoftFloat-3e/source/extF80_to_i32.c
deleted file mode 100644
index 9acdc3c9bc73..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
deleted file mode 100644
index 03224678a183..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
deleted file mode 100644
index 8871d01d107e..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_ui32.c b/deps/SoftFloat-3e/source/extF80_to_ui32.c
deleted file mode 100644
index 581297731d7c..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
deleted file mode 100644
index be2c53b1d20d..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
deleted file mode 100644
index eca688c65236..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_div.c b/deps/SoftFloat-3e/source/f128M_div.c
deleted file mode 100644
index b443548f5286..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_eq.c b/deps/SoftFloat-3e/source/f128M_eq.c
deleted file mode 100644
index 497fdbf6f037..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_eq_signaling.c b/deps/SoftFloat-3e/source/f128M_eq_signaling.c
deleted file mode 100644
index a9fa4d5101fb..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_le.c b/deps/SoftFloat-3e/source/f128M_le.c
deleted file mode 100644
index 7306e45c363c..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_le_quiet.c b/deps/SoftFloat-3e/source/f128M_le_quiet.c
deleted file mode 100644
index d9e442942d62..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_lt.c b/deps/SoftFloat-3e/source/f128M_lt.c
deleted file mode 100644
index d2f797feaff3..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_lt_quiet.c b/deps/SoftFloat-3e/source/f128M_lt_quiet.c
deleted file mode 100644
index adbddea71caf..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_mul.c b/deps/SoftFloat-3e/source/f128M_mul.c
deleted file mode 100644
index 4b8292a27a72..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_mulAdd.c b/deps/SoftFloat-3e/source/f128M_mulAdd.c
deleted file mode 100644
index 2b0b7fe26e69..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_rem.c b/deps/SoftFloat-3e/source/f128M_rem.c
deleted file mode 100644
index 39aafdd6ad5c..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_roundToInt.c b/deps/SoftFloat-3e/source/f128M_roundToInt.c
deleted file mode 100644
index b96d742b214b..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_sub.c b/deps/SoftFloat-3e/source/f128M_sub.c
deleted file mode 100644
index 5d65c799f31f..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_to_extF80M.c b/deps/SoftFloat-3e/source/f128M_to_extF80M.c
deleted file mode 100644
index b0340c794854..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_to_f16.c b/deps/SoftFloat-3e/source/f128M_to_f16.c
deleted file mode 100644
index 95109a771d70..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_to_f32.c b/deps/SoftFloat-3e/source/f128M_to_f32.c
deleted file mode 100644
index 4542deb0c384..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_to_f64.c b/deps/SoftFloat-3e/source/f128M_to_f64.c
deleted file mode 100644
index 6213bb7f50a2..000000000000
--- a/deps/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/deps/SoftFloat-3e/source/f128M_to_i32.c b/deps/SoftFloat-3e/source/f128M_to_i32.c
deleted file mode 100644
index 54cc6f603737..000000000000
--- a/deps/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