Skip to content

cmd/internal/obj/ppc64: T/S bit is being flipped when using extended mnemonics in VSX instructions #30112

@ceseo

Description

@ceseo

What version of Go are you using (go version)?

go1.12

Does this issue reproduce with the latest release?

Yes.

What operating system and processor architecture are you using (go env)?

go env Output
linux/ppc64le
linux/ppc64

What did you do?

CL160429 uncovered a bug in the assembler, where bit 31 of XX1-form instructions is flipped when using extended mnemonics (FP/VMX registers as arguments, instead of VSX).

What did you expect to see?

F0-F31 must map into VS0-VS13 and V0-V31 must map into VS32-VS63.

What did you see instead?

The problem makes FP register arguments become VMX registers (or, in VSX terms, VS0-VS31 into VS32-VS63). This doesn't cause an illegal instruction, but may cause register clobbering.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions