Received: from mail.onstor.com (66.201.51.107) by exch1.onstor.net
 (10.0.0.225) with Microsoft SMTP Server id 8.1.311.2; Tue, 25 Nov 2008
 15:14:16 -0800
Received: from ausesmta2-3.messageone.com ([64.20.241.45]) by mail.onstor.com
 with Microsoft SMTPSVC(6.0.3790.3959);	 Tue, 25 Nov 2008 15:14:16 -0800
Received: from ftp.linux-mips.org (ftp.linux-mips.org [213.58.128.207])	by
 ausesmta2-3.messageone.com (8.13.8/8.13.8) with ESMTP id mAPNEELc021144	for
 <andy.sharp@onstor.com>; Tue, 25 Nov 2008 17:14:15 -0600
Received: from localhost.localdomain ([127.0.0.1]:54429 "EHLO
	ftp.linux-mips.org") by ftp.linux-mips.org with ESMTP	id S23914944AbYKYXNA
 (ORCPT <rfc822;andy.sharp@onstor.com>);	Tue, 25 Nov 2008 23:13:00 +0000
Received: with ECARTIS (v1.0.0; list linux-mips); Tue, 25 Nov 2008 23:12:43
 +0000 (GMT)
Received: from fnoeppeil48.netpark.at ([217.175.205.176]:16064 "EHLO
	roarinelk.homelinux.net") by ftp.linux-mips.org with ESMTP	id
 S23914932AbYKYXMe (ORCPT <rfc822;linux-mips@linux-mips.org>);	Tue, 25 Nov
 2008 23:12:34 +0000
Received: (qmail 10397 invoked by uid 1000); 26 Nov 2008 00:12:30 +0100
From: Manuel Lauss <mano@roarinelk.homelinux.net>
To: LMO <linux-mips@linux-mips.org>, Ralf Baechle <ralf@linux-mips.org>
Sender: "linux-mips-bounce@linux-mips.org" <linux-mips-bounce@linux-mips.org>
Date: Tue, 25 Nov 2008 15:12:30 -0800
Subject: [PATCH v2] Alchemy: cpu feature override constants.
Thread-Topic: [PATCH v2] Alchemy: cpu feature override constants.
Thread-Index: AclPU4mIeXUW0MvZRE29YEvxiHDh5A==
Message-ID: <20081125231230.GA10366@roarinelk.homelinux.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 0b
X-MS-Exchange-Organization-AuthSource: exch1.onstor.net
X-MS-Has-Attach:
X-Auto-Response-Suppress: All
X-MS-TNEF-Correlator:
x-originalarrivaltime: 25 Nov 2008 23:14:16.0154 (UTC)
 FILETIME=[895293A0:01C94F53]
user-agent: Mutt/1.5.16 (2007-06-09)
errors-to: linux-mips-bounce@linux-mips.org
x-ems-proccessed: 2K3Xl1OQTInXD6xxuA8z3Q==
x-ems-stamp: lIxbDFnxlrnXgFMoCKVR0g==
x-messageone-virus-version: vendor=fsecure
 engine=4.65.7400:2.4.4,1.2.40,4.0.164
 definitions=2008-11-25_08:2008-11-24,2008-11-25,2008-11-25 signatures=0
x-messageone-virus-scanned: Clean
x-messageone-envelope-sender: linux-mips-bounce@linux-mips.org
x-messageone-spam-details: rule=m773emszm_notspam policy=m773emszm score=0
 spamscore=0 ipscore=0 phishscore=0 bulkscore=0 adultscore=0 classifier=spam
 adjust=0 reason=mlx engine=3.1.0-0810130000 definitions=main-0811250148
x-messageone-spam-score: 0
x-messageone-spam-bar:
x-list: linux-mips
x-archive-position: 21432
x-ecartis-version: Ecartis v1.0.0
x-original-sender: mano@roarinelk.homelinux.net
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

Add cpu feature override constants for Alchemy.

This helps code generation: fls() for instance is compiled without
using the clz instruction; other macros which do runtime feature
detection fall back on safe legacy code as well.  Adding this override
fixes that.  As a sideeffect, the size of a kernel built with an
extended db1200 defconfig is reduced by over 200kB:

   text    data     bss     dec     hex filename
3901089  124160  436528 4461777  4414d1 vmlinux
3676433  124096  436528 4237057  40a701 vmlinux-patched

Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>
---
This v2 version fixes a few typos.

 .../asm/mach-au1x00/cpu-feature-overrides.h        |   51 ++++++++++++++++=
++++
 1 files changed, 51 insertions(+), 0 deletions(-)
 create mode 100644 arch/mips/include/asm/mach-au1x00/cpu-feature-overrides=
.h

diff --git a/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h b/ar=
ch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h
new file mode 100644
index 0000000..c22492e
--- /dev/null
+++ b/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h
@@ -0,0 +1,51 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Pub=
lic
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef __ASM_MACH_AU1X00_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_AU1X00_CPU_FEATURE_OVERRIDES_H
+
+#define cpu_has_tlb		1
+#define cpu_has_4kex		1
+#define cpu_has_3k_cache	0
+#define cpu_has_4k_cache	1
+#define cpu_has_tx39_cache	0
+#define cpu_has_fpu		0
+#define cpu_has_32fpr		0
+#define cpu_has_counter		1
+#define cpu_has_watch		1
+#define cpu_has_divec		1
+#define cpu_has_vce		0
+#define cpu_has_cache_cdex_p	0
+#define cpu_has_cache_cdex_s	0
+#define cpu_has_mcheck		1
+#define cpu_has_ejtag		1
+#define cpu_has_llsc		1
+#define cpu_has_mips16		0
+#define cpu_has_mdmx		0
+#define cpu_has_mips3d		0
+#define cpu_has_smartmips	0
+#define cpu_has_vtag_icache	0
+#define cpu_has_dc_aliases	0
+#define cpu_has_ic_fills_f_dc	1
+#define cpu_has_pindexed_cache	0
+#define cpu_has_mips32r1	1
+#define cpu_has_mips32r2	0
+#define cpu_has_mips64r1	0
+#define cpu_has_mips64r2	0
+#define cpu_has_dsp		0
+#define cpu_has_mipsmt		0
+#define cpu_has_userlocal	0
+#define cpu_has_nofpuex		0
+#define cpu_has_64bits		0
+#define cpu_has_64bit_zero_reg	0
+#define cpu_has_vint		0
+#define cpu_has_veic		0
+#define cpu_has_inclusive_pcaches 0
+
+#define cpu_dcache_line_size()	32
+#define cpu_icache_line_size()  32
+
+#endif /* __ASM_MACH_AU1X00_CPU_FEATURE_OVERRIDES_H */
--=20
1.6.0.4


