mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 17:01:28 +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);
|
||||
|
||||
#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
|
||||
static inline int32_t divscale(int32_t eax, int32_t ebx, int32_t ecx) { return dw(tabledivide64(qw(eax) << by(ecx), ebx)); }
|
||||
#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) \
|
||||
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)
|
||||
|
|
Loading…
Reference in a new issue