¿ªÔÆÌåÓý


Re: memset help

 

(By the way, I replied to your recent "Inquiring minds" email but I fear you
may not have seen my reply as Google tends to route anything I send these days
isnto their recipients spam folder or otherwise quarantine it. Apparantly
Google regards me as a notorious source of spam or something for some time now.
I also sent emails to other Google mail users both on the this list not and
these also seem to have disappeared into black holes...)
Oh dear. I have had the problem in the past of my e-mails being
picked up by spam filters and so has my brother. I think in our case
it was a case of the Scunthorpe problem
() - look at my
surname!


Re: Register Add - Quick Question

 

On Thu, Apr 16, 2020 at 06:30 PM, Peter Coghlan wrote:
save two bytes:

AH R1,=H'8'
Peter ... You have taught me what F meant!


Re: Register Add - Quick Question

 

You are gentlemen ... thank you!

It is for a 24 bit address.

A


Re: Register Add - Quick Question

 

This form of LA:

LA Rx,D2(Rx)?

is only good to add up to 4095 to a register. Past that you have to use other instructions. And as Peter noted, the left 8 bits will be zeroed in AM24.

Joe

On Thu, Apr 16, 2020 at 1:30 PM Peter Coghlan <groups@...> wrote:
Mostly!

LA works as long as the answer fits in 24 bits so it's no good for
adding 8 to a negative value in R1 for example.

An alternative solution is:

? ? ? ? ?A? ? ?R1,=F'8'

If memory is really tight, you could use this and possibly save two bytes:

? ? ? ? ?AH? ? R1,=H'8'


Regards,
Peter Coghlan.


>
> Yes!
>
> LA R1,8(R1)
>
> Joe
>
>
> On Thu, Apr 16, 2020 at 1:09 PM adriansutherland67 <
> adrian@...> wrote:
>
> > Is there a better way than this to add 8 to R1?
> >
> >? ? ? ? ? LA? ? R0,8
> >? ? ? ? ? AR? ? R1,R0? ? ? ? ? Add 8 to R1
> >
> > Thanks A
> >
> >
> >
>
>




Re: Register Add - Quick Question

 

Mostly!

LA works as long as the answer fits in 24 bits so it's no good for
adding 8 to a negative value in R1 for example.

An alternative solution is:

A R1,=F'8'

If memory is really tight, you could use this and possibly save two bytes:

AH R1,=H'8'


Regards,
Peter Coghlan.


Yes!

LA R1,8(R1)

Joe


On Thu, Apr 16, 2020 at 1:09 PM adriansutherland67 <
adrian@...> wrote:

Is there a better way than this to add 8 to R1?

LA R0,8
AR R1,R0 Add 8 to R1

Thanks A



Re: Register Add - Quick Question

 

Yes!?

LA R1,8(R1)

Joe


On Thu, Apr 16, 2020 at 1:09 PM adriansutherland67 <adrian@...> wrote:
Is there a better way than this to add 8 to R1?

? ? ? ? ?LA? ? R0,8
? ? ? ? ?AR? ? R1,R0? ? ? ? ? Add 8 to R1

Thanks A


Register Add - Quick Question

 

Is there a better way than this to add 8 to R1?

? ? ? ? ?LA? ? R0,8
? ? ? ? ?AR? ? R1,R0? ? ? ? ? Add 8 to R1

Thanks A


Re: memset help

 

On Wed, Apr 15, 2020 at 07:07 PM, Harold Grovesteen wrote:
That is how we all learned. ?Getting slapped a few times helps with the
memory. ?There is no way to learn assembler, like any language, without
doing it.
Slowly learning - I think I can do USING and DROP and use MACROs as well ... includes/copybooks

A


Re: memset help

 

On Wed, Apr 15, 2020 at 01:00 PM, Harold Grovesteen wrote:
I remind everyone working with GCC on VM/370 that it is a port of the
old i370 architecture version of GCC. ?The modern optimizations are
likely to be quite limited. ?This GCC is not the same version of GCC
that is used today.
Exactly - however we don't really care about the backend optimisations (after all we use Hercules which has completely different timing characteristics), but we do the front end / C ones; for example dead code removal, unwinding loops, register assignments, avoiding recalculating constants, inlining etc.?


Re: memset help

 

On Thu, Apr 16, 2020 at 03:14 PM, Dave Wade wrote:
one disk had ¡°crap¡± when I think it was part of the GCCCMS library.
I recovered it ... the real issue is that it was work in progress

A


Re: memset help

 

On Thu, Apr 16, 2020 at 05:35 PM, Dave Wade wrote:
split the pre-processor into a separate phase.
Perhaps ... and 16mb is not very very tiny ... I think it is the optimisers that will cause dramas!


Re: memset help

 

