jemarch.net - The Retpolines Song

(The melody is Leapy Lee's "Little Arrows") https://www.youtube.com/watch?v=cRCvTe-BsNc ,---- | 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 `----