pspfpu.h File Reference

#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 Documentation

#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.


Enumeration Type Documentation

enum FpuExceptions

Enumeration for FPU exceptions.

Enumerator:
FPU_EXCEPTION_INEXACT  Inexact operation exception.
FPU_EXCEPTION_UNDERFLOW  Underflow exception.
FPU_EXCEPTION_OVERFLOW  Overflow exception.
FPU_EXCEPTION_DIVBYZERO  Division by zero exception.
FPU_EXCEPTION_INVALIDOP  Invalid operation exception.
FPU_EXCEPTION_UNIMPOP  Unimplemented operation exception (only supported in the cause bits).
FPU_EXCEPTION_ALL  All exceptions.

enum FpuRoundMode

Enumeration for FPU rounding modes.

Enumerator:
FPU_RN  Round to nearest representable value.
FPU_RZ  Round towards zero.
FPU_RP  Round towards plus infinity.
FPU_RM  Round towards minus infinity.


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

void pspfpu_clear_condbits ( uint32_t  clear  ) 

Clear the condition bits.

Parameters:
clear - Bitmask of the bits to clear

void pspfpu_clear_flags ( uint32_t  clear  ) 

Clear the flags bits.

Parameters:
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).

Returns:
Bitmask of flags, zero or more of FpuExceptions

uint32_t pspfpu_get_condbits ( void   ) 

Get the condition flags (8 bits).

Returns:
The current condition flags

uint32_t pspfpu_get_enable ( void   ) 

Get the exception enable flags.

Returns:
Bitmask of the flags, zero or more of FpuExceptions

uint32_t pspfpu_get_fcr31 ( void   ) 

Get the current value of the control/status register.

Returns:
The 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).

Returns:
Bitmask of the flags, zero or more of FpuExceptions

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)

enum FpuRoundMode pspfpu_get_roundmode ( void   ) 

Get the current round mode.

Returns:
The round mode, one of FpuRoundMode

void pspfpu_set_enable ( uint32_t  enable  ) 

Set the enable flags bits.

Parameters:
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.

Parameters:
var - The value to set.

void pspfpu_set_fs ( uint32_t  fs  ) 

Set the FS bit.

Parameters:
fs - 0 or 1 to unset or set fs

void pspfpu_set_roundmode ( enum FpuRoundMode  mode  ) 

Set the current round mode.

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


Generated on Tue Jul 24 15:21:24 2007 for PSPSDK-Rev2272 by  doxygen 1.5.2