Skip to content

Commit

Permalink
Revert "runtime: Check LSE support on ARM64 at runtime init"
Browse files Browse the repository at this point in the history
This reverts CL 610195.

Reason for revert: SIGILL on macOS. See issue #71411.

Updates #69124, #60905.
Fixes #71411.

Change-Id: Ie0624e516dfb32fb13563327bcd7f557e5cba940
Reviewed-on: https://go-review.googlesource.com/c/go/+/644695
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Keith Randall <[email protected]>
Reviewed-by: Keith Randall <[email protected]>
Reviewed-by: Mauri de Souza Meneguzzo <[email protected]>
  • Loading branch information
cherrymui committed Jan 27, 2025
1 parent e2e700f commit 475e083
Showing 1 changed file with 0 additions and 37 deletions.
37 changes: 0 additions & 37 deletions src/runtime/asm_arm64.s
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@
#include "funcdata.h"
#include "textflag.h"

#ifdef GOARM64_LSE
DATA no_lse_msg<>+0x00(SB)/64, $"This program can only run on ARM64 processors with LSE support.\n"
GLOBL no_lse_msg<>(SB), RODATA, $64
#endif

TEXT runtime·rt0_go(SB),NOSPLIT|TOPFRAME,$0
// SP = stack; R0 = argc; R1 = argv

Expand Down Expand Up @@ -82,21 +77,6 @@ nocgo:
BL runtime·wintls(SB)
#endif

// Check that CPU we use for execution supports instructions targeted during compile-time.
#ifdef GOARM64_LSE
#ifndef GOOS_openbsd
// Read the ID_AA64ISAR0_EL1 register
MRS ID_AA64ISAR0_EL1, R0

// Extract the LSE field (bits [23:20])
LSR $20, R0, R0
AND $0xf, R0, R0

// LSE support is indicated by a non-zero value
CBZ R0, no_lse
#endif
#endif

MOVW 8(RSP), R0 // copy argc
MOVW R0, -8(RSP)
MOVD 16(RSP), R0 // copy argv
Expand All @@ -115,23 +95,6 @@ nocgo:

// start this M
BL runtime·mstart(SB)
RET

#ifdef GOARM64_LSE
#ifndef GOOS_openbsd
no_lse:
MOVD $1, R0 // stderr
MOVD R0, 8(RSP)
MOVD $no_lse_msg<>(SB), R1 // message address
MOVD R1, 16(RSP)
MOVD $64, R2 // message length
MOVD R2, 24(RSP)
CALL runtime·write(SB)
CALL runtime·exit(SB)
CALL runtime·abort(SB)
RET
#endif
#endif

// Prevent dead-code elimination of debugCallV2 and debugPinnerV1, which are
// intended to be called by debuggers.
Expand Down

0 comments on commit 475e083

Please sign in to comment.