FAQ
We discussed this at the runtime meeting today and we'd like to get ppc64be
working on power5 again, if possible.
This would mean
  1) Implementing CL 22772 in a different way for ppc64be and ppc64le,
conditioned on the architecture.
  2) Doing assembly changes with #ifdefs around power8 instructions, with
fallback to power5 instructions. In assembly we have the architecture as a
macro we can check.

How feasible are doing these changes? I hope we can do all this with no
runtime checks and no duplication of code (i.e. no separate asm_ppc64.s and
asm_ppc64le.s files).
On Tue, Jun 7, 2016 at 1:59 PM, 'David Chase' via golang-dev wrote:

One of the relevant CLs concerns unsigned-to-float conversion:
https://go-review.googlesource.com/c/22772/

and how the same bug was fixed on MIPS64, see discussion in comments also:
https://go-review.googlesource.com/c/22835/
On Tue, Jun 7, 2016 at 1:52 PM, wrote:

Just to be clear what I'm suggesting:

I could make the change so ppc64 BE would work with older instruction
sets like were used in Go 1.6. ppc64le would continue to use the new
instruction sets in Go 1.7 and future Go language versions.

I have no plans to add ppc32 or any other old instruction sets that
weren't there before.

But I'm not the one that makes the final decision on what changes are
accepted. I'm just saying I'm willing to undo the instruction set
incompatibility I introduced for ppc64 BE in Go 1.7 if that's allowed.

On Tuesday, June 7, 2016 at 12:36:23 PM UTC-5, John Paul Adrian Glaubitz
wrote:
On 06/07/2016 06:34 PM, lab...@linux.vnet.ibm.com wrote:
In Go 1.7, I made changes to some library asm files to improve
performance. Some of those functions now use instructions that are from
the later power
instruction sets (>= power5?). There is one file that uses a power8
only instruction. If the goal is keep ppc64 BE backward compatible with
the oldest
instruction set, #ifdefs could be added in a few places to use the new
instructions for ppc64le only. There were already #ifdefs for some of
these functions
anyway because of the cases where BE vs. LE require different code.
There were no changes to generated code, only asm files.

That would be really awesome and highly appreciated :). Thanks a lot for
putting this into consideration!
For future golang releases the solution will need to be different if
new instruction sets are used but in that case feature checking should
work.

There is also PowerPC e500v2 in Debian which uses the SPE instructions
but doesn't have any FPU instructions. The GHC people are already looking
into
extending their NGC to add support for that. And, of course, the
classic, 32-bit PowerPC. IBM has really produced lots of different
variations of
POWER CPUs over the time, so that would require lots of #ifdefs to
accommodate for all of them :). I think we currently have four different
variants
of POWER in Debian.

Again, thank you for your consideration and work!

Adrian

PS: Also big thanks to whoever added s390x support to golang. I assume
that happened at IBM, too.

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glau...@debian.org
`. `' Freie Universitaet Berlin - glau...@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
--
You received this message because you are subscribed to the Google Groups
"golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

People

Translate

site design / logo © 2021 Grokbase