* New branch instructions for s/390.
@ 2001-08-20 2:01 Martin Schwidefsky
2001-08-22 23:39 ` Andreas Jaeger
0 siblings, 1 reply; 3+ messages in thread
From: Martin Schwidefsky @ 2001-08-20 2:01 UTC (permalink / raw)
To: binutils
[-- 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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: New branch instructions for s/390.
2001-08-20 2:01 New branch instructions for s/390 Martin Schwidefsky
@ 2001-08-22 23:39 ` Andreas Jaeger
0 siblings, 0 replies; 3+ messages in thread
From: Andreas Jaeger @ 2001-08-22 23:39 UTC (permalink / raw)
To: Martin Schwidefsky; +Cc: binutils
"Martin Schwidefsky" <schwidefsky@de.ibm.com> writes:
> 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)
I've added this to CVS since you're the maintainer and don't have CVS
access.
Thanks,
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: New branch instructions for s/390.
@ 2001-08-23 11:19 Martin Schwidefsky
0 siblings, 0 replies; 3+ messages in thread
From: Martin Schwidefsky @ 2001-08-23 11:19 UTC (permalink / raw)
To: Andreas Jaeger; +Cc: binutils
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 287 bytes --]
>I've added this to CVS since you're the maintainer and don't have CVS
>access.
Thanks.
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-08-23 11:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-20 2:01 New branch instructions for s/390 Martin Schwidefsky
2001-08-22 23:39 ` Andreas Jaeger
2001-08-23 11:19 Martin Schwidefsky
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).