Это не совсем ответ. Я просто изучаю, что Crashworks сказал о PowerPC. Как уже отмечали другие, использование типа, который сопоставляется с собственным размером слова, должно дать самый короткий код и лучшую производительность.
$ cat loop.c
extern void bar();
void foo()
{
int i;
for (i = 0; i < 42; ++i)
bar();
}
$ powerpc-eabi-gcc -S -O3 -o - loop.c
.
.
.L5:
bl bar
addic. 31,31,-1
bge+ 0,.L5
С short i
он отличается от int i
, и, похоже, тоже не будет работать.
.L5:
bl bar
addi 3,31,1
extsh 31,3
cmpwi 7,31,41
ble+ 7,.L5