On Thu, Apr 16, 2020 at 03:22 PM, Harold Grovesteen wrote:
?I have a concern
that the efforts here will actually cause GCC to fork. ?That there will
end up being a GCC for VM and one for MVS and DOS. ?While GCC itself is
relatively static, it does incur some change.

How is GCC supported? ?Is there a team or just some adhoc approach?
I believe that it it did "self host" at least once. And why would we not try again? Pragmatically however there?is no particular problem with cross compiling it (and I am guessing this might be faster!).?

And compiling it against GCCLIB would be a benefit for us CMS users.

At the moment Paul is "GCC" for CMS?and MVS ...?

The big problems are
- Having the optimiser work in low memory environments. Basically the whole program needs to be in memory for the optimisers to optimise
- Forward port the mainframe character encoding
- Forward port the S/370 backend
- Both these refect that fact that we are using a very old version of GCC
- And what about the C++ front ends ...

But I think that we should aim to keep the MVS and CMS GCC code base together ... there aren't enough users to support 2 versions!


Re: memset help

 

¿ªÔÆÌåÓý

Joe,

I wonder if we could split the pre-processor into a separate phase. Pretty sure GCC used to build like that on my Atari ST with 4Mb of memory

Dave

?

From: [email protected] <[email protected]> On Behalf Of Joe Monk
Sent: 16 April 2020 17:45
To: [email protected]
Subject: Re: [h390-vm] memset help

?

"There have been a lot of angst about 31-bit addressing in MVS 3.8J.
?This was implemented in a forked version of Hercules.? It was driven
by the fact that GCC could not compile itself in a 24-bit world of an
MVS address space. Thank you Paul."

?

It was driven by Paul's desire for a single load module, which MVS3.8J could not handle. Had Paul adopted relevant techniques of the time, such as dynamic calls instead a static call to a library, and using work files within the compiler, this would not have been an issue.

?

Joe

?

On Thu, Apr 16, 2020 at 10:22 AM Harold Grovesteen <h.grovsteen@...> wrote:

On Thu, 2020-04-16 at 07:46 -0700, adriansutherland67 wrote:
> On Thu, Apr 16, 2020 at 02:38 PM, Harold Grovesteen wrote:
> dependent upon Paul for a rebuild
> of GCC??
> I think not ... the source is all published.?
>
> One thing I want to do is a build of GCC using the GCCLIB library
>
> A
>?
Source availability was never the issue.? The ability for GCC to
actually build itself on the various target platforms have been the
issue.

There have been a lot of angst about 31-bit addressing in MVS 3.8J.
?This was implemented in a forked version of Hercules.? It was driven
by the fact that GCC could not compile itself in a 24-bit world of an
MVS address space. Thank you Paul.

My question was about constraints within CMS that might preclude self
compilation by GCC.? The actual answer appears to be that we do not
know.

Could GCC be compiled outside of CMS?? Absolutely.? I believe this is
how we managed to actually port it.? But that was not my earlier
question.

Perhaps, Adrian, you will answer these questions.? I have a concern
that the efforts here will actually cause GCC to fork.? That there will
end up being a GCC for VM and one for MVS and DOS.? While GCC itself is
relatively static, it does incur some change.

How is GCC supported?? Is there a team or just some adhoc approach?

Harold Grovesteen



Re: memset help

 

"There have been a lot of angst about 31-bit addressing in MVS 3.8J.
?This was implemented in a forked version of Hercules.? It was driven
by the fact that GCC could not compile itself in a 24-bit world of an
MVS address space. Thank you Paul."

It was driven by Paul's desire for a single load module, which MVS3.8J could not handle. Had Paul adopted relevant techniques of the time, such as dynamic calls instead a static call to a library, and using work files within the compiler, this would not have been an issue.

Joe

On Thu, Apr 16, 2020 at 10:22 AM Harold Grovesteen <h.grovsteen@...> wrote:
On Thu, 2020-04-16 at 07:46 -0700, adriansutherland67 wrote:
> On Thu, Apr 16, 2020 at 02:38 PM, Harold Grovesteen wrote:
> dependent upon Paul for a rebuild
> of GCC??
> I think not ... the source is all published.?
>
> One thing I want to do is a build of GCC using the GCCLIB library
>
> A
>?
Source availability was never the issue.? The ability for GCC to
actually build itself on the various target platforms have been the
issue.

There have been a lot of angst about 31-bit addressing in MVS 3.8J.
?This was implemented in a forked version of Hercules.? It was driven
by the fact that GCC could not compile itself in a 24-bit world of an
MVS address space. Thank you Paul.

My question was about constraints within CMS that might preclude self
compilation by GCC.? The actual answer appears to be that we do not
know.

Could GCC be compiled outside of CMS?? Absolutely.? I believe this is
how we managed to actually port it.? But that was not my earlier
question.

