[Libre-soc-dev] Task 939 and its subtasks

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Nov 24 02:33:34 GMT 2022


Hendrik: the Formal Proof of the Power ISA was done by Boris
Shingarov, last year.  at the very least he used the same
MDWN files which are in Power ISA pseudocode, as used by the
ISACaller compiler.

the pseudocode is not even recognised by the original authors
as a language, let alone a Turing-complete unambiguous one.
we were the first and only team to say "that's not ok, there
is too much to do here", everyone else hand-wrote simulators
and decoders (including qemu, including binutils, quantity
10,000 instructions)

Jacob, you keep doing this: you have a very ungrounded concept
of time vs effort, because of lack of experience. Also,
Asperger's prioritises "tidiness" and "exactness" over all
other factors including "realistically affordable".  your
suggestions are the "perfect scenario" where neither time
nor cost matter in the least.

Please respect when i say "no", and think "why has he said no,
what factors did I miss". you are intelligent enough to
work them out, and I simply do not have the time to explain
them. it is therefore your responsibility to work through
"why did he say no" so that i am not burdened with explaining.

Dimitry, yes an expression is quite a high threshold, an
even simpler one is just to return the incoming register.
don't even add to it, not even a constant.

there is only one type: a fixed-bit-length integer.
absolutely nothing else.  lengths may be inferred especially
when doing "result[0:XLEN-1] = something", you *know*
result must be declared at precisely XLEN bits.

accumulating these lengths allows the (one) type of object
to be statically declared by adding to a list, that is
last-minute added after all BNF tree-walking finishes, to
the top of the AST.

it is extremely straightforward.

the only tricky bit is EXTS() and undefined() both of which
set their return result to "arbitrary unlimited length"
and SelectableInt picks up the slack.  the same trick
should be doable in c but it will be slower than full
static multi-pass compilation (achievable with AST
post-processing and other fun)

we can cross that bridge when it comes to it.

L.

-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the Libre-soc-dev mailing list