From: "Martin Schwidefsky" <schwidefsky@de.ibm.com>
To: binutils@sourceware.cygnus.com
Subject: New branch instructions for s/390.
Date: Mon, 20 Aug 2001 02:01:00 -0000 [thread overview]
Message-ID: <OF9E1D2CD9.F37D952F-ONC1256AAE.0030C907@de.ibm.com> (raw)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 584 bytes --]
Hi,
gcc 3.0 wants to have branch instructions for "low or high" and
"not low or high". Here is a patch that adds them to the s/390
instruction list.
2001-08-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
* opcodes/s390-opc.c: Add "low or high" and "not low or high"
branch instructions for gcc 3.0.
* opcodes/s390-opc.txt: Likewise.
(See attached file: lh_nlh.diff)
blue skies,
Martin
Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com
[-- Attachment #2: lh_nlh.diff --]
[-- Type: text/x-diff, Size: 5528 bytes --]
diff -urN src/opcodes/s390-opc.c src-s390/opcodes/s390-opc.c
--- src/opcodes/s390-opc.c Thu Jul 26 21:09:15 2001
+++ src-s390/opcodes/s390-opc.c Thu Aug 16 13:02:43 2001
@@ -506,10 +506,12 @@
{ "jgnl", OP16(0xc0b4LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgnm", OP16(0xc0b4LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jghe", OP16(0xc0a4LL), MASK_RIL_B, INSTR_RIL_B, 2},
+ { "jgnlh", OP16(0xc094LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jge", OP16(0xc084LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgz", OP16(0xc084LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgne", OP16(0xc074LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgnz", OP16(0xc074LL), MASK_RIL_B, INSTR_RIL_B, 2},
+ { "jglh", OP16(0xc064LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgnhe", OP16(0xc054LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgl", OP16(0xc044LL), MASK_RIL_B, INSTR_RIL_B, 2},
{ "jgm", OP16(0xc044LL), MASK_RIL_B, INSTR_RIL_B, 2},
@@ -751,10 +753,12 @@
{ "jnl", OP16(0xa7b4LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jnm", OP16(0xa7b4LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jhe", OP16(0xa7a4LL), MASK_RI_B, INSTR_RI_B, 3},
+ { "jnlh", OP16(0xa794LL), MASK_RI_B, INSTR_RI_B, 3},
{ "je", OP16(0xa784LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jz", OP16(0xa784LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jne", OP16(0xa774LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jnz", OP16(0xa774LL), MASK_RI_B, INSTR_RI_B, 3},
+ { "jlh", OP16(0xa764LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jnhe", OP16(0xa754LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jl", OP16(0xa744LL), MASK_RI_B, INSTR_RI_B, 3},
{ "jm", OP16(0xa744LL), MASK_RI_B, INSTR_RI_B, 3},
@@ -873,10 +877,12 @@
{ "bnl", OP16(0x47b0LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bnm", OP16(0x47b0LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bhe", OP16(0x47a0LL), MASK_RX_B, INSTR_RX_B, 3},
+ { "bnlh", OP16(0x4790LL), MASK_RX_B, INSTR_RX_B, 3},
{ "be", OP16(0x4780LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bz", OP16(0x4780LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bne", OP16(0x4770LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bnz", OP16(0x4770LL), MASK_RX_B, INSTR_RX_B, 3},
+ { "blh", OP16(0x4760LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bnhe", OP16(0x4750LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bl", OP16(0x4740LL), MASK_RX_B, INSTR_RX_B, 3},
{ "bm", OP16(0x4740LL), MASK_RX_B, INSTR_RX_B, 3},
@@ -955,10 +961,12 @@
{ "bnlr", OP16(0x07b0LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bnmr", OP16(0x07b0LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bher", OP16(0x07a0LL), MASK_RR_B, INSTR_RR_B, 3},
+ { "bnlhr", OP16(0x0790LL), MASK_RR_B, INSTR_RR_B, 3},
{ "ber", OP16(0x0780LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bzr", OP16(0x0780LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bner", OP16(0x0770LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bnzr", OP16(0x0770LL), MASK_RR_B, INSTR_RR_B, 3},
+ { "blhr", OP16(0x0760LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bnher", OP16(0x0750LL), MASK_RR_B, INSTR_RR_B, 3},
{ "blr", OP16(0x0740LL), MASK_RR_B, INSTR_RR_B, 3},
{ "bmr", OP16(0x0740LL), MASK_RR_B, INSTR_RR_B, 3},
diff -urN src/opcodes/s390-opc.txt src-s390/opcodes/s390-opc.txt
--- src/opcodes/s390-opc.txt Thu Jul 26 21:09:15 2001
+++ src-s390/opcodes/s390-opc.txt Thu Aug 16 12:51:22 2001
@@ -265,10 +265,12 @@
0740 blr RR_B "branch on low" esa
0740 bmr RR_B "branch on minus / if mixed" esa
0750 bnher RR_B "branch on not high or equal" esa
+0760 blhr RR_B "branch on low or high" esa
0770 bner RR_B "branch on not equal" esa
0770 bnzr RR_B "branch on not zero / if not zeros" esa
0780 ber RR_B "branch on equal" esa
0780 bzr RR_B "branch on zero / if zeros" esa
+0790 bnlhr RR_B "branch on not low or high" esa
07a0 bher RR_B "branch on high or equal" esa
07b0 bnlr RR_B "branch on not low" esa
07b0 bnmr RR_B "branch on not minus / if not mixed" esa
@@ -285,10 +287,12 @@
4740 bl RX_B "branch on low" esa
4740 bm RX_B "branch on minus / if mixed" esa
4750 bnhe RX_B "branch on not high or equal" esa
+4760 blh RX_B "branch on low or high" esa
4770 bne RX_B "branch on not equal" esa
4770 bnz RX_B "branch on not zero / if not zeros" esa
4780 be RX_B "branch on equal" esa
4780 bz RX_B "branch on zero / if zeros" esa
+4790 bnlh RX_B "branch on not low or high" esa
47a0 bhe RX_B "branch on high or equal" esa
47b0 bnl RX_B "branch on not low" esa
47b0 bnm RX_B "branch on not minus / if not mixed" esa
@@ -304,10 +308,12 @@
a744 jl RI_B "jump on A low" esa
a744 jm RI_B "jump on minus / if mixed" esa
a754 jnhe RI_B "jump on not high or equal" esa
+a764 jlh RI_B "jump on low or high" esa
a774 jne RI_B "jump on A not equal B" esa
a774 jnz RI_B "jump on not zero / if not zeros" esa
a784 je RI_B "jump on A equal B" esa
a784 jz RI_B "jump on zero / if zeros" esa
+a794 jnlh RI_B "jump on not low or high" esa
a7a4 jhe RI_B "jump on high or equal" esa
a7b4 jnl RI_B "jump on A not low" esa
a7b4 jnm RI_B "jump on not minus / if not mixed" esa
@@ -500,10 +506,12 @@
c044 jgl RIL_B "jump long on low" esame
c044 jgm RIL_B "jump long on minus / if mixed" esame
c054 jgnhe RIL_B "jump long on not high or equal" esame
+c064 jglh RIL_B "jump long on low or high" esame
c074 jgne RIL_B "jump long on not equal" esame
c074 jgnz RIL_B "jump long on not zero / if not zeros" esame
c084 jge RIL_B "jump long on equal" esame
c084 jgz RIL_B "jump long on zero / if zeros" esame
+c094 jgnlh RIL_B "jump long on not low or high" esame
c0a4 jghe RIL_B "jump long on high or equal" esame
c0b4 jgnl RIL_B "jump long on not low" esame
c0b4 jgnm RIL_B "jump long on not minus / if not mixed" esame
next reply other threads:[~2001-08-20 2:01 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-20 2:01 Martin Schwidefsky [this message]
2001-08-22 23:39 ` Andreas Jaeger
2001-08-23 11:19 Martin Schwidefsky
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=OF9E1D2CD9.F37D952F-ONC1256AAE.0030C907@de.ibm.com \
--to=schwidefsky@de.ibm.com \
--cc=binutils@sourceware.cygnus.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).