aboutsummaryrefslogtreecommitdiff
path: root/lib/std/special/compiler_rt/extend_f80.zig
AgeCommit message (Collapse)Author
2022-05-06flatten lib/std/special and improve "pkg inside another" logicAndrew Kelley
stage2: change logic for detecting whether the main package is inside the std package. Previously it relied on realpath() which is not portable. This uses resolve() which is how imports already work. * stage2: fix cleanup bug when creating Module * flatten lib/std/special/* to lib/* - this was motivated by making main_pkg_is_inside_std false for compiler_rt & friends. * rename "mini libc" to "universal libc"
2022-02-23compiler_rt: specify goals, organize README and compiler_rt.zigJan Philipp Hafer
* goals - zig as linker for object files generated by other compilers - zig-specific runtime features for eventual standardisation * changes - missing routines are marked with `missing` - structure inspired by libgcc docs, but improved order and wording - rename misspelled functions - reorder and rephrase compiler_rt.zig to reflect documentation - potential decimal float or fixed-point arithmetic support: * 'Decimal float library routines' ca. 120 functions * 'Fixed-point fractional library routines' ca. 300 functions thanks to @Vexu for multiple reviews and @scheibo for review
2022-02-12make f80 less hacky; lower as u80 on non-x86Andrew Kelley
Get rid of `std.math.F80Repr`. Instead of trying to match the memory layout of f80, we treat it as a value, same as the other floating point types. The functions `make_f80` and `break_f80` are introduced to compose an f80 value out of its parts, and the inverse operation. stage2 LLVM backend: fix pointer to zero length array tripping LLVM assertion. It now checks for when the element type is a zero-bit type and lowers such thing the same way that pointers to other zero-bit types are lowered. Both stage1 and stage2 LLVM backends are adjusted so that f80 is lowered as x86_fp80 on x86_64 and i386 architectures, and identical to a u80 on others. LLVM constants are lowered in a less hacky way now that #10860 is fixed, by using the expression `(exp << 64) | fraction` using llvm constants. Sema is improved to handle c_longdouble by recursively handling it correctly for whatever the float bit width is. In both stage1 and stage2.
2022-02-04compiler-rt: add extend functions for f80Veikka Tuominen