From b3e1fbff4d45034a9345cf5ee95099c2742c78c6 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Fri, 3 Dec 2021 13:40:10 -0500 Subject: [PATCH] cmd/compile/abi-internal: mention SSE restriction on Plan 9 Change-Id: I2be08b88b5147cf37ac55b7472d63503739c9f05 Reviewed-on: https://go-review.googlesource.com/c/go/+/369156 Trust: Austin Clements Reviewed-by: Cherry Mui --- src/cmd/compile/abi-internal.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cmd/compile/abi-internal.md b/src/cmd/compile/abi-internal.md index 50d8ed9159..7fe4463665 100644 --- a/src/cmd/compile/abi-internal.md +++ b/src/cmd/compile/abi-internal.md @@ -410,7 +410,11 @@ Special-purpose registers are as follows: | R13 | Scratch | Scratch | Scratch | | R14 | Current goroutine | Same | Same | | R15 | GOT reference temporary if dynlink | Same | Same | -| X15 | Zero value | Same | Scratch | +| X15 | Zero value (*) | Same | Scratch | + +(*) Except on Plan 9, where X15 is a scratch register because SSE +registers cannot be used in note handlers (so the compiler avoids +using them except when absolutely necessary). *Rationale*: These register meanings are compatible with Go’s stack-based calling convention except for R14 and X15, which will have -- 2.50.0