Duh, it did. I tried to simplify it. What a stupid idea :-) 001EC8 000433 | @16L363 DS 0H 001EC8 4160 002D 000185 | 13 LA r6,45 001ECC 5890 4BA0 000185 | 13 L r9,#SPILL5(,r4,2976) 001ED0 5FF0 4BA0 000185 | 13 SL r15,#SPILL5(,r4,2976) 001ED4 000185 | 13 @16L690 DS 0H 001ED4 BF01 9000 000185 | 13 ICM r0,b'0001',(char)(r9,0) 001ED8 420F 9000 000185 | 13 STC r0,(char)(r15,r9,0) 001EDC A784 0008 000185 | 13 JE @16L691 001EE0 4190 9001 000185 | 13 LA r9,(char)(,r9,1) 001EE4 A766 FFF8 000185 | 13 BRCT r6,@16L690 001EE8 A7F4 0047 000000 | J @16L692 001EEC 000185 | 13 @16L691 DS 0H
Kirk Wolf Dovetailed Technologies https://coztoolkit.com On Tue, Oct 22, 2024, at 2:19 PM, Seymour J Metz wrote: > Shouldn't the loop be incrementing R15? > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > עַם יִשְׂרָאֵל חַי > נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר > > > > ________________________________________ > From: IBM Mainframe Discussion List <[email protected]> on behalf of > Kirk Wolf <[email protected]> > Sent: Tuesday, October 22, 2024 12:51 PM > To: [email protected] > Subject: Re: Bounded string move? > > Caution: This email did not originate from George Mason’s mail system. Do not > click links or open attachments unless you recognize the sender and know the > content is safe. > > > This is a good question. Considering that "strcpy" (MVST) is generally > frowned upon, is there an instruction that is more like "strncpy" ? > Apparently not, although this would seem like a very beneficial instruction > - i.e. MVSTX with Rx being the limit. > > If you look at POP for MVST, you can see this: > > "Bit positions 32-55 of general register 0 are reserved for possible future > extensions and must contain all zeros; otherwise, a specification exception > is recognized." > > Hmm. For a limit? > > I would assume that the implementers of strncpy in the C optimizing compiler > have chosen the best performing instructions, so I looked at a compiler > listing of some of my code that used strncpy and here's what they do. > > @16L690 DS 0H > ICM r0,b'0001',(char)(r9,0) > STC r0,(char)(r15,0) > JE @16L691 > LA r9,(char)(,r9,1) > BRCT r6,@16L690 > J @16L692 > @16L691 DS 0H > ... > > It's always important to remember that one the new exotic instructions may > not perform as well as a loop of the old stuff once it's translated to > microcode. > > Kirk Wolf > Dovetailed Technologies > https://secure-web.cisco.com/1KfUYH9qUGfnT8P-nUV2mvFGPnLfZCbrLOT3dLUXEf-X3DkEaYz5zU3FUO9hWW536JxkFwmaShHqsoWnEv1lLdg5mQ313r0Bj1hY4C79252qngE5gtFSKiuPQcgL2rcrLB_jZC1WpFmtDTiOWoaSjDeQ72Ei7DKqzCZFSSUc0kF7v_z1t9QoM42LpEJkEE14qXyonEDkzXnHLrZsjYsjELGsqDJqWrMVWvigxkSC0ujTcKkHuOzdsnpwU_YidokqKZmCAw1fZ6skZgO84mfLV-6gohH-82x15xSnloAhFQ0bOqOY1tgrwRVwnmwsVZaRoSTskI6ZQ-MR1DrLmELAoa114CwvOr20Jgel48WQDPYwErFiXB0lB69mafhuzcbsKHVDfmNlcKr-Jua5FGSvV0A/https%3A%2F%2Fcoztoolkit.com > > On Mon, Oct 21, 2024, at 6:28 PM, Seymour J Metz wrote: > > If I know the lengths of an input string and the length of a buffer, I can > > specify a pad character and copy it with MVCL. If I know that it is > > delimited by, e.g., a blank, I can use MVST but I run the risk of a buffer > > overrun. Is there a quick way to copy a delimited string without > > overrunning either the input or output buffer and without resorting to TRT? > > > > -- > > Shmuel (Seymour J.) Metz > > http://mason.gmu.edu/~smetz3 > > עַם יִשְׂרָאֵל חַי > > נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר > > > > > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
