OPAL_SLW_SET_REG
==============================
::

    int64_t opal_slw_set_reg(uint64_t cpu_pir, uint64_t sprn, uint64_t val)


OPAL_SLW_SET_REG is used to inform low-level firmware to restore a
given value of SPR when there is a state loss.  The actual set of SPR
that is supported is platform dependent.


In Power 8, it uses p8_pore_gen_cpufreq_fixed(), api provided by pore engine,
to inform the spr with their corresponding values with which they
must be restored.


In Power 9, it uses p9_stop_save_cpureg(), api provided by self restore code,
to inform the spr with their corresponding values with which they
must be restored.


Parameters
----------

``uint64_t cpu_pir``
This parameter specifies the pir of the cpu for which the call is being made.

``uint64_t sprn``
This parameter specifies the spr number as mentioned in p9_stop_api.H for
Power9 and p8_pore_table_gen_api.H for Power8.

``uint64_t val``
This parameter specifices value with which the spr should be restored.

Returns
-------

``OPAL_INTERNAL_ERROR``
On failure. The actual error code from the platform specific code is logged in the OPAL logs

``OPAL_UNSUPPORTED``
In power8 only, if spr restore is not supported by pore engine.

``OPAL_SUCCESS``
On success
