From fc8a6336d1ad29acf2c7728ce669df9059169132 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 17 Jan 2020 13:54:30 -0500 Subject: 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 --- test/codegen/retpoline.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/codegen/retpoline.go (limited to 'test/codegen') diff --git a/test/codegen/retpoline.go b/test/codegen/retpoline.go new file mode 100644 index 0000000000..15d6a26615 --- /dev/null +++ b/test/codegen/retpoline.go @@ -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() +} -- cgit v1.3-5-g9baa