Oldland: fix constant ranges for arithmetic instructions.

Constants for arithmetic instructions are signed, 13-bit instructions
with a range of -4096 to +4095.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Oldland: annotate instruction length for move instructions.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Oldland: don't assume that SP can be moved with a single add/subsi3.

The integer constants to arithemtic instructions are signed, 13-bits, so
-4096 to +4095.  With large stacks (such as seen in u-boot) it is not
possible to do this with a single constant, and this happens at a stage
where we can't allocate pseudo registers.

Adjust the stack with multiple instructions as required.  A more optimal
solution will be to use this pattern for adjustments of 3*4095, and
anything larger use a movhi+orlo+add which will result in fewer
instructions.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>