Re: 64 bit ICMxx ?

2015-07-20 Thread Tony Harminc
On 19 July 2015 at 11:27, John McKown john.archie.mck...@gmail.com wrote:
 Hum, just contemplating this. And wondering why IBM didn't do it. There
 are a lot of other instructions in the ISA which seem, to me, to have
 lesser utility. So I'm just posting some rambling thoughts.

 I am looking in the -10 POPS manual on the various instruction formats. I am
 not a hardware engineer. But I guess that such formats are standardized in
 order to group them into classes. Each of which has some sort of hardware
 support. There appear, to me, to be four classes of instructions which are
 what I think of as pertaining to a single register as a direct operand (as
 opposed to indirect such as use in a base or index). RX (two subclasses),
 RXY (two subclasses), RSY (two subclasses).
[...]
 Actually, there is not _any_ currently defined class, as described on
 page 5-4 of the -10 POPS, into which such an IC instruction could fit.
 Now, the RXE format has 4 unused bits in it. So perhaps the engineers could
 make that into two subclasses A -a subclass which only uses 4 bits as at
 present, and a -b subclass which uses all 8 bit. That gets us an IC with
 base+12 bit displacement.

 Now we need to find where to put base+20 bit
 displacement and an immediate. For the immediate, they could use a new
 RIE variant (it already has 7) which has a 8 bit mask, similar to the -a
 variant which has a 4 bit mask. As best as I can see, this would require a
 new RSL subclass which has an 8 bit mask.

I don't think for the likely uses for an ICMG that there is much call
for a Y version. In most code I've seen, except where it is being used
like LT, ICM is typically used with a zero or small displacement from
a moving base register that is really a very local base for a data
item.

A more important constraint, or at least consideration, is that the
mask field should be modifiable by an EXecute instruction, as it is
with ICM[x]. This constrains the mask to being in bits 8-15 of the
instruction, which could therefore be a single-byte opcode or a
two-byte one where the second byte is not in bits 8-15.

I don't think there are any instructions that, as you put it
pertain[...] to a single register as a direct operand (as
opposed to indirect such as use in a base or index) that have that
target register not specified in bits 8-15.

Another approach would be an instruction of RR[x] format, where the
storage operand address is in a register, and the mask is in either a
specified register or a hardcoded one (R0, perhaps). This might even
allow for a mask of more than 8 bits (64, presumably), leading to a
sort of ICMD scheme where the mask applies to more than one register.
With the mask in a register, the ability to specify the mask via
EXecute becomes unimportant.

Well, small fantasies for a Monday morning. Presumably the compiler
writers who seem to generate hardware design these days have found no
use for such schemes.

Tony H.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-19 Thread Shmuel Metz (Seymour J.)
In 7660897243938495.wa.pgs4ibmmainpacbell@listserv.ua.edu, on
07/17/2015
   at 07:03 PM, Paul Schuster pgs4ibmm...@pacbell.net said:

I have to do a   LG R1,64bitfield and then a LTGR R1,R1 and then 
the JZ.

 LTG   R1,64bitfield
 JZNULL

I'm sure this was not overlooked by the engineers,

Well, I'd like an ICMG with an 8-bit mask for more general use.  -- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-19 Thread John McKown
On Sat, Jul 18, 2015 at 11:43 PM, Shmuel Metz (Seymour J.) 
shmuel+ibm-m...@patriot.net wrote:

 In 7660897243938495.wa.pgs4ibmmainpacbell@listserv.ua.edu, on
 07/17/2015
at 07:03 PM, Paul Schuster pgs4ibmm...@pacbell.net said:

 I have to do a   LG R1,64bitfield and then a LTGR R1,R1 and then
 the JZ.

  LTG   R1,64bitfield
  JZNULL

 I'm sure this was not overlooked by the engineers,

 Well, I'd like an ICMG with an 8-bit mask for more general use.  --


​Hum, just contemplating this. And wondering why IBM didn't do it. There
are a lot of other instructions in the ISA which seem, to me, to have
lesser utility. So I'm just posting some rambling thoughts.

There is the ICM and ICMH which, combined, could be use to emulate this. I
am looking in the -10 POPS manual on the various instruction formats. I am
not a hardware engineer. But I guess that such formats are standardized in
order to group them into classes. Each of which has some sort of hardware
support. There appear, to me, to be four classes of instructions which are
what I think of as pertaining to a single register as a direct operand (as
opposed to indirect such as use in a base or index). RX (two subclasses),
RXY (two subclasses), RSY (two subclasses). The current Insert Character
instructions are in the RX (subclass a), RXY (subclass a), RS (subclass b),
and RSY (subclass b). All of these classes have all of their bits
utilized. So there's no room in them for another 4 bits of mask. The only
format in the -10 POPS which currently has 8 bits of masking is the VRR
class, subclasses -b, -d, and -e.  But that doesn't seem like a good class
in which to put a IC type instruction. Just doesn't fit aesthetically.
Actually, there is not _any_ currently defined class, as described on
page 5-4 of the -10 POPS, into which such an IC instruction could fit.
Now, the RXE format has 4 unused bits in it. So perhaps the engineers could
make that into two subclasses A -a subclass which only uses 4 bits as at
present, and a -b subclass which uses all 8 bit. That gets us an IC with
base+12 bit displacement. Now we need to find where to put base+20 bit
displacement and an immediate. For the immediate, they could use a new
RIE variant (it already has 7) which has a 8 bit mask, similar to the -a
variant which has a 4 bit mask. As best as I can see, this would require a
new RSL subclass which has an 8 bit mask.

I have _no_ idea how complicated it is to implement a new instruction
format. But that is the first thing which would be required to implement an
IC type instruction which does 8 bits. Seems a bit much for a single
instruction.

As an aside, if the CC is unimportant, then simply doing an ICM followed by
an ICMH should suffice. If the CC is important, that is a bit more
difficult. And today is Sunday and I'm not in the mood to try to figure out
how to do it in a macro. But I'm sure that it's possible by using another
register and SPM/IPM to maintain the condition code properly.





  Shmuel (Seymour J.) Metz, SysProg and JOAT
  ISO position; see http://patriot.net/~shmuel/resume/brief.html
 We don't care. We don't have to care, we're Congress.
 (S877: The Shut up and Eat Your spam act of 2003)


-- 

Schrodinger's backup: The condition of any backup is unknown until a
restore is attempted.

Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will be.

He's about as useful as a wax frying pan.

10 to the 12th power microphones = 1 Megaphone

Maranatha! 
John McKown

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-17 Thread Jim Mulder
 Recently got into some real 64-bit coding. Noticed that there is no
 64-bit version of ICM. I am used to doing ICM R1,B'',FIELD and then 
a JZ.
 
 It seems for a 64 bit register, there is no ICMxx 
R1,B'',64bitfield 
 equivalent. I have to do a   LG R1,64bitfield and then a LTGR R1,R1 
 and then the JZ.
 
 I'm sure this was not overlooked by the engineers, so am I missing 
 something?  Or
 is this just a new paradigm going forward with 64 bit code?

 On z9 and later machines, there is LT/LTG.

Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-17 Thread Paul Schuster
 Recently got into some real 64-bit coding. Noticed that there is no
 64-bit version of ICM. I am used to doing ICM R1,B'',FIELD and then 
a JZ.
 
 It seems for a 64 bit register, there is no ICMxx 
R1,B'',64bitfield 
 equivalent. I have to do a   LG R1,64bitfield and then a LTGR R1,R1 
 and then the JZ.
 
 I'm sure this was not overlooked by the engineers, so am I missing 
 something?  Or
 is this just a new paradigm going forward with 64 bit code?

 On z9 and later machines, there is LT/LTG.

Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

Yes thank you I see that now I was not looking at a high enough dash version of 
the POO.

Paul

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-17 Thread Sri h Kolusu
Paul,

Did you try ICMH (Insert Characters Under Mask High) ?

Thanks,
Kolusu

IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU wrote on 
07/17/2015 05:03:56 PM:

 From: Paul Schuster pgs4ibmm...@pacbell.net
 To: IBM-MAIN@LISTSERV.UA.EDU
 Date: 07/17/2015 05:04 PM
 Subject: 64 bit ICMxx ?
 Sent by: IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU
 
 Recently got into some real 64-bit coding. Noticed that there is no
 64-bit version of ICM. I am used to doing ICM R1,B'',FIELD and then 
a JZ.
 
 It seems for a 64 bit register, there is no ICMxx 
R1,B'',64bitfield 
 equivalent. I have to do a   LG R1,64bitfield and then a LTGR R1,R1 
 and then the JZ.
 
 I'm sure this was not overlooked by the engineers, so am I missing 
 something?  Or
 is this just a new paradigm going forward with 64 bit code?
 
 Thank you.
 
 Paul
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 64 bit ICMxx ?

2015-07-17 Thread John P. Baker
Paul,

There is an ICMH instruction, for which the mask bits indicate bit positions 
0-7, 8-15, 16-23, and 24-31 of a 64-bit register.  This instruction uses a 
20-bit signed offset.

There is also an ICMY instruction, which is equivalent to the ICM instruction 
except that this instruction uses a 20-bit signed offset.

John P. Baker

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Paul Schuster
Sent: Friday, July 17, 2015 8:04 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: 64 bit ICMxx ?

Recently got into some real 64-bit coding. Noticed that there is no 64-bit 
version of ICM. I am used to doing ICM R1,B'',FIELD and then a JZ.

It seems for a 64 bit register, there is no ICMxx R1,B'',64bitfield 
equivalent. I have to do a   LG R1,64bitfield and then a LTGR R1,R1 and then 
the JZ.

I'm sure this was not overlooked by the engineers, so am I missing something?  
Or is this just a new paradigm going forward with 64 bit code?

Thank you.

Paul

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN