386sx 16Mhz initial tss switch: 386 12345 switches/sec software switching using pusha: 386 19531 switches/sec using less pushes: 386 20569 switches/sec using O2: 386 22355 switches/sec using fastcall for inner routine: 386 25388 switches/sec tested on AMD kaveri, 3.9Ghz: approx 40mil/sec software, 1mil/sec hardware skylake 4.2Ghz in qemu/kvm: 45mil/sec software, 121k hardware (may be vmexiting)