Theo <
theom+news@chiark.greenend.org.uk> wrote:
Computer Nerd Kev <not@telling.you.invalid> wrote:
2) Is this really the only copy of the instruction set (the
public Broadcom documentation doesn't cover the VPU)?
https://github.com/hermanhermitage/videocoreiv/wiki/VideoCore-IV-Programmers-Manual
The formatting isn't very easy to read as a quick reference.
This instruction set should be common to all the Pi models
pre-Pi4.
It's reverse engineered, and Herman is the one who did the reverse engineering (~2014 or so). So I'm not surprised that it's the only documentation.
I was hoping that someone had at least rearranged the info into
more of a table structure, like you'd get from a chip manufacturer
that doesn't insist on keeping most of their docs soopa secret.
There are a handful of example assembly routines out there that
people have written for the VPU. It seems like some would have been
very hard to write with only a reference like that, but maybe
everyone just makes their own version and keeps it to themselves,
or they're just vastly better at remembering instruction sets
than me.
On the other hand I read that it's based on ARM, so maybe there are
some rules by which you can easily tell which ARM instructions are
valid or equivalent for the VPU?
I see there are some QPU assemblers but not sure if anyone has written any toolchain for the VPU. If so, they might have the ISA better represented.
Sure, I've found three so far, and I have gone looking though the
sources of some in the hope of finding useful comments, but so far
I've just seen lists of instruction names without descriptions of
what they do.
https://github.com/itszor/vc4-toolchain https://github.com/christinaa/LLVM-VideoCore4
http://www.compilers.de/vbcc.html
Really everything I want to do is in the examples anyway, but a
convenient instruction set reference would make things easier and
probably save some guesswork.
Or I could use one of those toolchains and write the code in C,
but I suspect that might just introduce more uncertainties because
none of them claim to be near release-quality. Plus I'm starting
with something very simple anyway.
--
__ __
#_ < |\| |< _#
--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)