I just committed a little binary analysis tool to moxiedev. You can use it to perform simple static analysis on moxie binaries. The kinds of things I'm looking for are compiler bugs (because I know there's still one there that is triggered by -frerun-cse-after-loop), and instruction statistics. For instance, which …
Sooo..... it turns out there's lots to take care of before userland apps like BusyBox can run.
- The root filesystem. This one is easy. I just built a short Hello World application in C with moxie-uclinux-gcc. This produces an executable in BFLT format which I call 'init'. The kernel build …
I've committed the PC-relative branch instruction changes upstream. But this is just one of many ISA improvements that need to happen. Here are a handful of other ideas off the top of my head. None of these projects should be particularly difficult.
- Shorten load/store offsets to 16-bits. They are …
The Moxie ISA still needs quite a bit of tuning. Take branches, for
instance. A beq
instruction currently encoded like so...
`00001111xxxxxxxx iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii`
...where the "x
"s represent "don't care" bits, and "i
"s are a
32-bit absolute branch target. That's right -- branch targets are not PC
relative! This …
My first go at exceptions is working well. The basic idea is that moxie will have a single exception handling routine whose address lives in special register 1. You set the exception handler like so:
void install_handler(void (*handler)(void))
{
printf ("Installing handler 0x%x\n", (unsigned) handler);
asm("ssr …