From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1VgrYB-0000ie-8o for mharc-grub-devel@gnu.org; Thu, 14 Nov 2013 02:41:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VgrY1-0000i1-0z for grub-devel@gnu.org; Thu, 14 Nov 2013 02:41:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VgrXs-0003HX-Jy for grub-devel@gnu.org; Thu, 14 Nov 2013 02:41:04 -0500 Received: from mail-wg0-x233.google.com ([2a00:1450:400c:c00::233]:64354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VgrXs-0003HI-Ba for grub-devel@gnu.org; Thu, 14 Nov 2013 02:40:56 -0500 Received: by mail-wg0-f51.google.com with SMTP id m15so1495450wgh.30 for ; Wed, 13 Nov 2013 23:40:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type; bh=WGQCNIPPNlK0CSaYXi3bTTFQ9rrW92Qsd90pIbgCpgg=; b=i1Ytb6MazQRvVjH5lHMcUmQmN16+/uWtj4ti8mfLyy/2zKxlKH7Q8FXYPYDuS6/nOI 9NpHcJaDt12nvsLaUgA/KpZriQGqeN78bxMX68NzyZ/fOlYMSIR0N2H3yvIu6gtx+o6j qhW1T27fZEQqKfDaw8aPPAlaCZMO+Aa5+tCu0p76N8lEkzHx1mYQZn/iLtJML6A5i79r 0aQ0Vv9Zxc3S/hAHpqpGzGWqQeY3qHDZogtZiUst8lHhpftD+JEIF9EHQhSag7lcB6j3 Q6JDqRdsZla2K/B6Ic4rwGH2kE2XXyrG9pqImPQy+Vngudqj5FRFg8njRiFOakzEjlT3 H3NQ== X-Received: by 10.194.240.197 with SMTP id wc5mr5868wjc.23.1384414855259; Wed, 13 Nov 2013 23:40:55 -0800 (PST) Received: from [192.168.42.82] (8-237.197-178.cust.bluewin.ch. [178.197.237.8]) by mx.google.com with ESMTPSA id a51sm58295931eeh.8.2013.11.13.23.40.50 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 13 Nov 2013 23:40:54 -0800 (PST) Message-ID: <52847E33.2020901@gmail.com> Date: Thu, 14 Nov 2013 08:39:31 +0100 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131005 Icedove/17.0.9 MIME-Version: 1.0 To: The development of GRUB 2 Subject: [PATCH] Compile asm-files to thumb2 X-Enigmail-Version: 1.5.1 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="----enig2KIMFIEEWLIPBWRILUMXL" X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c00::233 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Nov 2013 07:41:13 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2KIMFIEEWLIPBWRILUMXL Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable diff --git a/grub-core/kern/arm/cache.S b/grub-core/kern/arm/cache.S index 8522d24..2ad774d 100644 --- a/grub-core/kern/arm/cache.S +++ b/grub-core/kern/arm/cache.S @@ -21,7 +21,12 @@ .file "cache.S" .text .syntax unified +#if !defined (__thumb2__) || !defined (ARMV7) .arm +#else + .thumb +#endif + #if !defined (ARMV6) && !defined (ARMV7) # error Unsupported architecture version! #endif diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_= armv7.S index 0c16b10..aa42fad 100644 --- a/grub-core/kern/arm/cache_armv7.S +++ b/grub-core/kern/arm/cache_armv7.S @@ -21,8 +21,13 @@ .file "cache_armv7.S" .text .syntax unified - .arm +#if !defined (__thumb2__) .arch armv7a + .arm +#else + .arch armv7 + .thumb +#endif # define DMB dmb # define DSB dsb # define ISB isb @@ -58,11 +63,17 @@ clean_invalidate_dcache: @ read current cache information mrc p15, 1, r8, c0, c0, 0 @ Read CCSIDR lsr r3, r8, #13 @ Number of sets -1 - ldr r9, =3D0x3fff - and r3, r3, r9 + + @ Keep only 14 bits of r3 + lsl r3, r3, #18 + lsr r3, r3, #18 + lsr r4, r8, #3 @ Number of ways -1 - ldr r9, =3D0x1ff - and r4, r4, r9 + + @ Keep only 9 bits of r4 + lsl r4, r4, #23 + lsr r4, r4, #23 + and r7, r8, #7 @ log2(line size in words) - 2 add r7, r7, #2 @ adjust mov r8, #1 diff --git a/grub-core/lib/arm/setjmp.S b/grub-core/lib/arm/setjmp.S index 4f15679..b6febfb 100644 --- a/grub-core/lib/arm/setjmp.S +++ b/grub-core/lib/arm/setjmp.S @@ -24,7 +24,11 @@ GRUB_MOD_LICENSE "GPLv3+" =20 .syntax unified +#if !defined (__thumb2__) .arm +#else + .thumb +#endif =20 .text =20 @@ -32,7 +36,8 @@ GRUB_MOD_LICENSE "GPLv3+" * int grub_setjmp (grub_jmp_buf env) */ FUNCTION(grub_setjmp) - stm r0, { r4-r11, sp, lr } + stm r0, { r4-r11, lr } + str sp, [r0, #36 ] mov r0, #0 bx lr =20 @@ -40,7 +45,10 @@ FUNCTION(grub_setjmp) * int grub_longjmp (grub_jmp_buf env, int val) */ FUNCTION(grub_longjmp) - ldm r0, { r4-r11, sp, lr } + ldm r0, { r4-r11, lr } + ldr sp, [r0, #36 ] movs r0, r1 - moveq r0, #1 + bne 1f + mov r0, #1 +1: bx lr ------enig2KIMFIEEWLIPBWRILUMXL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) Comment: Using GnuPG with Icedove - http://www.enigmail.net/ iF4EAREKAAYFAlKEfjMACgkQmBXlbbo5nOs0JgD9Gep2ohW8VN3iZTUSQeZL9NdK HkoEivs6W9gIh/xCQoAA/2DGKyj/kZLlDnz8K4ss36RopZaJf8qGWu/faQRRgCC2 =0xCT -----END PGP SIGNATURE----- ------enig2KIMFIEEWLIPBWRILUMXL--