[fpc-devel] Re: System 370: Episode 3. Addressing and it's limits Part One!

Mark Morgan Lloyd markMLl.fpc-devel at telemetry.co.uk
Fri Feb 10 22:37:52 CET 2012

steve smithers wrote:
> Mark Morgan Lloyd wrote on Fri Feb 10 21:20:15 CET 2012
>>>> If Hercules is configured as an S/390 to keep the guest operating system 
>>>> (e.g. Linux) happy, is it possible to validate that a binary is 
>>>> completely safe to run on an S/370, i.e. contains no 390-specific features?
>>> I'm not exactly clear on what you are asking.  You could turn off the 390
>>> features on Hercules and see if it crashes, or you could ensure you don't
>>> generate thme by using some compiler switch, or you could remove the macros
>>> required for the IBM Assembler to support the mods, they will cause assembly
>>> errors.  Or what ...?
>> But assuming that an initial port is to Linux, you need Hercules to 
>> provide S/390 features or the operating system won't run. The way I read 
>> it, if you're also targeting classic operating systems such as VM/370 
>> then the only way to prove that the code generation is 370-safe is to 
>> run the code on a (simulated) 370: there's no way of testing compliance 
>> at an earlier stage.
> Hercules provides the S/390 features for Linux, but we don't have to use them.
> S/370 is a subset of S/390, that will run quite happily on S/390 processors.
> The only requirement for S/390 extensions is gas.  But gas doesn't support
> USING and is a waste of space for our requirements.  (This may not apply
> to the version of gas supplied with OS/380)
> There is nothing provided in the extensions that we cannot achieve without them,
> sometimes it may be more aggro, but we can still do it.  We could, if we were 
> bored and had nothing better to do, write macros for the System/370 assembler
> to support the S/390 extensions on a base "real-iron" box.
> Anyway, assuming that Linux/390 is the target.  There is no way to prove
> compliance of the initial port until we are ready to run on Linux/390.  At
> some stage, you have to bite the bullet.  We also have to modify the RTL,
> even for Linux/390.

I'm a bit worried that gas might not support all the arithmetic 
operations that appear to be required by your examples, but at the same 
time I still feel that Linux is the best initial target. Has anybody 
ported a fully-featured IBM macro assembler to Linux?

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-devel mailing list