tree: 29597f38b1b4d6c1141e03ba3c1e9c59cd3e82b3 [path history] [tgz]
  1. asm/
  2. cache_sidechannel.cc
  3. cache_sidechannel.h
  4. CMakeLists.txt
  5. compiler_specifics.h
  6. eret_hvc_smc_wrapper.cc
  7. faults.cc
  8. faults.h
  9. hardware_constants.h
  10. instr.cc
  11. instr.h
  12. instr_aarch64.h
  13. instr_ppc64le.h
  14. instr_x86.h
  15. l1tf.cc
  16. local_content.h
  17. meltdown.cc
  18. meltdown_ac.cc
  19. meltdown_br.cc
  20. meltdown_de.cc
  21. meltdown_local_content.h
  22. meltdown_of.cc
  23. meltdown_ss.cc
  24. meltdown_ud.cc
  25. README.md
  26. ret2spec_ca.cc
  27. ret2spec_callret_disparity.cc
  28. ret2spec_common.cc
  29. ret2spec_common.h
  30. ret2spec_sa.cc
  31. spectre_v1_btb_ca.cc
  32. spectre_v1_btb_sa.cc
  33. spectre_v1_pht_sa.cc
  34. spectre_v4.cc
  35. speculation_over_exec_hw_breakpoint.cc
  36. speculation_over_read_hw_breakpoint.cc
  37. speculation_over_single_step_trap.cc
  38. speculation_over_sw_breakpoint.cc
  39. speculation_over_syscall.cc
  40. timing_array.cc
  41. timing_array.h
  42. timing_array_test.cc
  43. utils.cc
  44. utils.h
demos/README.md

Demo programs

Build instructions

cd safeside
cmake -B build .
make -C build

# Everything should be built now.

./build/demos/spectre_v1_pht_sa

./build/demos/spectre_v1_btb_ca

# You need to load the kernel module before running this
sudo ./build/demos/meltdown

./build/demos/spectre_v4

./build/demos/ret2spec_sa

etc.

Tested environments

We currently test our changes on:

  • Linux - Intel Xeon Gold 6154 - {g++-6.4.0 - g++-8.0.1, clang-4.0 - clang-7}
  • Linux - {Intel Core i7-6700, AMD Ryzen 5 PRO 2400G} - {g++-5.4.0 - g+- +-9.1.0,
  • clang-6.0 - clang-8}
  • Linux - Intel Core2 Quad - g++-8.1.1
  • Linux - Intel XeonE5-2670 - g++-4.8.4
  • Linux - Intel Core i7-3520M - {g++-8.3.0, clang-6.0 - clang-7, - icc-19.0.4.243}
  • Windows 10 on Google Cloud - Intel Haswell - {MSVC2019 x86 release build,
  • MSVC2019 x64 release build}
  • MacOS - Intel Core i7-8750H - clang Apple LLVM 10.0.1
  • Linux - ARMv8 Cavium ThunderX2 T99 - g++-7.3.0
  • Linux - PowerPC POWER9 Boston 2.2 - g++-8.3.0