Skip to content
Snippets Groups Projects
Commit 45a8da1b authored by sof's avatar sof
Browse files

[project @ 1997-03-13 08:03:07 by sof]

PowerPC register maps mods (courtesy of Andre\')
parent e61549bd
No related merge requests found
......@@ -701,10 +701,21 @@ We can steal some, but we might have to save/restore around ccalls.
%* *
%************************************************************************
\tr{r14}--\tr{r31} are wonderful callee-save registers.
\tr{r0}--\tr{r13} are caller-save registers.
0 system glue? (caller-save, volatile)
1 SP (callee-save, non-volatile)
2 RTOC (callee-save, non-volatile)
3-10 args/return (caller-save, volatile)
11,12 system glue? (caller-save, volatile)
13-31 (callee-save, non-volatile)
\tr{%fr14}--\tr{%fr31} are callee-save floating-point registers.
f0 (caller-save, volatile)
f1-f13 args/return (caller-save, volatile)
f14-f31 (callee-save, non-volatile)
\tr{13}--\tr{31} are wonderful callee-save registers.
\tr{0}--\tr{12} are caller-save registers.
\tr{%f14}--\tr{%f31} are callee-save floating-point registers.
I think we can do the Whole Business with callee-save registers only!
......@@ -714,33 +725,33 @@ I think we can do the Whole Business with callee-save registers only!
#define REG(x) __asm__(#x)
#if defined(MARK_REG_MAP)
#define REG_Mark r14
#define REG_MStack r15
#define REG_MRoot r16
#define REG_BitArray r17
#define REG_HeapBase r18
#define REG_HeapLim r19
#define REG_Mark 22
#define REG_MStack 23
#define REG_MRoot 24
#define REG_BitArray 25
#define REG_HeapBase 26
#define REG_HeapLim 27
#else
#if defined(SCAN_REG_MAP)
#define REG_Scan r14
#define REG_New r15
#define REG_LinkLim r16
#define REG_Scan 22
#define REG_New 23
#define REG_LinkLim 24
#else
#if defined(SCAV_REG_MAP)
#define REG_Scav r14
#define REG_ToHp r15
#define REG_Scav 22
#define REG_ToHp 23
#if defined(GCap) || defined(GCgn)
#define REG_OldGen r16
#define REG_OldGen 24
#endif /* GCap || GCgn */
#else /* default: MAIN_REG_MAP */
/* callee saves */
#define CALLEE_SAVES_FltReg1
#define CALLEE_SAVES_FltReg2
#define CALLEE_SAVES_FltReg3
#define CALLEE_SAVES_FltReg4
#define CALLEE_SAVES_DblReg1
#define CALLEE_SAVES_DblReg2
/* #define CALLEE_SAVES_FltReg1 */
/* #define CALLEE_SAVES_FltReg2 */
/* #define CALLEE_SAVES_FltReg3 */
/* #define CALLEE_SAVES_FltReg4 */
/* #define CALLEE_SAVES_DblReg1 */
/* #define CALLEE_SAVES_DblReg2 */
#define CALLEE_SAVES_SpA
#define CALLEE_SAVES_SuA
#define CALLEE_SAVES_SpB
......@@ -759,34 +770,34 @@ I think we can do the Whole Business with callee-save registers only!
#define CALLEE_SAVES_R7
#define CALLEE_SAVES_R8
#define REG_R1 r14
#define REG_R2 r15
#define REG_R3 r16
#define REG_R4 r17
#define REG_R5 r18
#define REG_R6 r19
#define REG_R7 r20
#define REG_R8 r21
#define REG_R1 14
#define REG_R2 15
#define REG_R3 16
#define REG_R4 17
#define REG_R5 18
#define REG_R6 19
#define REG_R7 20
#define REG_R8 21
#define REG_Flt1 fr14
#define REG_Flt2 fr15
#define REG_Flt3 fr16
#define REG_Flt4 fr17
/* #define REG_Flt1 14 */
/* #define REG_Flt2 15 */
/* #define REG_Flt3 16 */
/* #define REG_Flt4 17 */
#define REG_Dbl1 fr18
#define REG_Dbl2 fr19
/* #define REG_Dbl1 18 */
/* #define REG_Dbl2 19 */
#define REG_SpA r22
#define REG_SuA r23
#define REG_SpB r24
#define REG_SuB r25
#define REG_SpA 22
#define REG_SuA 23
#define REG_SpB 24
#define REG_SuB 25
#define REG_Hp r26
#define REG_HpLim r27
#define REG_Hp 26
#define REG_HpLim 27
#define REG_Ret r28
#define REG_Ret 28
#define REG_StkStub r29
#define REG_StkStub 29
#endif /* SCAV_REG_MAP */
#endif /* SCAN_REG_MAP */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment