The output of this program is undefined. The WLPP specification does not
tell you what the layout of your variables should be in memory. Most
implementations will produce whatever (probably garbage or zero) word
happens to be 4 words (not bytes) after b in memory.
Though since what's there is undefined, simply generating "jr $31" is a
reasonable program, since it also does nothing but produce an undefined
output (just like the WLPP source).