[Libre-soc-dev] [RFC] SVP64 on branch instructions

Jacob Lifshay programmerjake at gmail.com
Tue Aug 3 19:21:33 BST 2021


On Tue, Aug 3, 2021, 07:52 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> drat. fricking gmail HTML Basic mode is barely useable. hit send
> instead of save. grrr.
>
> ok.
>
> https://libre-soc.org/openpower/sv/branches/?updated
>
> i've added the example and created SVP64 hypothetical assembler.


ok, 3 issues:
1. CR fields set before a call and used after a call will not work, unless
you pick callee-saved fields. icr what ABI we picked, but I expect around
half of them to be callee-saved and half to be caller-saved. In all ABIs
I've seen, argument registers aren't preserved (you used them to pass the
predicates to the functions, then tried to read the same register
immediately after the function call, where it is potentially overwritten by
the function).

2. some branch instructions are missing commas to separate arguments.

3. the branch at the end that branches back to the top of the while loop
needs to either be an unconditional branch to the while loop's test (though
basically all compilers don't do that), or replicate the code for testing
the condition at the bottom of the loop (what basically all compilers do,
iirc).

Jacob


More information about the Libre-soc-dev mailing list