From: Eric Christopher <echristo@redhat.com>
To: gcc-patches@gcc.gnu.org
Cc: uweigand@de.ibm.com
Subject: [PATCH]
Date: Tue, 04 May 2004 00:26:00 -0000 [thread overview]
Message-ID: <1083630087.32152.26.camel@dzur.sfbay.redhat.com> (raw)
Having lots of problems with the tpf tracing functions until it was
realized that they don't actually affect anything and don't need
standard call mechanisms for save and restore either, just execute. We
still use register 1 though so some of the code in
s390_emit_pro/epilogue is still necessary.
This appears to fix various problems seen building glibc for the tpfOS.
Tested on s390x-ibm-tpf by building cc1 and testing various testcases.
Doesn't affect s390-linux at all, but cc1 was also built there to make
sure.
OK?
-eric
--
Eric Christopher <echristo@redhat.com>
2004-05-03 Eric Christopher <echristo@redhat.com>
* config/s390/s390.c (s390_emit_prologue): Call unspec tpf
prologue insn instead of setting up call.
(s390_emit_epilogue): Ditto.
* config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
(define_constants): Add numbers for above patterns.
Index: s390.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.142
diff -u -p -w -r1.142 s390.c
--- s390.c 30 Apr 2004 16:40:22 -0000 1.142
+++ s390.c 4 May 2004 00:11:42 -0000
@@ -5683,11 +5683,9 @@ s390_emit_prologue (void)
{
/* Generate a BAS instruction to serve as a function
entry intercept to facilitate the use of tracing
- algorithms located at the branch target.
+ algorithms located at the branch target. */
- This must use register 1. */
- s390_emit_call (GEN_INT (0xfe0), NULL_RTX, NULL_RTX,
- gen_rtx_REG (Pmode, 1));
+ emit_insn (gen_prologue_tpf ());
/* Emit a blockage here so that all code
lies between the profiling mechanisms. */
@@ -5710,16 +5708,13 @@ s390_emit_epilogue (bool sibcall)
/* Generate a BAS instruction to serve as a function
entry intercept to facilitate the use of tracing
- algorithms located at the branch target.
-
- This must use register 1. */
+ algorithms located at the branch target. */
/* Emit a blockage here so that all code
lies between the profiling mechanisms. */
emit_insn (gen_blockage ());
- s390_emit_call (GEN_INT (0xfe6), NULL_RTX, NULL_RTX,
- gen_rtx_REG (Pmode, 1));
+ emit_insn (gen_epilogue_tpf ());
}
/* Check whether to use frame or stack pointer for restore. */
Index: s390.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.md,v
retrieving revision 1.108
diff -u -p -w -r1.108 s390.md
--- s390.md 30 Apr 2004 16:40:22 -0000 1.108
+++ s390.md 4 May 2004 00:11:43 -0000
@@ -118,6 +118,10 @@
[; Blockage
(UNSPECV_BLOCKAGE 0)
+ ; TPF Support
+ (UNSPECV_TPF_PROLOGUE 20)
+ (UNSPECV_TPF_EPILOGUE 21)
+
; Literal pool
(UNSPECV_POOL 200)
(UNSPECV_POOL_START 201)
@@ -7522,10 +7526,23 @@
""
"s390_emit_prologue (); DONE;")
+(define_insn "prologue_tpf"
+ [(unspec_volatile [(const_int 0)] UNSPECV_TPF_PROLOGUE)]
+ "TARGET_TPF"
+ "bas\t%%r1,4064"
+ [(set_attr "type" "jsr")])
+
(define_expand "epilogue"
[(use (const_int 1))]
""
"s390_emit_epilogue (false); DONE;")
+
+(define_insn "epilogue_tpf"
+ [(unspec_volatile [(const_int 0)] UNSPECV_TPF_EPILOGUE)]
+ "TARGET_TPF"
+ "bas\t%%r1,4070"
+ [(set_attr "type" "jsr")])
+
(define_expand "sibcall_epilogue"
[(use (const_int 0))]
next reply other threads:[~2004-05-04 0:21 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-04 0:26 Eric Christopher [this message]
[not found] <ormtqpsbuc.fsf@lxoliva.fsfla.org>
2021-09-09 7:11 ` [PATCH] strub: machine-independent stack scrubbing Alexandre Oliva
2022-07-29 6:16 ` [PATCH v2 00/10] Introduce " Alexandre Oliva
2023-06-16 6:09 ` [PATCH v3] " Alexandre Oliva
2023-10-20 6:03 ` [PATCH v4] " Alexandre Oliva
2023-10-26 6:15 ` Alexandre Oliva
2023-11-20 12:40 ` Alexandre Oliva
2023-11-22 14:14 ` Richard Biener
2023-11-23 10:56 ` Alexandre Oliva
2023-11-23 12:05 ` Richard Biener
2023-11-29 8:53 ` Alexandre Oliva
2023-11-29 12:48 ` Richard Biener
2023-11-30 4:13 ` Alexandre Oliva
2023-11-30 12:00 ` Richard Biener
2023-12-02 17:56 ` [PATCH v5] " Alexandre Oliva
2023-12-06 8:36 ` Causes to nvptx bootstrap fail: " Tobias Burnus
2023-12-06 11:32 ` Thomas Schwinge
2023-12-06 22:12 ` Alexandre Oliva
2023-12-07 3:33 ` [PATCH] strub: enable conditional support Alexandre Oliva
2023-12-07 16:44 ` Thomas Schwinge
2023-12-07 17:52 ` [PATCH] Alexandre Oliva
2023-12-08 6:46 ` [PATCH] Richard Biener
-- strict thread matches above, loose matches on Subject: below --
2006-10-10 19:31 [PATCH]: Kaveh R. GHAZI
2006-05-10 10:44 [patch] François-Xavier Coudert
[not found] <no.id>
2004-05-04 0:50 ` [PATCH] Ulrich Weigand
2004-05-04 0:52 ` [PATCH] Eric Christopher
2004-05-04 0:42 [PATCH] Ulrich Weigand
2004-05-04 0:52 ` [PATCH] Eric Christopher
2004-05-04 1:14 ` [PATCH] Ulrich Weigand
2004-05-04 2:05 ` [PATCH] Eric Christopher
2004-05-04 1:11 ` [PATCH] Eric Christopher
2004-05-04 1:14 ` [PATCH] Ulrich Weigand
2004-02-08 22:05 [PATCH] Bernardo Innocenti
2004-02-08 22:55 ` [PATCH] Richard Henderson
2004-02-21 13:45 ` [PATCH] Richard Henderson
2004-02-21 13:45 ` [PATCH] Bernardo Innocenti
2003-12-16 14:00 [PATCH] Hartmut Penner
2003-12-16 17:36 ` [PATCH] Zack Weinberg
2003-02-20 12:36 [PATCH] Zdenek Dvorak
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=1083630087.32152.26.camel@dzur.sfbay.redhat.com \
--to=echristo@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=uweigand@de.ibm.com \
/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).