There have been two main additions to chump. Firstly it allows enumerations to get rid of the laboreous process of defining long consecutive lists like registers.
(enum 2 "r0" "r1" "r2" "r3")reather than
(("r0")(OO)) (("r1")(OI)) (("r2")(OI)) (("r3")(II))
The second addition is the ability to have inline C type structuures in the assembler. Its nice to be able to have lines like:
while (r1 > r2) sub r1, r1, r2;Or even larger structures like:
do {add r1, r1, #1; ldrb r0, [r2, r1];}
while (r0 != #0)
These are easily defined in the chump code and generate several instructions. The disassembler can generate more C like code, but this is normally turned off.