Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Torbjörn Granlund
I committed your patch (while also impersonating you).

-- 
Torbjörn
Please encrypt, key id 0xC8601622
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel


Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Torbjörn Granlund
Stefan Liebler  writes:

  Thanks for that. In the meantime, gmp 6.3.0 + this patch should be used.
  Do you have plans for 6.3.1?

We tend to make point releases.

  For me "qemu-system-s390x --cpu help" at least lists some z13 models,
  but to be honest, I don't use it. I have to check.

Yes, that list I get. But passing almost any of the suggested options
causes an error message.  (I think -cpu z990 was the only one with which
I had success.  But no, I haven't tried every listed option.)

I stick to "user emulation" with qemu these days, as I cannot afford the
electricity needed for full system emulation.

-- 
Torbjörn
Please encrypt, key id 0xC8601622
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel


Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Stefan Liebler
On 03.08.23 16:03, Niels Möller wrote:
> Stefan Liebler  writes:
> 
>> Unfortunately not only the extended mnemonics are not available with z13,
>> but also vpopct M3=1-3 is reserved. Thus you'll get an illegal-instruction
>> if run on z13 as vector enhancement facility 1 (introduced with z14) is
>> not available.
> 
> Is there some pseudo op that can be used to tell the assembler that the
> file targets z13, and get errors at compile time for unavailable instructions?
> 
> Regards,
> /Niels
> 
Of course the gcc --march=XYZ flag is passed to the assembler, but there
is also the .machine XYZ. You could use it like this:
.machine push
.machine "z13"
# z13-instruction
.machine pop

But in this case, it does not cause an error as on z13 vpopct with M3
flag is available. Unfortunately the assembler does not check the value
of M3-flag. Using vpopctg with --march=z13 will cause an error.
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel


Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Stefan Liebler
On 03.08.23 16:06, Torbjörn Granlund wrote:
> Stefan Liebler  writes:
> 
>   Unfortunately not only the extended mnemonics are not available with z13,
>   but also vpopct M3=1-3 is reserved. Thus you'll get an illegal-instruction
>   if run on z13 as vector enhancement facility 1 (introduced with z14) is
>   not available.
> 
> Ah, darn.  This will need to be fixed in a 6.3.1 when the dust settles.
Thanks for that. In the meantime, gmp 6.3.0 + this patch should be used.
Do you have plans for 6.3.1?
> 
> I only have a z15 to run tests on.  I don't have a reliable way of
> telling what instructions run on a particular implementation.  An
> instruction table with checkmarks per implementation would avoid this
> sort of problems.  IBM should be able provide that.
Indeed the best list I know is /opcodes/s390-opc.txt. But
also see below. The POP also contains a small hint regarding the
M3-reserves, but I've overseen it.
> 
> A simple test I have used is to see what instructions the assembler
> accepts under various command-line options.  That depends on the GNU
> binutils developers to have made no mistake.
In this case, it does not cause an error as on z13 vpopct with M3 flag
is available. Unfortunately the assembler does not check the value of
M3-flag. Using vpopctg with --march=z13 will cause an error.
> 
> I also tried to make qemu help by passing -cpu XXX, as that has proven
> itself historically for other evolving ISAs.  The GMP test setup then
> can autotest things for several architectures, quickly triggering any
> incorrect instruction availability assumptions.  Unfortunately for
> qemu-s390x, all I get from passing say "-cpu z13" is an arm long
> non-parsable error message.  I have had no luck with any -cpu argument
> whatsoever.
> 
For me "qemu-system-s390x --cpu help" at least lists some z13 models,
but to be honest, I don't use it. I have to check.
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel


Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Torbjörn Granlund
Stefan Liebler  writes:

  Unfortunately not only the extended mnemonics are not available with z13,
  but also vpopct M3=1-3 is reserved. Thus you'll get an illegal-instruction
  if run on z13 as vector enhancement facility 1 (introduced with z14) is
  not available.

Ah, darn.  This will need to be fixed in a 6.3.1 when the dust settles.

I only have a z15 to run tests on.  I don't have a reliable way of
telling what instructions run on a particular implementation.  An
instruction table with checkmarks per implementation would avoid this
sort of problems.  IBM should be able provide that.

A simple test I have used is to see what instructions the assembler
accepts under various command-line options.  That depends on the GNU
binutils developers to have made no mistake.

I also tried to make qemu help by passing -cpu XXX, as that has proven
itself historically for other evolving ISAs.  The GMP test setup then
can autotest things for several architectures, quickly triggering any
incorrect instruction availability assumptions.  Unfortunately for
qemu-s390x, all I get from passing say "-cpu z13" is an arm long
non-parsable error message.  I have had no luck with any -cpu argument
whatsoever.

-- 
Torbjörn
Please encrypt, key id 0xC8601622
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel


Re: [PATCH] Revert "Move popcount and hamdist back from z14 to z13 after needed edits."

2023-08-03 Thread Niels Möller
Stefan Liebler  writes:

> Unfortunately not only the extended mnemonics are not available with z13,
> but also vpopct M3=1-3 is reserved. Thus you'll get an illegal-instruction
> if run on z13 as vector enhancement facility 1 (introduced with z14) is
> not available.

Is there some pseudo op that can be used to tell the assembler that the
file targets z13, and get errors at compile time for unavailable instructions?

Regards,
/Niels

-- 
Niels Möller. PGP key CB4962D070D77D7FCB8BA36271D8F1FF368C6677.
Internet email is subject to wholesale government surveillance.
___
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel