libutils: import speculation_barrier.h
libutils: import speculation_barrier.h

Import speculation_barrier.h from [1]. This file implements a set of
wrapper macros for the __builtin_load_no_speculate builtin function
detailed at [2]. This builtin function defines a speculation barrier,
which can be used to limit the conditions under which a value which has
been loaded can be used under specualtive execution.

The header file provided here allows a migration path to using the
builtin function for users who are unable to immediately upgrade to a
compiler which supports the builtin.

(Description taken from the README.md file of the speculation_barrier
project by Arm on GitHub [3])

Link: [1] https://raw.githubusercontent.com/ARM-software/speculation-barrier/80e65cd830b321ff676941c2fab773da450e6dae/speculation_barrier.h
Link: [2] https://www.arm.com/security-update
Link: [3] https://github.com/ARM-software/speculation-barrier
Signed-off-by: Jerome Forissier <ced78d268b4c9a0a20a59a9feeebd2ad90da03d3@linaro.org>
Reviewed-by: Jens Wiklander <7706914404370d7502c27a0eff493dcf491feb51@linaro.org>
Acked-by: Joakim Bech <741f90e2a7f4d9afbad8bd50be20560f4cf38962@linaro.org>

pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os