#include <stdint.h>
Go to the source code of this file.
Defines | |
#define | FPU_RM_MASK 0x03 |
Mask value for rounding mode. | |
#define | FPU_FLAGS_POS 2 |
Bit position of the flag bits. | |
#define | FPU_ENABLE_POS 7 |
Bit position of the enable bits. | |
#define | FPU_CAUSE_POS 12 |
Bit position of the cause bits. | |
#define | FPU_CC0_POS 23 |
Bit position of the cc0 bit. | |
#define | FPU_FS_POS 24 |
Bit position of the fs bit. | |
#define | FPU_CC17_POS 25 |
Bit position of the cc1->7 bits. | |
#define | FPU_FLAGS_MASK (0x1F << FPU_FLAGS_POS) |
#define | FPU_ENABLE_MASK (0x1F << FPU_ENABLE_POS) |
#define | FPU_CAUSE_MASK (0x3F << FPU_CAUSE_POS) |
#define | FPU_CC0_MASK (1 << FPU_CC0_POS) |
#define | FPU_FS_MASK (1 << FPU_FS_POS) |
#define | FPU_CC17_MASK (0x7F << FPU_CC17_POS) |
Enumerations | |
enum | FpuRoundMode { FPU_RN = 0, FPU_RZ = 1, FPU_RP = 2, FPU_RM = 3 } |
Enumeration for FPU rounding modes. More... | |
enum | FpuExceptions { FPU_EXCEPTION_INEXACT = 0x01, FPU_EXCEPTION_UNDERFLOW = 0x02, FPU_EXCEPTION_OVERFLOW = 0x04, FPU_EXCEPTION_DIVBYZERO = 0x08, FPU_EXCEPTION_INVALIDOP = 0x10, FPU_EXCEPTION_UNIMPOP = 0x20, FPU_EXCEPTION_ALL = 0x3F } |
Enumeration for FPU exceptions. More... | |
Functions | |
uint32_t | pspfpu_get_fcr31 (void) |
Get the current value of the control/status register. | |
void | pspfpu_set_fcr31 (uint32_t var) |
Set the current value of the control/status register. | |
void | pspfpu_set_roundmode (enum FpuRoundMode mode) |
Set the current round mode. | |
enum FpuRoundMode | pspfpu_get_roundmode (void) |
Get the current round mode. | |
uint32_t | pspfpu_get_flags (void) |
Get the exception flags (set when an exception occurs but the actual exception bit is not enabled). | |
void | pspfpu_clear_flags (uint32_t clear) |
Clear the flags bits. | |
uint32_t | pspfpu_get_enable (void) |
Get the exception enable flags. | |
void | pspfpu_set_enable (uint32_t enable) |
Set the enable flags bits. | |
uint32_t | pspfpu_get_cause (void) |
Get the cause bits (only useful if you installed your own exception handler). | |
void | pspfpu_clear_cause (uint32_t clear) |
Clear the cause bits. | |
uint32_t | pspfpu_get_fs (void) |
Get the current value of the FS bit (if FS is 0 then an exception occurs with denormalized values, if 1 then they are rewritten as 0. | |
void | pspfpu_set_fs (uint32_t fs) |
Set the FS bit. | |
uint32_t | pspfpu_get_condbits (void) |
Get the condition flags (8 bits). | |
void | pspfpu_clear_condbits (uint32_t clear) |
Clear the condition bits. |
#define FPU_CAUSE_MASK (0x3F << FPU_CAUSE_POS) |
#define FPU_CAUSE_POS 12 |
Bit position of the cause bits.
#define FPU_CC0_MASK (1 << FPU_CC0_POS) |
#define FPU_CC0_POS 23 |
Bit position of the cc0 bit.
#define FPU_CC17_MASK (0x7F << FPU_CC17_POS) |
#define FPU_CC17_POS 25 |
Bit position of the cc1->7 bits.
#define FPU_ENABLE_MASK (0x1F << FPU_ENABLE_POS) |
#define FPU_ENABLE_POS 7 |
Bit position of the enable bits.
#define FPU_FLAGS_MASK (0x1F << FPU_FLAGS_POS) |
#define FPU_FLAGS_POS 2 |
Bit position of the flag bits.
#define FPU_FS_MASK (1 << FPU_FS_POS) |
#define FPU_FS_POS 24 |
Bit position of the fs bit.
#define FPU_RM_MASK 0x03 |
Mask value for rounding mode.
enum FpuExceptions |
Enumeration for FPU exceptions.
enum FpuRoundMode |
void pspfpu_clear_cause | ( | uint32_t | clear | ) |
Clear the cause bits.
clear | - Bitmask of the bits to clear, one or more of FpuExceptions |
void pspfpu_clear_condbits | ( | uint32_t | clear | ) |
Clear the condition bits.
clear | - Bitmask of the bits to clear |
void pspfpu_clear_flags | ( | uint32_t | clear | ) |
Clear the flags bits.
clear | - Bitmask of the bits to clear, one or more of FpuExceptions |
uint32_t pspfpu_get_cause | ( | void | ) |
Get the cause bits (only useful if you installed your own exception handler).
uint32_t pspfpu_get_condbits | ( | void | ) |
Get the condition flags (8 bits).
uint32_t pspfpu_get_enable | ( | void | ) |
uint32_t pspfpu_get_fcr31 | ( | void | ) |
Get the current value of the control/status register.
uint32_t pspfpu_get_flags | ( | void | ) |
Get the exception flags (set when an exception occurs but the actual exception bit is not enabled).
uint32_t pspfpu_get_fs | ( | void | ) |
Get the current value of the FS bit (if FS is 0 then an exception occurs with denormalized values, if 1 then they are rewritten as 0.
enum FpuRoundMode pspfpu_get_roundmode | ( | void | ) |
void pspfpu_set_enable | ( | uint32_t | enable | ) |
Set the enable flags bits.
enable | - Bitmask of exceptions to enable, zero or more of FpuExceptions |
void pspfpu_set_fcr31 | ( | uint32_t | var | ) |
Set the current value of the control/status register.
var | - The value to set. |
void pspfpu_set_fs | ( | uint32_t | fs | ) |
Set the FS bit.
fs | - 0 or 1 to unset or set fs |
void pspfpu_set_roundmode | ( | enum FpuRoundMode | mode | ) |