lkml.org 
[lkml]   [2003]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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/

\
 
 \ /
  Last update: 2005-03-22 13:35    [W:0.036 / U:0.952 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site