Age | Commit message (Collapse) | Author | Files | Lines |
|
This commit bumps newlib from 4.1.0 to 4.3.0.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
Both the glibc and newlib submodules are already pointing to the
upstream repositories where development happens.
Since they are therefore not referring to RISC-V specific forks,
this patch unifies the directory naming by only prepending the
"riscv-" prefix to submodules that point to repositories in the
riscv-collab Github organization.
Signed-off-by: Florian Hofhammer <florian.hofhammer@fhofhammer.de>
|
|
|
|
|
|
|
|
- -march controls which instructions may be emitted, and does not
affect ABI.
- -mno-float is equivalent to passing neither F for D to -march;
-msingle-float is equivalent to passing F but not D to -march;
and -mdouble-float is equivalent to passing F and D to -march.
- -mfloat-abi controls which calling convention is used: "soft" means
no args passed in registers; "single" means only single-precision
values are passed in regisers; "double" means single- and
double-precision values are passed in registers.
- -mfloat-abi defaults to "soft" if the D extension is not present,
or "double" if it is.
- GCC will issue an error if -mfloat-abi requires an extension not
provided by -march, but vice-versa is OK.
Closes #187 (I hope).
@kito-cheng can you test this and let me know what I need to fix?
|
|
|
|
|
|
Soft-float calling convention is default, but an alternate hard-float
calling convention (with doubles passed as in soft-float, but floats
passed as in hard-float) is supported.
|
|
There are no guarantees that the break going to be located exactly
at the _end, but brk(0) is guaranteed to return its current value.
QEMU ELF loader moves the initial break up to the next page boundary,
disabling sbrk-based malloc for any allocations smaller than
the adjustment made. And ASLR may do even worse.
|
|
|
|
This reduces the performance cliff between RV32 and RV64 slightly,
without an egregious increase in code size.
|
|
|
|
|
|
Otherwise, gp will be used to load gp...
|
|
|
|
GCC's softfloat is built by default without support for dynamic
rounding modes. This makes softfloat newlib's floating point always
round-to-zero, and returns a failure code when trying to set it.
This patch is needed to make newlib compile on anything without F, as
it used to try use an undefined instruction to do this.
|
|
You're only supposed to return 0 if the exception mask was set
correctly, and this doesn't set the mask at all.
|
|
|
|
I screwed up when porting it to the new calling convention.
|
|
Thread-local storage shouldn't be affected by these calls.
|
|
"jump" was renamed to "tail" (as in tail call) and may freely clobber a
t-register, as before. A new "jump" was added that requires a second
argument, which is the scratch register it may clobber.
"tail" should be used for tail calls; "jump" should be used for
intraprocedural jumps more than 1 MiB away.
|
|
h/t Martin Maas
|
|
v0-1 are removed; arguments are now returned in a0-1. Registers are
renumbered so that s0-1 and a0-5 map to x8-15 to simplify the RVC ISA.
(These are the most popular 8 registers besides x0 and sp.)
|
|
|