Hi, Sorry for insisting but I kept working on this and found no solution.
vtop->r and vtop->cmp_r are used interchangeably in some parts of the codebase and I don't really understand why. I tried using vtop->r but it just generates invalid values. Also RISC-V does not use flags so the process is different than in the other architectures so I don't have a good reference to look at in any others. Does anyone have an idea about how can I tackle this? I managed to make the code generate the correct branch instructions but I can't figure out how to obtain the correct registers. Thanks a lot, Ekaitz ------- Original Message ------- On Thursday, August 11th, 2022 at 1:36 PM, Ekaitz Zarraga <eka...@elenq.tech> wrote: > Hi, > > I think I have it mostly working following your advice but I cannot find how > to map v->cmp_r to the field that was storing that information before the > commit. > > > In the gjmp_cond in riscv: > > ``` c > ST_FUNC int gjmp_cond(int op, int t) > { > int tmp; > int a = vtop->cmp_r & 0xff; > > int b = (vtop->cmp_r >> 8) & 0xff; > > switch (op) { > ``` > > What do I need to replace `a` and `b` with to use the previous register > access but I can't find how to do that. > > Could you please help me? > > Thank you, > Ekaitz > > > ------- Original Message ------- > On Wednesday, August 10th, 2022 at 1:53 PM, Ekaitz Zarraga eka...@elenq.tech > wrote: > > > > > Hi, > > > > On Wednesday, August 10th, 2022 at 1:43 PM, grischka gris...@gmx.de wrote: > > > > > On 09.08.2022 20:39, Ekaitz Zarraga wrote: > > > > > > > Hi all, > > > > > > > > I'm working on the RISC-V bootstrapping efforts for Guix, and I have to > > > > backport the RISC-V backend to an older TinyCC version we have patched > > > > in order to be able to build it with a simpler compiler. > > > > > > I wonder why not just apply these patches to the newer tcc then? > > > > Mostly because the compiler we use to compile TinyCC does not provide all > > the C constructs modern TinyCC is using nowadays, so we can't use it now. > > We may be able to do it in the future, but our current compiler chain does > > not allow us to do that. > > > > > > The process worked mostly ok, but I can't understand very well the > > > > `gtst` function in the generation part, and I need to write it from > > > > scratch as the commit 8227db3a changed how the tests and jumps are > > > > managed. > > > > > > Actually that commit was to put the former gtst() function in its pieces, > > > now gjmp_cond(t, op) to handle VT_CMP, and gjmp_append(n, t) for the > > > former VT_JMP "optimization" part. > > > > Do you mean the commit was done to split the function in two? > > I'll take a deeper look and see if I can undo it properly. > > > > Thanks for the help > > > > _______________________________________________ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel