public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
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

             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).