@web-font-path: "roboto-debian.css";
Loading...
Searching...
No Matches
divider.h File Reference
#include "pico.h"
Include dependency graph for divider.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PICO_EMULATE_DIVIDER   1

Typedefs

typedef uint64_t divmod_result_t
typedef uint64_t hw_divider_state_t

Functions

static int __sign_of (int32_t v)
static divmod_result_t hw_divider_divmod_s32 (int32_t a, int32_t b)
 Do a signed HW divide and wait for result.
static divmod_result_t hw_divider_divmod_u32 (uint32_t a, uint32_t b)
 Do an unsigned HW divide and wait for result.
static void hw_divider_divmod_s32_start (int32_t a, int32_t b)
 Start a signed asynchronous divide.
static void hw_divider_divmod_u32_start (uint32_t a, uint32_t b)
 Start an unsigned asynchronous divide.
static void hw_divider_wait_ready (void)
 Wait for a divide to complete.
static divmod_result_t hw_divider_result_nowait (void)
 Return result of HW divide, nowait.
static divmod_result_t hw_divider_result_wait (void)
 Return result of last asynchronous HW divide.
static uint32_t to_quotient_u32 (divmod_result_t r)
 Efficient extraction of unsigned quotient from 32p32 fixed point.
static int32_t to_quotient_s32 (divmod_result_t r)
 Efficient extraction of signed quotient from 32p32 fixed point.
static uint32_t to_remainder_u32 (divmod_result_t r)
 Efficient extraction of unsigned remainder from 32p32 fixed point.
static int32_t to_remainder_s32 (divmod_result_t r)
 Efficient extraction of signed remainder from 32p32 fixed point.
static uint32_t hw_divider_u32_quotient_wait (void)
 Return result of last asynchronous HW divide, unsigned quotient only.
static int32_t hw_divider_s32_quotient_wait (void)
 Return result of last asynchronous HW divide, signed quotient only.
static uint32_t hw_divider_u32_remainder_wait (void)
 Return result of last asynchronous HW divide, unsigned remainder only.
static int32_t hw_divider_s32_remainder_wait (void)
 Return result of last asynchronous HW divide, signed remainder only.
static uint32_t hw_divider_u32_quotient (uint32_t a, uint32_t b)
 Do an unsigned HW divide, wait for result, return quotient.
static uint32_t hw_divider_u32_remainder (uint32_t a, uint32_t b)
 Do an unsigned HW divide, wait for result, return remainder.
static int32_t hw_divider_quotient_s32 (int32_t a, int32_t b)
 Do a signed HW divide, wait for result, return quotient.
static int32_t hw_divider_remainder_s32 (int32_t a, int32_t b)
 Do a signed HW divide, wait for result, return remainder.
static void hw_divider_pause (void)
 Pause for exact amount of time needed for a asynchronous divide to complete.
static uint32_t hw_divider_u32_quotient_inlined (uint32_t a, uint32_t b)
 Do a hardware unsigned HW divide, wait for result, return quotient.
static uint32_t hw_divider_u32_remainder_inlined (uint32_t a, uint32_t b)
 Do a hardware unsigned HW divide, wait for result, return remainder.
static int32_t hw_divider_s32_quotient_inlined (int32_t a, int32_t b)
 Do a hardware signed HW divide, wait for result, return quotient.
static int32_t hw_divider_s32_remainder_inlined (int32_t a, int32_t b)
 Do a hardware signed HW divide, wait for result, return remainder.
static void hw_divider_save_state (hw_divider_state_t *dest)
 Save the calling cores hardware divider state.
static void hw_divider_restore_state (hw_divider_state_t *src)
 Load a saved hardware divider state into the current core's hardware divider.

Variables

divmod_result_t hw_divider_results [NUM_CORES]