mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
Add divscale64()
git-svn-id: https://svn.eduke32.com/eduke32@7826 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
dc0130625a
commit
df28860bad
1 changed files with 3 additions and 1 deletions
|
@ -91,11 +91,13 @@ extern int32_t tabledivide32_noinline(int32_t n, int32_t d);
|
||||||
extern int64_t tabledivide64_noinline(int64_t n, int64_t d);
|
extern int64_t tabledivide64_noinline(int64_t n, int64_t d);
|
||||||
|
|
||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
static inline int32_t divscale(int32_t eax, int32_t ebx, int32_t ecx) { return tabledivide64(ldexp(eax, ecx), ebx); }
|
static inline int32_t divscale(int32_t eax, int32_t ebx, int32_t ecx) { return dw(tabledivide64(ldexp(eax, ecx), ebx)); }
|
||||||
#else
|
#else
|
||||||
static inline int32_t divscale(int32_t eax, int32_t ebx, int32_t ecx) { return dw(tabledivide64(qw(eax) << by(ecx), ebx)); }
|
static inline int32_t divscale(int32_t eax, int32_t ebx, int32_t ecx) { return dw(tabledivide64(qw(eax) << by(ecx), ebx)); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline int64_t divscale64(int64_t eax, int64_t ebx, int64_t ecx) { return tabledivide64(eax << ecx, ebx); }
|
||||||
|
|
||||||
#define EDUKE32_SCALER_PRAGMA(a) \
|
#define EDUKE32_SCALER_PRAGMA(a) \
|
||||||
static FORCE_INLINE int32_t divscale##a(int32_t eax, int32_t ebx) { return divscale(eax, ebx, a); }
|
static FORCE_INLINE int32_t divscale##a(int32_t eax, int32_t ebx) { return divscale(eax, ebx, a); }
|
||||||
EDUKE32_GENERATE_PRAGMAS EDUKE32_SCALER_PRAGMA(32)
|
EDUKE32_GENERATE_PRAGMAS EDUKE32_SCALER_PRAGMA(32)
|
||||||
|
|
Loading…
Reference in a new issue