Re: kernel and egcs

Hans-Joachim Widmaier (hjwidmai@foxboro.com)
Tue, 27 Jan 1998 09:10:03 +0100


Michael Elizabeth Chastain:
> The code in question looks like this:
>
> /* include/asm-i386/string.h */
> switch (n % 4) {
> case 0: COMMON(""); return to;
> case 1: COMMON("\n\tmovsb"); return to;
> case 2: COMMON("\n\tmovsw"); return to;
> case 3: COMMON("\n\tmovsw\n\tmovsb"); return to;
> }
>
> The compiler isn't smart enough to figure out that one of the cases
> is always taken.

Why not tell it that one is always taken?

switch (n % 4) {
case 0: COMMON(""); return to;
case 1: COMMON("\n\tmovsb"); return to;
case 2: COMMON("\n\tmovsw"); return to;
default: COMMON("\n\tmovsw\n\tmovsb"); return to;
}

-
Hans-Joachim Widmaier