mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
206 lines
2.6 KiB
C
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 ();
|
|
}
|