Perhaps, Adrian, you will answer these questions.? I have a concern
that the efforts here will actually cause GCC to fork.? That there will
end up being a GCC for VM and one for MVS and DOS.? While GCC itself is
relatively static, it does incur some change.

How is GCC supported?? Is there a team or just some adhoc approach?

Harold Grovesteen




Re: memset help

 

On Thu, 2020-04-16 at 07:46 -0700, adriansutherland67 wrote:
On Thu, Apr 16, 2020 at 02:38 PM, Harold Grovesteen wrote:
dependent upon Paul for a rebuild
of GCC??
I think not ... the source is all published.?

One thing I want to do is a build of GCC using the GCCLIB library

A
?
Source availability was never the issue. ?The ability for GCC to
actually build itself on the various target platforms have been the
issue.

There have been a lot of angst about 31-bit addressing in MVS 3.8J.
?This was implemented in a forked version of Hercules. ?It was driven
by the fact that GCC could not compile itself in a 24-bit world of an
MVS address space. Thank you Paul.

My question was about constraints within CMS that might preclude self
compilation by GCC. ?The actual answer appears to be that we do not
know.

Could GCC be compiled outside of CMS? ?Absolutely. ?I believe this is
how we managed to actually port it. ?But that was not my earlier
question.

Perhaps, Adrian, you will answer these questions. ?I have a concern
that the efforts here will actually cause GCC to fork. ?That there will
end up being a GCC for VM and one for MVS and DOS. ?While GCC itself is
relatively static, it does incur some change.

How is GCC supported? ?Is there a team or just some adhoc approach?

Harold Grovesteen


Re: memset help

 

¿ªÔÆÌåÓý

Folks,

?

Not sure if its what I actually said, but in essence, there should be no problems re-building GCC, its just I havn¡¯t done it for some time.

There are issues withy disk usage on the GCCCMS ID. Paul complained one disk had ¡°crap¡± when I think it was part of the GCCCMS library.

I removed and I ?think this may be why we have issues with the 1.3 Betas¡­

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of adriansutherland67
Sent: 16 April 2020 15:46
To: [email protected]
Subject: Re: [h390-vm] memset help

?

On Thu, Apr 16, 2020 at 02:38 PM, Harold Grovesteen wrote:

dependent upon Paul for a rebuild
of GCC??

I think not ... the source is all published.?

One thing I want to do is a build of GCC using the GCCLIB library

A


Re: memset help

 

On Wed, 2020-04-15 at 18:15 -0500, Joe Monk wrote:
Question:
¨C?What should be used to move or clear large blocks of data?
¡ì?´¡²Ô²õ·É±ð°ù:
¡ì?There are several ways to move or clear a large block of storage
provided in the z/Architecture
One MVCL instruction
Loops of MVCs to move data
Loops of MVC <Len>,<Addr>+1,<Addr> or XC <Len>,<Addr>,<Addr> to
pad/clear an area
¡ì?As discussed on page 31 titled ¡°MOVE LONG
¾±²Ô²õ³Ù°ù³Ü³¦³Ù¾±´Ç²Ô²õ¡±,?¨C?²Ñ³Õ°ä³¢¾±²õ¾±³¾±è±ô±ð³¾±ð²Ô³Ù±ð»å³Ù³ó°ù´Ç³Ü²µ³ó³¾¾±±ô±ô¾±³¦´Ç»å±ð°ù´Ç³Ü³Ù¾±²Ô±ð²õ
¨C?²Ñ¾±±ô±ô¾±³¦´Ç»å±ð¾±²õ²¹´Ú¾±°ù³¾·É²¹°ù±ð±ô²¹²â±ð°ù¾±²Ô³Ù³ó±ð´Ú´Ç°ù³¾´Ç´Ú±¹±ð°ù³Ù¾±³¦²¹±ô³¾¾±³¦°ù´Ç³¦´Ç»å±ð
??Incurs some overhead in startup, boundary/exception checking, and
ending
¨C?²Ñ³Õ°ä³¢´Ú³Ü²Ô³¦³Ù¾±´Ç²Ô¾±³¾±è±ô±ð³¾±ð²Ô³Ù±ð»å³Ü²õ¾±²Ô²µ±ô´Ç´Ç±è²õ´Ç´Ú²Ñ³Õ°ä²õ´Ç°ù³Ý°ä²õ
¨C?²Ñ¾±±ô±ô¾±³¦´Ç»å±ð³ó²¹²õ²¹³¦³¦±ð²õ²õ³Ù´Ç²õ±è±ð³¦¾±²¹±ô²Ô±ð²¹°ù-³¾±ð³¾´Ç°ù²â±ð²Ô²µ¾±²Ô±ð²õ³Ù³ó²¹³Ù³¦²¹²Ô»å´Ç±è²¹²µ±ð-
alignedmoveandpage-alignedpadding
Can be faster than dragging cache lines through the cache hierarchy
However, the destination data will NOT be in the local cache
¡ì?As such, the answer is ¡°it depends¡± as there is no one answer to
all situations. There are many factors to
³¦´Ç²Ô²õ¾±»å±ð°ù?¨C?°Â¾±±ô±ô³Ù³ó±ð³Ù²¹°ù²µ±ð³Ù²ú±ð²Ô±ð±ð»å±ð»å¾±²Ô±ô´Ç³¦²¹±ô³¦²¹³¦³ó±ð²õ´Ç´Ç²Ô?
??Then moving/padding ¡°locally¡± will be better by using MVCs or
³Ý°ä²õ?¨C?±õ²õ³Ù³ó±ð²õ´Ç³Ü°ù³¦±ð¾±²Ô±ô´Ç³¦²¹±ô³¦²¹³¦³ó±ð?
??Then moving/padding ¡°locally¡± may be better by using MVCs, or
³Ý°ä²õ?¨C?±á´Ç·É³¾³Ü³¦³ó»å²¹³Ù²¹¾±²õ²ú±ð¾±²Ô²µ±è°ù´Ç³¦±ð²õ²õ±ð»å?
??The more data you are required to process, the more you may benefit
from using MVCL due to special hardware engines used by millicode
¨C?·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù²¹³Ù¾±´Ç²Ô¾±²õ,³Ù³ó±ð°ù±ð´Ú´Ç°ù±ð,³ó¾±²µ³ó±ô²â²¹»å±¹¾±²õ±ð»å
This is all very interesting, but has no relevance to Hercules.
?Hercules has no concept of millicode or cache lines.

