This patch adds unit test cases for mips16 wrappers for floating-point arithmetic, comparison and type-conversion operations.
Background: mips16 code is not aware of floating point registers and call-conventions. For platforms that support floating point operations, mips16 code resorts to calling an appropriate low-level wrapper function with the float arguments in general purpose registers. The low-level function copies the arguments to FP registers, performs the operation and returns the result to the caller in a GP register. For some operations, test results are compared either against pre-calculated reference output, while for others, the corresponding soft-float implementation is used as reference.
Test cases are provided for the following wrappers:
Arithmetic(single & double precision): add, sub, mul, div
Comparison(single & double precision): eq, ne, gt, ge, lt, le, unord
Type conversions:
To signed integer: fix_truncXfsi To float: floatunsiXf, floatsiXf Within float formats: truncdfsf, extendsfdf
Who defines this substitution?