mirror of
https://github.com/golang/go
synced 2025-05-29 15:20:52 +00:00
cmd/asm, cmd/compile, runtime: add -spectre=ret mode
This commit extends the -spectre flag to cmd/asm and adds a new Spectre mitigation mode "ret", which enables the use of retpolines. Retpolines prevent speculation about the target of an indirect jump or call and are described in more detail here: https://support.google.com/faqs/answer/7625886 Change-Id: I4f2cb982fa94e44d91e49bd98974fd125619c93a Reviewed-on: https://go-review.googlesource.com/c/go/+/222661 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
src
cmd
asm
compile
internal
gc
internal
runtime
test/codegen
14
test/codegen/retpoline.go
Normal file
14
test/codegen/retpoline.go
Normal file
@ -0,0 +1,14 @@
|
||||
// +build amd64
|
||||
// asmcheck -gcflags=-spectre=ret
|
||||
|
||||
package codegen
|
||||
|
||||
func CallFunc(f func()) {
|
||||
// amd64:`CALL\truntime.retpoline`
|
||||
f()
|
||||
}
|
||||
|
||||
func CallInterface(x interface{ M() }) {
|
||||
// amd64:`CALL\truntime.retpoline`
|
||||
x.M()
|
||||
}
|
Reference in New Issue
Block a user