From: "John David Anglin" <dave@hiauly1.hia.nrc.ca>
To: dave@hiauly1.hia.nrc.ca (John David Anglin)
Cc: gcc@gcc.gnu.org, msokolov@ivan.harhan.org
Subject: Re: FWIW: VAX fix backport and gcc built on 4.3BSD first time ever!
Date: Thu, 21 Dec 2000 14:32:00 -0000 [thread overview]
Message-ID: <200012212232.RAA29747@hiauly1.hia.nrc.ca> (raw)
In-Reply-To: <200012200548.AAA05770@hiauly1.hia.nrc.ca>
Here is a revised patch for the mainline vax.md. The bootstrap with
this patch looks like it is going ok, although it is far from complete.
I will submit the patch formally when I am certain that it is ok.
It is possible that using this new patched version with the 2.95 branch
would work. It now has the call and call_value patterns which might enable
it to work without the call_pop/call_value_pop patch. It also has at
least one other fix for a reload problem. It it does work, this might
be a more acceptable change to incorporate into the 2.95 branch since
it only affects the vax.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2000-12-21 John David Anglin <dave@hiauly1.hia.nrc.ca>
* vax.md (call_pop, call_value_pop): Change to define_expand.
(call_pop_internal, call, call_value): Define.
(casesi1 + 1): Make operands contiguous.
--- vax.md.orig Tue Sep 12 10:58:47 2000
+++ vax.md Wed Dec 20 13:33:13 2000
@@ -1818,70 +1818,74 @@
""
"decl %0\;jgequ %l1")
\f
-;; Note that operand 1 is total size of args, in bytes,
-;; and what the call insn wants is the number of words.
-;; It is used in the call instruction as a byte, but in the addl2 as
-;; a word. Since the only time we actually use it in the call instruction
-;; is when it is a constant, SImode (for addl2) is the proper mode.
-(define_insn "call_pop"
+;; Call instructions.
+
+;; Call procedure returning no value.
+;; Operand 2 is not used on the vax.
+
+(define_expand "call_pop"
[(call (match_operand:QI 0 "memory_operand" "m")
(match_operand:SI 1 "const_int_operand" "n"))
(set (reg:SI 14) (plus:SI (reg:SI 14)
(match_operand:SI 3 "immediate_operand" "i")))]
""
- "*
- if (INTVAL (operands[1]) > 255 * 4)
- /* Vax `calls' really uses only one byte of #args, so pop explicitly. */
- return \"calls $0,%0\;addl2 %1,sp\";
- operands[1] = GEN_INT ((INTVAL (operands[1]) + 3)/ 4);
- return \"calls %1,%0\";
-")
+ "
+{
+ emit_insn (gen_call_pop_internal (operands[0], operands[1]));
+ DONE;
+}")
+
+;; Call procedure returning a value in operand 0.
+;; Operand 3 is not used on the vax.
-(define_insn "call_value_pop"
+(define_expand "call_value_pop"
[(set (match_operand 0 "" "=g")
(call (match_operand:QI 1 "memory_operand" "m")
(match_operand:SI 2 "const_int_operand" "n")))
(set (reg:SI 14) (plus:SI (reg:SI 14)
(match_operand:SI 4 "immediate_operand" "i")))]
""
- "*
- if (INTVAL (operands[2]) > 255 * 4)
- /* Vax `calls' really uses only one byte of #args, so pop explicitly. */
- return \"calls $0,%1\;addl2 %2,sp\";
- operands[2] = GEN_INT ((INTVAL (operands[2]) + 3)/ 4);
- return \"calls %2,%1\";
-")
+ "
+{
+ emit_insn (gen_call_pop_internal (operands[1], operands[2]));
+ DONE;
+}")
-;; Define another set of these for the case of functions with no
-;; operands. In that case, combine may simplify the adjustment of sp.
-(define_insn ""
+;; Call procedure with no arguments.
+
+(define_insn "call"
[(call (match_operand:QI 0 "memory_operand" "m")
- (match_operand:SI 1 "const_int_operand" "n"))
- (set (reg:SI 14) (reg:SI 14))]
+ (const_int 0))]
""
- "*
- if (INTVAL (operands[1]) > 255 * 4)
- /* Vax `calls' really uses only one byte of #args, so pop explicitly. */
- return \"calls $0,%0\;addl2 %1,sp\";
- operands[1] = GEN_INT ((INTVAL (operands[1]) + 3)/ 4);
- return \"calls %1,%0\";
-")
+ "calls $0,%0")
-(define_insn ""
+;; Call procedure returning a value in operand 0 with no arguments.
+
+(define_insn "call_value"
[(set (match_operand 0 "" "=g")
(call (match_operand:QI 1 "memory_operand" "m")
- (match_operand:SI 2 "const_int_operand" "n")))
- (set (reg:SI 14) (reg:SI 14))]
+ (const_int 0)))]
+ ""
+ "calls $0,%1")
+
+;; Note that operand 1 is total size of args, in bytes,
+;; and what the call insn wants is the number of words.
+;; It is used in the call instruction as a byte, but in the addl2 as
+;; a word. Since the only time we actually use it in the call instruction
+;; is when it is a constant, SImode (for addl2) is the proper mode.
+(define_insn "call_pop_internal"
+ [(call (match_operand:QI 0 "memory_operand" "m")
+ (match_operand:SI 1 "const_int_operand" "n"))]
""
"*
- if (INTVAL (operands[2]) > 255 * 4)
+ if (INTVAL (operands[1]) > 255 * 4)
/* Vax `calls' really uses only one byte of #args, so pop explicitly. */
- return \"calls $0,%1\;addl2 %2,sp\";
- operands[2] = GEN_INT ((INTVAL (operands[2]) + 3)/ 4);
- return \"calls %2,%1\";
+ return \"calls $0,%0\;addl2 %1,sp\";
+ operands[1] = GEN_INT ((INTVAL (operands[1]) + 3)/ 4);
+ return \"calls %1,%0\";
")
-;; Call subroutine returning any type.
+;; Call procedure returning any type.
(define_expand "untyped_call"
[(parallel [(call (match_operand 0 "" "")
@@ -1986,7 +1990,7 @@
(mult:SI (minus:SI (match_dup 0)
(const_int 0))
(const_int 2)))))
- (label_ref:SI (match_operand 3 "" "")))
+ (label_ref:SI (match_operand 2 "" "")))
(pc)))]
""
"casel %0,$0,%1")
next prev parent reply other threads:[~2000-12-21 14:32 UTC|newest]
Thread overview: 175+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <no.id>
1997-09-30 8:09 ` Mini-patch for cccp.c Thomas Koenig
1997-09-30 23:24 ` Jeffrey A Law
1997-10-06 8:25 ` Thomas Koenig
1997-11-16 18:42 ` A new bug in 971114 H.J. Lu
1998-04-20 11:44 ` egcs 1.0.3 on linux/alpha H.J. Lu
1998-07-17 16:48 ` -Wall stops compiling of egcs-1.0.3 Joe Buck
1998-10-30 19:14 ` A bad EH bug H.J. Lu
[not found] ` <19981218003619.B28066@cerebro.laendle>
[not found] ` <19981220010520.A4999@tantalophile.demon.co.uk>
[not found] ` <19981220223834.D16580@cerebro.laendle>
1998-12-21 2:53 ` GCC 2.7.2.3 good, EGCS 1.0.3 bad for x86 subtract then test Jamie Lokier
1998-12-23 14:19 ` Richard Henderson
1998-12-23 20:57 ` Jeffrey A Law
1998-12-24 1:11 ` Toshiyasu Morita
1998-12-25 18:17 ` Michael Hayes
1998-12-25 21:57 ` Jeffrey A Law
1998-12-26 2:07 ` Michael Hayes
1998-12-27 0:13 ` Jeffrey A Law
1998-12-27 0:59 ` Michael Hayes
2000-12-19 21:48 ` FWIW: VAX fix backport and gcc built on 4.3BSD first time ever! John David Anglin
2000-12-21 14:32 ` John David Anglin [this message]
2001-01-01 16:37 ` pa reload problem John David Anglin
2001-01-03 20:57 ` Jeffrey A Law
2001-01-03 22:08 ` John David Anglin
2001-01-04 9:55 ` Jeffrey A Law
2001-01-04 11:12 ` John David Anglin
2001-01-04 11:35 ` John David Anglin
2001-01-04 11:48 ` Alexandre Oliva
2001-01-04 13:06 ` John David Anglin
2001-01-04 13:18 ` Alexandre Oliva
2001-01-04 14:12 ` John David Anglin
2001-01-12 19:40 ` RFC: Jump to const_int John David Anglin
2001-01-12 21:10 ` Fergus Henderson
2001-04-17 19:11 ` GCC 3.0 Status Report John David Anglin
2001-04-18 0:55 ` Mark Mitchell
2001-04-18 9:00 ` John David Anglin
2001-04-18 13:51 ` John David Anglin
2001-04-20 13:36 ` Mark Mitchell
2001-04-21 19:33 ` C++ Issue on GCC 3.0 branch John David Anglin
2001-04-23 2:18 ` Bernd Schmidt
2001-04-23 7:51 ` law
2001-04-23 7:55 ` Bernd Schmidt
2001-04-23 7:56 ` Bernd Schmidt
2001-04-23 8:14 ` law
2001-04-25 10:26 ` Mark Mitchell
2001-04-25 14:04 ` John David Anglin
2001-04-25 17:31 ` Mark Mitchell
2001-04-26 8:31 ` John David Anglin
2001-04-26 10:25 ` Mark Mitchell
2001-04-26 10:02 ` law
2001-04-23 15:21 ` John David Anglin
2001-04-24 19:21 ` law
2001-04-24 20:23 ` John David Anglin
2001-04-26 16:45 ` law
2001-04-26 17:02 ` Mark Mitchell
2001-04-26 17:29 ` law
2001-04-27 10:43 ` John David Anglin
2001-04-27 15:14 ` John David Anglin
2001-04-28 9:55 ` law
2001-04-30 8:59 ` John David Anglin
2001-05-16 16:22 ` gcc 2.95.2 Joe Buck
2001-06-14 9:58 ` STL warnings recently appeared in the 3.0 branch John David Anglin
2001-06-14 11:34 ` Possible corruption of gcc-3.0-20010614.tar.bz2 John David Anglin
2001-06-14 15:56 ` PATCH: Fix invalid loader fixups from shared libobjc with John David Anglin
2001-08-09 15:12 ` Simple returns are broken in gcc 3.X John David Anglin
2001-08-09 15:48 ` Richard Henderson
2001-12-12 8:49 ` Question regarding ICE in instantiate_virtual_regs_1, at function.c:3880 John David Anglin
2001-12-12 15:58 ` John David Anglin
2001-12-13 1:28 ` Jan Hubicka
2001-12-13 11:57 ` John David Anglin
2001-12-13 12:05 ` Jan Hubicka
2001-12-14 13:26 ` John David Anglin
2002-01-30 17:36 ` condition codes, haifa-sched and virtual-stack-vars Ulrich Weigand
2002-02-21 13:31 ` Help! DW function pointer encoding for PA John David Anglin
2002-02-21 19:28 ` David Edelsohn
2002-04-05 12:45 ` middle-end/6180: Infinite loop in cc1 during dbr pass John David Anglin
2002-04-05 13:54 ` Richard Henderson
2002-04-06 12:58 ` John David Anglin
2002-04-06 14:51 ` Richard Henderson
2002-04-10 15:30 ` gcc-64 on HP-UX 11.00 John David Anglin
2002-04-11 10:25 ` John David Anglin
2002-04-11 10:43 ` H.Merijn Brand
2002-04-11 11:04 ` law
2002-04-15 13:39 ` John David Anglin
2002-04-16 13:14 ` law
2002-04-16 15:25 ` John David Anglin
2002-11-13 3:37 ` gcc-64 20021111 broken " H.Merijn Brand
2002-11-13 5:38 ` H.Merijn Brand
2002-11-13 8:31 ` John David Anglin
2002-11-13 13:12 ` John David Anglin
2002-11-15 9:54 ` H.Merijn Brand
2002-11-13 8:30 ` John David Anglin
2002-04-26 10:43 ` bison 1.33 problem with mainline c-parse.in: yyfree_stacks John David Anglin
2002-05-11 20:28 ` corrections to recent profile-arcs change John David Anglin
2002-06-01 17:01 ` vax double precision broken Joe Buck
2002-07-11 6:34 ` Bootstrapping hppa64? CPP problem John David Anglin
2002-07-16 13:21 ` [parisc-linux] gcc-3.[02] alignment problem John David Anglin
2002-07-16 13:43 ` Randolph Chung
2002-07-16 13:45 ` Matthew Wilcox
2002-07-17 5:26 ` Randolph Chung
2002-07-16 14:26 ` Richard Henderson
2002-07-26 20:16 ` mainline bootstrap failure in bitmap.c on sparcv9-sun-solaris2.8 John David Anglin
2002-07-27 18:50 ` Richard Henderson
2002-07-28 4:50 ` Richard Henderson
2002-07-28 13:08 ` John David Anglin
2002-07-28 21:35 ` John David Anglin
2002-08-01 12:02 ` gcc 3.2's cpp breaks configure scripts John David Anglin
2002-10-08 16:26 ` soft-float support Graeme Peterson
2002-11-13 14:19 ` gcc-64 20021111 broken on HP-UX 11.00 John David Anglin
2002-11-23 0:26 ` HP-UX IA64 Patch to fix earlier patch John David Anglin
2002-12-17 9:52 ` Setting LD tool default to ld breaks configure check for ld used by GCC John David Anglin
2002-12-20 17:39 ` John David Anglin
2003-01-02 17:48 ` Miscompilation of glibc with CVS mainline John David Anglin
2003-01-02 17:54 ` Jakub Jelinek
2003-01-02 18:58 ` John David Anglin
2003-01-02 17:57 ` Daniel Jacobowitz
2003-02-03 5:02 ` hppa-linux regressions and 3.2.2 release John David Anglin
2003-02-03 11:03 ` Gabriel Dos Reis
2003-02-03 16:26 ` John David Anglin
2003-02-03 16:54 ` Gabriel Dos Reis
2003-02-03 18:02 ` John David Anglin
2003-02-11 19:37 ` Bootstrap failure on hppa-unknown-linux-gnu, trunk John David Anglin
2003-02-11 22:37 ` Josef Zlomek
2003-02-11 22:51 ` John David Anglin
2003-03-05 22:03 ` Josef Zlomek
2003-03-05 22:05 ` Josef Zlomek
2003-02-11 19:59 ` Altivec + 16 byte alignment John David Anglin
2003-02-11 21:02 ` Mike Stump
2003-02-12 5:55 ` Fergus Henderson
2003-02-12 16:39 ` John David Anglin
2003-05-07 1:13 ` GCC 3.3 Prelease broken on s390 Ulrich Weigand
2003-05-07 1:27 ` Richard Henderson
2003-05-07 5:53 ` Mark Mitchell
2003-05-07 14:54 ` Ulrich Weigand
2003-05-07 15:53 ` Mark Mitchell
2003-05-07 16:03 ` Joe Buck
2003-05-07 16:13 ` Mark Mitchell
2003-05-07 17:02 ` Ulrich Weigand
2003-05-07 17:09 ` Joe Buck
2003-05-07 17:11 ` Mark Mitchell
2003-05-07 19:39 ` Ulrich Weigand
2003-05-07 19:45 ` Mark Mitchell
2003-05-07 18:19 ` Jonathan Lennox
2003-05-07 18:27 ` Mark Mitchell
2003-05-07 18:30 ` Jonathan Lennox
2003-05-07 18:36 ` Mark Mitchell
2003-05-07 18:49 ` Daniel Jacobowitz
2003-05-07 17:51 ` Richard Henderson
2003-05-07 19:42 ` Ulrich Weigand
2003-05-07 19:46 ` Mark Mitchell
2003-07-05 17:01 ` Solaris 8/SPARC bootstrap broken building 64-bit libgcc John David Anglin
2003-10-08 3:11 ` Someone broke bootstrap John David Anglin
2003-10-08 7:25 ` Eric Christopher
2003-10-08 17:26 ` John David Anglin
2004-01-06 0:43 ` autoconf changes break bootstrap on hppa*-*-hpux* John David Anglin
2007-04-15 19:13 ` Call to arms: testsuite failures on various targets John David Anglin
2000-12-14 12:44 FWIW: VAX fix backport and gcc built on 4.3BSD first time ever! Michael Sokolov
2000-12-19 18:01 ` Marc Espie
2000-12-14 17:22 John David Anglin
2000-12-19 18:40 Michael Sokolov
2000-12-19 21:22 John David Anglin
2000-12-19 23:51 Michael Sokolov
2000-12-21 21:53 Michael Sokolov
2002-04-04 2:03 gcc-64 on HP-UX 11.00 H.Merijn Brand
2002-04-04 8:22 ` law
[not found] ` <200204041958.g34JwTbA011272@hiauly1.hia.nrc.ca>
2002-04-05 4:51 ` H.Merijn Brand
2002-04-05 5:01 ` H.Merijn Brand
2002-04-05 9:19 ` John David Anglin
2002-04-07 7:26 ` H.Merijn Brand
2002-04-07 12:17 ` John David Anglin
2002-04-10 3:39 ` H.Merijn Brand
2002-04-10 11:21 ` John David Anglin
2002-04-10 11:56 ` H.Merijn Brand
2002-04-10 12:50 ` John David Anglin
2002-04-11 2:19 ` H.Merijn Brand
2002-04-11 8:59 ` John David Anglin
2002-04-11 9:15 ` H.Merijn Brand
2002-04-11 9:19 ` law
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=200012212232.RAA29747@hiauly1.hia.nrc.ca \
--to=dave@hiauly1.hia.nrc.ca \
--cc=gcc@gcc.gnu.org \
--cc=msokolov@ivan.harhan.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).