1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/libguile/lightening/tests/regarrays.inc
2025-01-29 16:52:29 +01:00

206 lines
2.6 KiB
C

/* Arrays describing the available user registers. -*- mode: c -*- */
// #ifdef orgy factored out to common include file
static const jit_gpr_t rregs[] = {
JIT_R0,
JIT_R1,
JIT_R2,
#ifdef JIT_R3
JIT_R3,
#endif
#ifdef JIT_R4
JIT_R4,
#endif
#ifdef JIT_R5
JIT_R5,
#endif
#ifdef JIT_R6
JIT_R6,
#endif
#ifdef JIT_R7
JIT_R7,
#endif
#ifdef JIT_R8
JIT_R8,
#endif
#ifdef JIT_R9
JIT_R9,
#endif
#ifdef JIT_R10
JIT_R10,
#endif
#ifdef JIT_R11
JIT_R11,
#endif
#ifdef JIT_R12
JIT_R12,
#endif
#ifdef JIT_R13
JIT_R13,
#endif
#ifdef JIT_R14
JIT_R14,
#endif
#ifdef JIT_R15
JIT_R15,
#endif
#ifdef JIT_R16
JIT_R16,
#endif
};
static const jit_gpr_t vregs[] = {
JIT_V0, JIT_V1, JIT_V2,
#ifdef JIT_V3
JIT_V3,
#endif
#ifdef JIT_V4
JIT_V4,
#endif
#ifdef JIT_V5
JIT_V5,
#endif
#ifdef JIT_V6
JIT_V6,
#endif
#ifdef JIT_V7
JIT_V7,
#endif
#ifdef JIT_V8
JIT_V8,
#endif
#ifdef JIT_V9
JIT_V9,
#endif
#ifdef JIT_V10
JIT_V10,
#endif
#ifdef JIT_V11
JIT_V11,
#endif
#ifdef JIT_V12
JIT_V12,
#endif
#ifdef JIT_V13
JIT_V13,
#endif
#ifdef JIT_V14
JIT_V14,
#endif
#ifdef JIT_V15
JIT_V15,
#endif
#ifdef JIT_V16
JIT_V16,
#endif
};
static const jit_fpr_t fregs[] = {
JIT_F0, JIT_F1, JIT_F2,
JIT_F2, JIT_F3, JIT_F4,
#ifdef JIT_F7
JIT_F7,
#endif
#ifdef JIT_F8
JIT_F8,
#endif
#ifdef JIT_F9
JIT_F9,
#endif
#ifdef JIT_F10
JIT_F10,
#endif
#ifdef JIT_F11
JIT_F11,
#endif
#ifdef JIT_F12
JIT_F12,
#endif
#ifdef JIT_F13
JIT_F13,
#endif
#ifdef JIT_F14
JIT_F14,
#endif
#ifdef JIT_F15
JIT_F15,
#endif
#ifdef JIT_F16
JIT_F16,
#endif
};
static const jit_fpr_t vfregs[] = {
#ifdef JIT_VF0
JIT_VF0,
#endif
#ifdef JIT_VF1
JIT_VF1,
#endif
#ifdef JIT_VF2
JIT_VF2,
#endif
#ifdef JIT_VF2
JIT_VF2,
#endif
#ifdef JIT_VF3
JIT_VF3,
#endif
#ifdef JIT_VF4
JIT_VF4,
#endif
#ifdef JIT_VF5
JIT_VF5,
#endif
#ifdef JIT_VF6
JIT_VF6,
#endif
#ifdef JIT_VF7
JIT_VF7,
#endif
#ifdef JIT_VF8
JIT_VF8,
#endif
#ifdef JIT_VF9
JIT_VF9,
#endif
#ifdef JIT_VF10
JIT_VF10,
#endif
#ifdef JIT_VF11
JIT_VF11,
#endif
#ifdef JIT_VF12
JIT_VF12,
#endif
#ifdef JIT_VF13
JIT_VF13,
#endif
#ifdef JIT_VF14
JIT_VF14,
#endif
#ifdef JIT_VF15
JIT_VF15,
#endif
#ifdef JIT_VF16
JIT_VF16,
#endif
};
#define ARRAY_SIZE(X) (sizeof (X)/sizeof ((X)[0]))
static const size_t r_count = ARRAY_SIZE (rregs);
static const size_t v_count = ARRAY_SIZE (vregs);
static const size_t f_count = ARRAY_SIZE (fregs);
static const size_t vf_count = ARRAY_SIZE (vfregs);
static const size_t gpr_count = r_count + v_count;
static jit_gpr_t
gpr_ref (uintptr_t i)
{
if (i < r_count)
return rregs[i];
if (i < r_count + v_count)
return vregs[i - r_count];
abort ();
}