It was thus said that the Great ben via cctalk once stated:
I don't know about the VAX,but my gripe is the x86 and the 68000 don't
automaticaly promote smaller data types to larger ones. What little
programming I have done was in C never cared about that detail.
Now I can see way it is hard to generate good code in C when all the
CPU's are brain dead in that aspect.
char *foo, long bar;
... foobar = *foo + bar
is r1 = foo
r3 = * r1
r2 = bar
sex byte r3
sex word r3
r4 = r3 + r2
foobar = r3
what I want is
bar = * foo + bar
nice easy coding.
What CPUs did it correctly? And how did they handle signed vs. unsigned
promotion?
unsigned char *ufoo;
unsigned long ubar;
ufoobar = *ufoo + ubar;
signed char *foo;
signed long bar;
foobar = *foo + bar;
-spc