Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sat, 26 Apr 2003 20:09:45 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [PATCH] Alternative patching for prefetches & cleanup |
| |
On Sun, 27 Apr 2003, Andi Kleen wrote: > > It also adds nop types for various CPUs straight from their optimization > manuals. Now you can always get the fastest nops for K7,K8 and Intel. > I moved them into the include files to make it easy to use them > for padding alternative()s. Some cleanups in the patch function to use this.
Please, this part I definitely want cleaned up.
> +++ linux-gencpu/arch/i386/kernel/setup.c 2003-04-27 04:12:32.000000000 +0200 > @@ -795,41 +795,42 @@ > pci_mem_start = low_mem_size; > } > > +asm("nops: " > + ASM_NOP1 ASM_NOP2 ASM_NOP3 ASM_NOP4 ASM_NOP5 ASM_NOP6 > + ASM_NOP7 ASM_NOP8); > +
This in particular is just too ugly for words. Why can't you just have a
static const char *intel_nops[] = { NULL, INOP1, INOP2, INOP3, INOP4, INOP5, INOP6, INOP7, INOP8 };
static const char *k7_nops[] = { NULL, K7NOP1, K7NOP2, ... }
....
/* * This will be overridden at boot once we find out what kind of * CPU we actually have */ static char **nops = intel_nops;
and then just use
.. nops[size] ..
when you want a nop of size "size".
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |