This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Puzzle about macro MIPS_PROLOGUE_TEMP_REGNUM
- From: "Amker.Cheng" <amker dot cheng at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 4 Jun 2010 17:56:16 +0800
- Subject: Puzzle about macro MIPS_PROLOGUE_TEMP_REGNUM
Hi :
I found the temp register used for saving registers when expanding
prologue is defined by
macro MIPS_PROLOGUE_TEMP_REGNUM on mips target, like:
#define MIPS_PROLOGUE_TEMP_REGNUM \
(cfun->machine->interrupt_handler_p ? K0_REG_NUM : GP_REG_FIRST + 3)
I don't understand why using registers starting from $3?
in my application, I have to save DFmode fpu regs through gpr regs,
that is $3,$4 in this case,
just like :
mfc1 $3, $fpr
sw $3, addr
mfc1 $4, $fpr+1
sw $4, addr+4
apparently this would crush the argument in $4.
Here is question,
why don't use $8 for MIPS_PROLOGUE_TEMP_REGNUM like EPILOGUE_TEMP?
Or have I done something wrong?
So, any clarification? Thanks in advance.
--
Best Regards.