by billcow » Jun 16, 2002 @ 10:50pm
Yeah, that site says the SRTSH is a StrongArm extension, the quickref card I have is plain ARM only. Which would indicate that the MS compiler isn't StrongARM specific.
As for the overflow, the compiler can't be sure that the programmer is smart enough to prevent overflow, so it has to cover it's bases. Since MS didn't provide us with very much choices for the level of optimization, the compiler has to take the safe road. In this case, the overflow check is done right before the write, but since there are so many ways to check for overflow, it would be difficult for a compiler to check for any possible overflow check. As a result, the only way to tell it not to would be to use a #pragma statement or something like that, but the MS compiler doesn't have one.
The writeback (I wasn't aware of that term for it, which is why I brought it up after you already did) is probably only used by the compiler when you use "*(p++)=a" instead of "*p=a; p++;". Unlike overflow checks, detecting this is relatively easy, so there isn't really any excuse.
My opinion is that the compiler isn't that bad, but it does have a few issues nonetheless. Most of the problems it does have are excusable for various reasons.
Most people don't know that "A highly technical term" is actually a highly technical term used to describe something that doesn't mean anything