All instructions are implemented in the "hardware" of Hercules, namely,
its C program, and all memory is directly accessed.

Now, a discussion about how Hercules is designed and its impact on the
underlying real hardware is an entirely different matter. ?We know that
the instruction execution can itself be significantly improved. ?A
proprietary emulator that executes on the same type of hardware as does
Hercules is reported to be significantly faster than Hercules. ?Most of
us lack access to such an emulator. ?

However, this proprietary emulator does not, as far as I know, execute
S/370 architecture. ?So is irrelevant in a topic of VM/370. ?Hercules
is the only relevant emulator here and you all saw my general
recommendation for Hercules performance.

Harold Grovesteen


Re: memset help

 

On Thu, Apr 16, 2020 at 02:38 PM, Harold Grovesteen wrote:
dependent upon Paul for a rebuild
of GCC??
I think not ... the source is all published.?

One thing I want to do is a build of GCC using the GCCLIB library

A


Re: memset help

 

On Wed, 2020-04-15 at 20:51 +0100, Dave Wade wrote:

BTW, can CMS compile GCC on VM/370???There were issues with that on
MVS.
Originally it could on VM/370, but not on SP or later because you
lose memory. I don't know how Paul builds it these days, he may use
the 380 mods..?
There were some modules that needed different optimization, but I
can't remember which ones they were.
Because CMS is so small you get more usable memory than on MVS.

Dave

?
So are all of the operating systems dependent upon Paul for a rebuild
of GCC??

In this context I am assuming he is delivering object modules to the
other platforms with linking occurring on the target platform.

Harold


Re: REXX Interpreter immediate commands

 

Pardon if I answer this twice. I had a crash, right when I hit?send a few minutes ago.


I was only describing the HI immediate command implementation in the original REXX.

Almost all the multiuser, multitasking, and asynchronous event processing is handled in the
VM Control Program.? This design allows CMS to be treated as a single user system. There?
is one application running. It may synchronously?call other programs. It can use simple?
Input/Output operations which are treated as synchronous.

Some events, however, are inherently asynchronous. Timer expirations, communications with other
virtual machines, special?asynchronous input/output, etc. CMS interruption?handling is documented in the?
VM/370 System Programmer's Guide. In general, CMS applications sign up to be notified of asynchronous
events by providing the address of an event handler routine. These handlers can mark events complete by?
setting indicators which are polled by mainline code. The mainline routine can also relinquish control by?
a WAIT state, so that event handlers POST the completion of events and the mainline code resumes
execution.?

The APIs for asynchronous operation are only available to assembler level routines in VM/370.?
Later VM systems (more recent than 40 years ago) extended these capabilities to enable client/server
application development in CMS. Although VM application vendors (for products like The SAS System, and?
the VM:Manager Suite of products) built their own multitasking layers for their products, CMS did not?
support true Application Multitasking until about 30 years ago.?

Even 45 years ago,?receiving interrupts, and registering event handlers were fundamental?components of? CMS.

Bob Bolch



On Wed, Apr 15, 2020 at 5:24 PM adriansutherland67 <adrian@...> wrote:
Bob ... Noted

Am I right in assuming that the concept of processes receiving signals / interrupts, and of registering signal handlers is just alien to VM/370 and can be ignored?

A