Skip to content

cmd/compile: unaligned accesses on mips64 #46283

Closed
@4a6f656c

Description

@4a6f656c

Both test/abi/leaf.go and test/abi/spills4.go currently SIGBUS on openbsd/mips64:

##### ../test                                    
# go run run.go -- abi/leaf.go
exit status 2                                                                                                     
unexpected fault address 0xc0000bcf34
fatal error: fault
[signal SIGBUS: bus error code=0x1 addr=0xc0000bcf34 pc=0x12e5c]

...

# go run run.go -- abi/spills4.go
exit status 2
unexpected fault address 0xc0000bcf34
fatal error: fault
[signal SIGBUS: bus error code=0x1 addr=0xc0000bcf34 pc=0x12e5c]

...

This is due to an unaligned access, resulting from an ld instruction with an address that is not a multiple of 8:

0000000000012e58 <runtime.memequal128>:
   12e58:       dfa10008        ld      at,8(sp)
   12e5c:       dc220000        ld      v0,0(at)

I've bisected this to:

[84ca4949a71554265b3c8a99359a5fad6ca0cab1] cmd/compile: remove 8-byte alignment requirement of stack slot on mips64

Prior to that commit test/abi/leaf.go (although introduced later on) builds and runs, after that commit it fails. Note that this test probably passes on linux/mips64, although there will be a performance penalty due to the kernel handling the unaligned access fault. Unfortunately we do not run test on the openbsd/mips64 builder for performance reasons.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions