The main (but not the only reason) for having EX was to enable a length to be supplied for SS character instructions.
A better design would be along the lines of MVCL. Such a mechanism for an extra-special EX (EXS) should supply not only the actual or true length, but automatically decrement by 1, and if the true length is zero, do nothing. ----- Original Message ----- From: McKown, John To: [email protected] Sent: Tuesday, 27 November 2012 8:38 AM Subject: Stupid? though on a new "execute" instruction. It's the holiday season. So be nice. There currently exist 2 execute variants. The old base+displacement and the new relative. Now that we have 64 bit registers, why not have an RR instruction where the first register the modifying value but the second register contains the actual instruction to be executed. I have no idea how the hardware actually works internally, so perhaps this would be a huge kludge. But, then, at present the EX instruction must copy the referenced instruction "somewhere" and modify it "somehow". So why couldn't it copy from a register as well as from the D-cache? Or, maybe, how about an EX which works like EXRL but the relative instruction is "hard coded" to be the next instruction in line? The problem, of course, is that this new EX would then need to "skip over" the just executed instruction. And I don't know how to handle "interruptible" instructions. But EX can do it, so I guess the same way. Yes, I realize these are likely not of much importance. It's just that there's nothing going on and for the rest of the year we are in "don't do anything" mode so that month-end, quarter-end, and year-end processing will be smooth. OK, since I have you here anyway. What about a real weirdie? An instruction which says whether or not to execute the next instruction, based on the condition code? That would enable every instruction to be a conditional instruction. Perhaps EXNC (Execute Next Conditional). What comes to mind? Perhaps: SLR R2,R2 LTR R1,R1 EXNC NZ L R2,0(,R1) LTR R2,R2 JZ BADADDR Which would load the contents of R2 with the address contained in R1 unless it was zero. Or maybe (combining both of the above) L R1,LEN LENGTH OF FIELD AHI R1,-1 DECREMENT FOR EX EXNZ EXRI R1 EX NEXT INSTRUCTION MVC RECEIVE(0),FROM Returning you now to your regularly scheduled, useful, email. John McKown
