Indicated encoding of large shifts better

For example here's the bit encoding for divide/shift right. In the
implementation the 5bit immediate should just get sent directly to the
barrel shifter.

div ra,rb,rd        ; ra := ra / rb ; rd := ra % rb
| op |f| rd| ra| rb|sh|
|1001|1|xxx|xxx|xxx|--|

shra ra,$imm4,rd    ; rd := ra >> imm4 (arithmetic)
| op |f| rd| ra|a|imm4|
|1001|0|xxx|xxx|1|xxxx|

shrl ra,$imm4,rd    ; rd := ra >> imm4 (logical)
| op |f| rd| ra|a|imm4|
|1001|0|xxx|xxx|0|xxxx|
Added calling convention suggestion for return values