On 26 November 2014 at 16:48, Mathias Roslund <mathias.rosl...@amidog.se> wrote:
> Since then I've added more instructions and gotten to the point where most
> stuff seems to be working. My current issue is that signed divide and all
> shift operations insists on sign/zero extending the operands, resulting in
> 32bit operations even when only 8bit ones would be required.

That's a matter of the input language.  In C, you get default promotions to
int from narrower integer types.

> Interestingly,
> multiplies and unsigned divides behave as desired, i.e. only operate on the
> required number of bits.

That's because the results are the same regardless, and the optimizers
are able to undo the effects of the type promotions.

Reply via email to