- Take the branch set by SETJT and SETD after its delay slot executes
- Make the delayed branch state conditional under symbolic conditions
so the pc forks after the slot
- Check returns and automerge jumps after their delay slot
- Add a mips test for calls, branches and returns with delay slots
The example demonstrates how to use libc function emulation, which can
make a huge difference in runtime for a stripped binary that statically
links against glibc. The test binary links against musl for size reasons.
The source code of tests/statically-linked is
int main(int argc, char **argv) {
if (strcmp(argv[1], "s3cret_p4s$w0rd"))
puts("wrong");
}
It was compiled with `musl-gcc -static -Os -s`.