| // +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() | |
| } | |
| // 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 | |
| } |