From 41fd2579f2ac6a5fca262317b0e52eea07fa7438 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 17 Mar 2019 07:39:18 +0800 Subject: [PATCH] x86: Set optimize to INT_MAX for -Os Set optimize to INT_MAX, instead of -1, for -Os so that -Os will include -O2 optimization. PR gas/24353 * config/tc-i386.c (md_parse_option): Set optimize to INT_MAX for -Os. * testsuite/gas/i386/optimize-2.s: Add a test. * testsuite/gas/i386/x86-64-optimize-3.s: Likewise. * testsuite/gas/i386/optimize-2.d: Updated. * testsuite/gas/i386/x86-64-optimize-3.d: Likewise. --- gas/ChangeLog | 12 ++++++++++++ gas/config/tc-i386.c | 13 ++++++++++++- gas/testsuite/gas/i386/optimize-2.d | 1 + gas/testsuite/gas/i386/optimize-2.s | 2 ++ gas/testsuite/gas/i386/x86-64-optimize-3.d | 1 + gas/testsuite/gas/i386/x86-64-optimize-3.s | 2 ++ 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index e3cba86a0d6..e5907d1b5a9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,15 @@ +2019-03-17 H.J. Lu + + PR gas/24353 + * config/tc-i386.c: Include if it exists and try + including if we have it. + (INT_MAX): Define if not defined. + (md_parse_option): Set optimize to INT_MAX for -Os. + * testsuite/gas/i386/optimize-2.s: Add a test. + * testsuite/gas/i386/x86-64-optimize-3.s: Likewise. + * testsuite/gas/i386/optimize-2.d: Updated. + * testsuite/gas/i386/x86-64-optimize-3.d: Likewise. + 2019-03-17 H.J. Lu PR gas/24352 diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 959fda2b847..8047ddf8b11 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -33,6 +33,17 @@ #include "elf/x86-64.h" #include "opcodes/i386-init.h" +#ifdef HAVE_LIMITS_H +#include +#else +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifndef INT_MAX +#define INT_MAX (int) (((unsigned) (-1)) >> 1) +#endif +#endif + #ifndef REGISTER_WARNINGS #define REGISTER_WARNINGS 1 #endif @@ -11350,7 +11361,7 @@ md_parse_option (int c, const char *arg) { optimize_for_space = 1; /* Turn on all encoding optimizations. */ - optimize = -1; + optimize = INT_MAX; } else { diff --git a/gas/testsuite/gas/i386/optimize-2.d b/gas/testsuite/gas/i386/optimize-2.d index ec989b0e131..e8a516997a6 100644 --- a/gas/testsuite/gas/i386/optimize-2.d +++ b/gas/testsuite/gas/i386/optimize-2.d @@ -16,4 +16,5 @@ Disassembly of section .text: +[a-f0-9]+: f6 c3 7f test \$0x7f,%bl +[a-f0-9]+: f7 c7 7f 00 00 00 test \$0x7f,%edi +[a-f0-9]+: 66 f7 c7 7f 00 test \$0x7f,%di + +[a-f0-9]+: c5 f1 55 e9 vandnpd %xmm1,%xmm1,%xmm5 #pass diff --git a/gas/testsuite/gas/i386/optimize-2.s b/gas/testsuite/gas/i386/optimize-2.s index b427a741b98..c9b57a8dd16 100644 --- a/gas/testsuite/gas/i386/optimize-2.s +++ b/gas/testsuite/gas/i386/optimize-2.s @@ -11,3 +11,5 @@ _start: test $0x7f, %bl test $0x7f, %edi test $0x7f, %di + + vandnpd %zmm1, %zmm1, %zmm5 diff --git a/gas/testsuite/gas/i386/x86-64-optimize-3.d b/gas/testsuite/gas/i386/x86-64-optimize-3.d index b46f728dd82..f85c0af05e3 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-3.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-3.d @@ -24,4 +24,5 @@ Disassembly of section .text: +[a-f0-9]+: 41 f6 c1 7f test \$0x7f,%r9b +[a-f0-9]+: 41 f6 c1 7f test \$0x7f,%r9b +[a-f0-9]+: 41 f6 c1 7f test \$0x7f,%r9b + +[a-f0-9]+: c5 f1 55 e9 vandnpd %xmm1,%xmm1,%xmm5 #pass diff --git a/gas/testsuite/gas/i386/x86-64-optimize-3.s b/gas/testsuite/gas/i386/x86-64-optimize-3.s index 61c150a87c8..4a52a25ddd0 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-3.s +++ b/gas/testsuite/gas/i386/x86-64-optimize-3.s @@ -19,3 +19,5 @@ _start: test $0x7f, %r9d test $0x7f, %r9w test $0x7f, %r9b + + vandnpd %zmm1, %zmm1, %zmm5 -- 2.30.2