public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Daniel Cederman <cederman@gaisler.com>
To: gcc-patches@gcc.gnu.org
Cc: daniel@gaisler.com,	cederman@gaisler.com,	ebotcazou@adacore.com
Subject: [PATCH] Make muser-mode the default for LEON3
Date: Tue, 23 Jun 2015 12:22:00 -0000	[thread overview]
Message-ID: <1435062156-28097-2-git-send-email-cederman@gaisler.com> (raw)
In-Reply-To: <1435062156-28097-1-git-send-email-cederman@gaisler.com>

The muser-mode flag causes the CASA instruction for LEON3 to use the
user mode ASI. This is the correct behavior for almost all LEON3 targets.
For this reason it makes sense to make user mode the default. This patch
adds a flag for supervisor mode that can be used on the very few LEON3 targets
that requires CASA to use the supervisor ASI.

gcc/ChangeLog:

2015-06-22  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sparc.opt: Add supervisor mode flag (-msv-mode) and
	  make user mode the default
	* config/sparc/sync.md: Only use supervisor ASI for CASA when in
	  supervisor mode
	* doc/invoke.texi: Document msv-mode flag
---
 gcc/config/sparc/sparc.opt |  8 ++++++--
 gcc/config/sparc/sync.md   |  6 +++---
 gcc/doc/invoke.texi        | 13 ++++++++-----
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/gcc/config/sparc/sparc.opt b/gcc/config/sparc/sparc.opt
index 93d24a6..5c7f546 100644
--- a/gcc/config/sparc/sparc.opt
+++ b/gcc/config/sparc/sparc.opt
@@ -113,9 +113,13 @@ mrelax
 Target
 Optimize tail call instructions in assembler and linker
 
+msv-mode
+Target RejectNegative Report Mask(SV_MODE)
+Generate code that can only run in supervisor mode
+
 muser-mode
-Target Report Mask(USER_MODE)
-Do not generate code that can only run in supervisor mode
+Target RejectNegative Report InverseMask(SV_MODE)
+Do not generate code that can only run in supervisor mode (default)
 
 mcpu=
 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor_type) Init(PROCESSOR_V7)
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md
index 7d00b10..2fabff5 100644
--- a/gcc/config/sparc/sync.md
+++ b/gcc/config/sparc/sync.md
@@ -222,10 +222,10 @@
 	  UNSPECV_CAS))]
   "TARGET_LEON3"
 {
-  if (TARGET_USER_MODE)
-    return "casa\t%1 0xa, %2, %0"; /* ASI for user data space.  */
-  else
+  if (TARGET_SV_MODE)
     return "casa\t%1 0xb, %2, %0"; /* ASI for supervisor data space.  */
+  else
+    return "casa\t%1 0xa, %2, %0"; /* ASI for user data space.  */
 }
   [(set_attr "type" "multi")])
 
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b99ab1c..211e8e9 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1008,7 +1008,7 @@ See RS/6000 and PowerPC Options.
 -mhard-quad-float  -msoft-quad-float @gol
 -mstack-bias  -mno-stack-bias @gol
 -munaligned-doubles  -mno-unaligned-doubles @gol
--muser-mode  -mno-user-mode @gol
+-muser-mode  -msv-mode @gol
 -mv8plus  -mno-v8plus  -mvis  -mno-vis @gol
 -mvis2  -mno-vis2  -mvis3  -mno-vis3 @gol
 -mcbcond -mno-cbcond @gol
@@ -21300,13 +21300,16 @@ Specifying this option avoids some rare compatibility problems with code
 generated by other compilers.  It is not the default because it results
 in a performance loss, especially for floating-point code.
 
+@item -msv-mode
+@opindex msv-mode
+Generate code that can only run in supervisor mode.  This is relevant
+only for the @code{casa} instruction emitted for the LEON3 processor.
+
 @item -muser-mode
-@itemx -mno-user-mode
 @opindex muser-mode
-@opindex mno-user-mode
 Do not generate code that can only run in supervisor mode.  This is relevant
-only for the @code{casa} instruction emitted for the LEON3 processor.  The
-default is @option{-mno-user-mode}.
+only for the @code{casa} instruction emitted for the LEON3 processor.  This
+is the default.
 
 @item -mno-faster-structs
 @itemx -mfaster-structs
-- 
2.4.3

  parent reply	other threads:[~2015-06-23 12:22 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-23 12:22 [PATCH 1/2] Add mask to specify which LEON3 targets support CASA Daniel Cederman
2015-06-23 12:22 ` [PATCH 2/2] Add leon3r0 and leon3r0v7 CPU targets Daniel Cederman
2015-06-26  7:47   ` Eric Botcazou
2015-06-26 12:07     ` Daniel Cederman
2015-06-30  9:25       ` Eric Botcazou
2015-06-30 11:06         ` Eric Botcazou
2015-06-30 12:46         ` Daniel Cederman
2015-07-03 10:55           ` Eric Botcazou
2015-07-03 12:07             ` Daniel Cederman
2015-06-23 12:22 ` [PATCH] Use leon3 target for native LEON on Linux Daniel Cederman
2015-06-26  7:45   ` Eric Botcazou
2015-06-23 12:22 ` Daniel Cederman [this message]
2015-06-23 12:34   ` [PATCH] Make muser-mode the default for LEON3 Sebastian Huber
2015-06-23 12:38   ` Jakub Jelinek
2015-06-23 12:55     ` Daniel Cederman
2015-06-23 13:07       ` Jakub Jelinek
2015-06-23 14:10         ` Daniel Cederman
2015-06-23 14:29 Daniel Cederman
2015-06-26  7:59 ` Eric Botcazou
2015-06-26 12:06   ` Daniel Cederman
2015-06-30  9:50     ` Eric Botcazou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1435062156-28097-2-git-send-email-cederman@gaisler.com \
    --to=cederman@gaisler.com \
    --cc=daniel@gaisler.com \
    --cc=ebotcazou@adacore.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).