But maybe this is a vote to consider the current support an unofficial
ABI? I suppose I could make gcc emit a warning when someone chooses
to use the rv32e/ilp32e support, as the rv32e spec isn't final yet,
and the ilp32e ABI is not an official ABI.
The current ABI seems based on the existing non-E Linux ABI, which has way to much overhead for an embedded profile (which ‘E’ stands for).
There’s no vote, but if there were I would vote for waiting until the embedded ABI is finished before continuing much work on the current RV32E ABI.
Maybe parking it as a branch is the right approach?
Richard
--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/sw-dev/CAG7hfc%2BCiGYRG%2B_WNW5tWy3mzGcx6F_rdDz3VFM98e4vVE_%3Dfg%40mail.gmail.com.
.....
The newlib RV32E support is already upstream, and has already appeared
in newlib releases, which means that we can't easily make changes
without the risk of creating backward compatibility problems.
There are also gdb sim patches, but that hasn't been upstreamed yet.
And I have a small hack to qemu so that "make check" in the
riscv-gnu-toolchain tree can work.
....
Is there a specific branch or tag that needs to be used to compile the toolchain with RV32E support ?I've just tried master branch (../configure --with-arch=rv32e --prefix=/opt/riscv32e) but it fails at configure-gcc in build-gcc-newlib-stage1
....
The RV32E support is on the riscv-next branch, which in theory holds
patches that are meant to be upstreamed. You need to check out the
riscv-next branch in the riscv-binutils-gdb and riscv-gcc
subdirectories.
--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/sw-dev/CAK8P3a0yA7XSHREHUNwwrbVX8hx8mbC7E%2BVsFfM_q5OQqJBmXw%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/sw-dev/CAFyWVaY1kRdQu0HLmZgxfC2Zsi%2BTb_ROcqWT7rq2qum%3DX9-QtQ%40mail.gmail.com.
On Wed, May 16, 2018 at 9:05 PM, Bruce Hoult <bruce...@sifive.com> wrote:
> I think the currently-implemented RV32E ABI isn't horrible. In fact I think
> the syscall number in t0 is *better* than a7 and we should do that in the
> non-E ABIs too. Too late?
For the current linux ABI, yes, it is too late to change.
> I think the only thing I'd consider changing would be to reduce the number
> of function arguments from six to four. ARM gets away with four, and much
> embedded code is already written around that. I'd re-purpose x14-15 as s3-4.
> Two s registers isn't enough.
This has already been suggested for the new ABI.
> This would also reduce the number of registers an interrupt handler needs to
> save before calling normal compiled C code from ten to eight: ra, a0-3,
> t0-2.
For this reason.
> For simplicity, I'd allow embedded code on non-E systems to use the E ABI,
> with x16-31 all extra s registers.
This has also already been suggested for the new ABI.
--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/sw-dev/CAP8PnuQjw9x8uf3Ne4WrxE87a8tUMjDWu%3DquhHNBpRh_zTJkNQ%40mail.gmail.com.
sorry, am getting confused following the chain. I was under the impression that the toolchain with Embedded ABI for RISCV has not been developed yet that would give me an advantage over code size. My embedded target will not be running Linux and it will just be a baremetal code.can you please clarify if the currently-implemented EABI gives any advantage over code size? If it is going to get deprecated then why even push it upstream?
On 17 May 2018 at 14:52, Bruce Hoult <bruce...@sifive.com> wrote:
That question is irrelevant to the function call ABI.RV32E is intended for machines so small that implementing the full 32 registers is seen as a burden. Inevitably, someone will create a code base on such a machine, and then want to run the same code on a more powerful implementation, possibly with a Linux-like operating system.Some people (e.g. you, as I understand it) also want an "embedded" ABI to run on machines with the full 32 registers, but with a reduced interrupt latency by having fewer registers that must be saved by an interrupt routine before calling compiled C code. The RV32E *ABI* seems suitable for that, even on a machine with 32 registers.
On Thu, May 17, 2018 at 8:54 PM, Liviu Ionescu <i...@livius.net> wrote:On 17 May 2018 at 11:31:34, Christoph Hellwig (h...@lst.de) wrote:
> On Thu, May 17, 2018 at 04:05:37PM +1200, Bruce Hoult wrote:
> > I think the currently-implemented RV32E ABI isn't horrible. In fact I think
> > the syscall number in t0 is *better* than a7 and we should do that in the
> > non-E ABIs too. Too late?
>
> For the Linux syscall ABI: yes.
Are the RV32E devices intended to run Linux?
Liviu
--
You received this message because you are subscribed to the Google Groups "RISC-V SW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sw-dev+un...@groups.riscv.org.
To post to this group, send email to sw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/sw-dev/.
On 18 May 2018 at 19:36:50, Palmer Dabbelt (pal...@sifive.com) wrote:
> ... An ABI is very hard to change once it's been released,
a good reason to not upstream the current RV32E.
> ... We're
> very early in this embedded ABI idea -- for example, there's not
> even a proposal yet.
there is:
https://github.com/emb-riscv/specs-markdown/blob/develop/eabi.md
however I agree that this is a very early proposal, and more work is required.
Evaluating an ABI is not merely a paper or thought exercise. People need to try it.