pspsdk-1.0+beta2
pspfpu.c File Reference
#include "pspfpu.h"
Include dependency graph for pspfpu.c:

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.

Function Documentation

void pspfpu_clear_cause ( uint32_t  clear)

Clear the cause bits.

Parameters
clear- Bitmask of the bits to clear, one or more of FpuExceptions

References FPU_CAUSE_POS, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.

void pspfpu_clear_condbits ( uint32_t  clear)

Clear the condition bits.

Parameters
clear- Bitmask of the bits to clear

References FPU_CC0_POS, FPU_CC17_POS, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.

void pspfpu_clear_flags ( uint32_t  clear)

Clear the flags bits.

Parameters
clear- Bitmask of the bits to clear, one or more of FpuExceptions

References FPU_FLAGS_POS, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.

uint32_t pspfpu_get_cause ( void  )

Get the cause bits (only useful if you installed your own exception handler)

Returns
Bitmask of flags, zero or more of FpuExceptions

References FPU_CAUSE_MASK, FPU_CAUSE_POS, pspfpu_get_fcr31(), and uint32_t.

uint32_t pspfpu_get_condbits ( void  )

Get the condition flags (8 bits)

Returns
The current condition flags

References FPU_CC0_MASK, FPU_CC0_POS, FPU_CC17_MASK, FPU_CC17_POS, pspfpu_get_fcr31(), and uint32_t.

uint32_t pspfpu_get_enable ( void  )

Get the exception enable flags.

Returns
Bitmask of the flags, zero or more of FpuExceptions

References FPU_ENABLE_MASK, FPU_ENABLE_POS, pspfpu_get_fcr31(), and uint32_t.

uint32_t pspfpu_get_fcr31 ( void  )
uint32_t pspfpu_get_flags ( void  )

Get the exception flags (set when an exception occurs but the actual exception bit is not enabled)

Returns
Bitmask of the flags, zero or more of FpuExceptions

References FPU_FLAGS_MASK, FPU_FLAGS_POS, pspfpu_get_fcr31(), and uint32_t.

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.

Returns
The current state of the FS bit (0 or 1)

References FPU_FS_MASK, FPU_FS_POS, pspfpu_get_fcr31(), and uint32_t.

enum FpuRoundMode pspfpu_get_roundmode ( void  )

Get the current round mode.

Returns
The round mode, one of FpuRoundMode

References FPU_RM_MASK, and pspfpu_get_fcr31().

void pspfpu_set_enable ( uint32_t  enable)

Set the enable flags bits.

Parameters
enable- Bitmask of exceptions to enable, zero or more of FpuExceptions

References FPU_ENABLE_MASK, FPU_ENABLE_POS, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.

void pspfpu_set_fcr31 ( uint32_t  var)

Set the current value of the control/status register.

Parameters
var- The value to set.

Referenced by pspfpu_clear_cause(), pspfpu_clear_condbits(), pspfpu_clear_flags(), pspfpu_set_enable(), pspfpu_set_fs(), and pspfpu_set_roundmode().

void pspfpu_set_fs ( uint32_t  fs)

Set the FS bit.

Parameters
fs- 0 or 1 to unset or set fs

References FPU_FS_MASK, FPU_FS_POS, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.

void pspfpu_set_roundmode ( enum FpuRoundMode  mode)

Set the current round mode.

Parameters
mode- The rounding mode to set, one of FpuRoundMode

References FPU_RM_MASK, pspfpu_get_fcr31(), pspfpu_set_fcr31(), and uint32_t.