spectre のほうは同じようなことを投機的実行で起こす
つまり
if(x < array_size){
byte = array[x];
cache = array2[4096*byte];
}
この部分を array_size 以下の x で何度も実行して CPU が「if 条件はたぶん成功する」と学んだ頃に
x としてカーネル領域のアドレスを与える
すると CPU は if 条件を確かめる前に投機的に if ブロックを実行するので meltdown と同じことができる
そしてこれはアウトオブオーダーとは関係ないので ARM でも起きる
あと JIT コンパイルされる javascript でも起こせる