From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752192AbbCZANS (ORCPT ); Wed, 25 Mar 2015 20:13:18 -0400 Received: from terminus.zytor.com ([198.137.202.10]:45840 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750821AbbCZANQ (ORCPT ); Wed, 25 Mar 2015 20:13:16 -0400 User-Agent: K-9 Mail for Android In-Reply-To: References: <1427303896-24023-1-git-send-email-dvlasenk@redhat.com> <1427303896-24023-3-git-send-email-dvlasenk@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Subject: Re: [PATCH 3/4] x86/asm/entry/64: use smaller insns From: "H. Peter Anvin" Date: Wed, 25 Mar 2015 17:12:20 -0700 To: Linus Torvalds CC: Denys Vlasenko , Ingo Molnar , Steven Rostedt , Borislav Petkov , Andy Lutomirski , Oleg Nesterov , Frederic Weisbecker , Alexei Starovoitov , Will Drewry , Kees Cook , the arch/x86 maintainers , Linux Kernel Mailing List Message-ID: <9AD02076-74C0-4F27-B0C0-AD0F8019FD73@zytor.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ok, "movabs" is crazier than I thought. On March 25, 2015 5:05:50 PM PDT, Linus Torvalds wrote: >On Wed, Mar 25, 2015 at 4:56 PM, H. Peter Anvin wrote: >> No, movabs is yet another instruction (with a 64-bit absolute >address.) But movq can mean 10 or 7 bytes... > >I mentioned movabs because that is literally what as generates at >least for me (or then objdump is confused): > > [torvalds@i7 ~]$ as -v > GNU assembler version 2.24 (x86_64-redhat-linux) using BFD version >version 2.24 > > [torvalds@i7 ~]$ cat t.s > main: > movq $0x12, %rdi > movq $0x1234, %rdi > movq $0x123456, %rdi > movq $0x12345678, %rdi > movq $0x123456789ab, %rdi > > [torvalds@i7 ~]$ as t.s > [torvalds@i7 ~]$ objdump -d a.out > ... > 0: 48 c7 c7 12 00 00 00 mov $0x12,%rdi > 7: 48 c7 c7 34 12 00 00 mov $0x1234,%rdi > e: 48 c7 c7 56 34 12 00 mov $0x123456,%rdi > 15: 48 c7 c7 78 56 34 12 mov $0x12345678,%rdi > 1c: 48 bf ab 89 67 45 23 movabs $0x123456789ab,%rdi > 23: 01 00 00 > >so 'as' is clearly just stupid. It already takes the size of the >constant into account and generates different instructions. Why not >for the common 32-bit case too? > >Oh well. > > Linus -- Sent from my mobile phone. Please pardon brevity and lack of formatting.