From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1162185AbcFHTi4 (ORCPT ); Wed, 8 Jun 2016 15:38:56 -0400 Received: from mga01.intel.com ([192.55.52.88]:46767 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161442AbcFHTiy (ORCPT ); Wed, 8 Jun 2016 15:38:54 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,440,1459839600"; d="scan'208";a="998050604" From: "H. Peter Anvin" To: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Linux Kernel Mailing List Cc: Andy Lutomirski , Borislav Petkov Subject: [PATCH v2 00/10] x86: use gcc 6+ asm flag output feature Date: Wed, 8 Jun 2016 12:38:36 -0700 Message-Id: <1465414726-197858-1-git-send-email-hpa@linux.intel.com> X-Mailer: git-send-email 2.7.3.0.11.gd79db92 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "H. Peter Anvin" gcc 6+ has the ability to let flags (actually, conditions, which are specific combinations of flags) to be used directly as asm() outputs. The syntax for that is "=@cc" where is the same set of letters that would be used in a j or set instruction (e.g. "=@ccz" to test the ZF flag.) This patchset by itself reduces the size of the x86-64 kernel by 0.12%, from a baseline of 4.7-rc2 built with gcc 6.1 (first line is with the patchset, the second one is without): text data bss dec hex filename 68245656 41004339 20533248 129783243 7bc55cb o.i386-allconfig/vmlinux 68355716 41008499 20533248 129897463 7be13f7 o.i386-allconfig/vmlinux 127384005 129742359 38150144 295276508 11998fdc o.x86_64-allconfig/vmlinux 127538765 129742295 38150144 295431204 119bec24 o.x86_64-allconfig/vmlinux v2: fix a conflict between and discovered by Ingo Molnar. There are a few places in x86-specific code where we need all of even when xCONFIG_ARCH_RANDOM is disabled, so does not suffice. Only the patch has been changed; since it is a little bit different from the others I have moved it to the end.