The Retpolines Song

https://www.youtube.com/watch?v=HepkOOM3aok

There's a chip, an Intel chip
Predicting branches in the CPU
And it's aiming them at some place
But the question is at where
Is it here or is it there
It's hard to tell until they're hit
But you'll now it when they miss
'Cos they stall a little bit

Here they come pouring out of GCC
Retpolines for the kernel and for that JIT
You've got to recompile it again
Recompile it again
Retpolines in your programs
Retpolines in your tests
After you run make you'll find
Those retpolines everywhere
Retpolines that will call and return once
And call and return once again
Retpolines that confuse that proof of concept
Every now and then

WOOOOOOOooooooohhhhhh the cache

Some folks sell stock and others patch
But there ain't nothing they can do
And some folks put on lfences
But the spectres go straight through
So you see there's no escape
So why not face it and admit
That you love those retpolines
When they slow you a little bit

Here they come pouring out of GCC
Retpolines for the kernel and for that JIT
You've got to recompile it again
Recompile it again
Retpolines in your programs
Retpolines in your tests
After you run make you'll find
Those retpolines everywhere
Retpolines that will call and return once
And call and return once again
Retpolines that confuse that proof of concept
Every now and then

Retpolines in your programs
Retpolines in your tests
After you run make you'll find
Those retpolines everywhere
Retpolines that will call and return once
And call and return once again
Retpolines that confuse that proof of concept
Every now and then

Retpolines in your programs
Retpolines in your tests
After you run make you'll find
Those retpolines everywhere
Retpolines that will call and return once
And call and return once again
Retpolines that confuse that proof of concept
Every now and then
    

Jose E. Marchesi - http://jemarch.net/