Initial commit: Go 1.23 release state
This commit is contained in:
43
test/codegen/retpoline.go
Normal file
43
test/codegen/retpoline.go
Normal file
@@ -0,0 +1,43 @@
|
||||
// asmcheck -gcflags=-spectre=ret
|
||||
|
||||
//go:build amd64
|
||||
|
||||
package codegen
|
||||
|
||||
func CallFunc(f func()) {
|
||||
// amd64:`CALL\truntime.retpoline`
|
||||
f()
|
||||
}
|
||||
|
||||
func CallInterface(x interface{ M() }) {
|
||||
// amd64:`CALL\truntime.retpoline`
|
||||
x.M()
|
||||
}
|
||||
|
||||
// Check to make sure that jump tables are disabled
|
||||
// when retpoline is on. See issue 57097.
|
||||
func noJumpTables(x int) int {
|
||||
switch x {
|
||||
case 0:
|
||||
return 0
|
||||
case 1:
|
||||
return 1
|
||||
case 2:
|
||||
return 2
|
||||
case 3:
|
||||
return 3
|
||||
case 4:
|
||||
return 4
|
||||
case 5:
|
||||
return 5
|
||||
case 6:
|
||||
return 6
|
||||
case 7:
|
||||
return 7
|
||||
case 8:
|
||||
return 8
|
||||
case 9:
|
||||
return 9
|
||||
}
|
||||
return 10
|
||||
}
|
||||
Reference in New Issue
Block a user