diff options
| author | Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> | 2014-10-27 07:37:47 -0400 |
|---|---|---|
| committer | Markos Chandras <markos.chandras@imgtec.com> | 2015-02-17 10:37:17 -0500 |
| commit | 6a0e9865b9003ba2bb1c3135dd99185946fa7159 (patch) | |
| tree | 76a99e8af76498ac13dd6df361263358b29fe4b0 /arch/mips/include/asm/stackframe.h | |
| parent | b840a82c549d4126b5c4958673de3f472206e23e (diff) | |
MIPS: asm: stackframe: Do not preserve the HI/LO registers on MIPS R6
The HI/LO registers have been removed from MIPS R6. Instructions
such as MULT and DIV have been replaced with a new pair of
instructions for the HI/LO operations for example:
MULT -> MUL, MUH
DIV -> DIV, MOD
So we avoid preserving the pre-R6 HI/LO registers in MIPS R6
Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Diffstat (limited to 'arch/mips/include/asm/stackframe.h')
| -rw-r--r-- | arch/mips/include/asm/stackframe.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h index b188c797565c..28d6d9364bd1 100644 --- a/arch/mips/include/asm/stackframe.h +++ b/arch/mips/include/asm/stackframe.h | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | LONG_S v1, PT_HI(sp) | 40 | LONG_S v1, PT_HI(sp) |
| 41 | mflhxu v1 | 41 | mflhxu v1 |
| 42 | LONG_S v1, PT_ACX(sp) | 42 | LONG_S v1, PT_ACX(sp) |
| 43 | #else | 43 | #elif !defined(CONFIG_CPU_MIPSR6) |
| 44 | mfhi v1 | 44 | mfhi v1 |
| 45 | #endif | 45 | #endif |
| 46 | #ifdef CONFIG_32BIT | 46 | #ifdef CONFIG_32BIT |
| @@ -50,7 +50,7 @@ | |||
| 50 | LONG_S $10, PT_R10(sp) | 50 | LONG_S $10, PT_R10(sp) |
| 51 | LONG_S $11, PT_R11(sp) | 51 | LONG_S $11, PT_R11(sp) |
| 52 | LONG_S $12, PT_R12(sp) | 52 | LONG_S $12, PT_R12(sp) |
| 53 | #ifndef CONFIG_CPU_HAS_SMARTMIPS | 53 | #if !defined(CONFIG_CPU_HAS_SMARTMIPS) && !defined(CONFIG_CPU_MIPSR6) |
| 54 | LONG_S v1, PT_HI(sp) | 54 | LONG_S v1, PT_HI(sp) |
| 55 | mflo v1 | 55 | mflo v1 |
| 56 | #endif | 56 | #endif |
| @@ -58,7 +58,7 @@ | |||
| 58 | LONG_S $14, PT_R14(sp) | 58 | LONG_S $14, PT_R14(sp) |
| 59 | LONG_S $15, PT_R15(sp) | 59 | LONG_S $15, PT_R15(sp) |
| 60 | LONG_S $24, PT_R24(sp) | 60 | LONG_S $24, PT_R24(sp) |
| 61 | #ifndef CONFIG_CPU_HAS_SMARTMIPS | 61 | #if !defined(CONFIG_CPU_HAS_SMARTMIPS) && !defined(CONFIG_CPU_MIPSR6) |
| 62 | LONG_S v1, PT_LO(sp) | 62 | LONG_S v1, PT_LO(sp) |
| 63 | #endif | 63 | #endif |
| 64 | #ifdef CONFIG_CPU_CAVIUM_OCTEON | 64 | #ifdef CONFIG_CPU_CAVIUM_OCTEON |
| @@ -226,7 +226,7 @@ | |||
| 226 | mtlhx $24 | 226 | mtlhx $24 |
| 227 | LONG_L $24, PT_LO(sp) | 227 | LONG_L $24, PT_LO(sp) |
| 228 | mtlhx $24 | 228 | mtlhx $24 |
| 229 | #else | 229 | #elif !defined(CONFIG_CPU_MIPSR6) |
| 230 | LONG_L $24, PT_LO(sp) | 230 | LONG_L $24, PT_LO(sp) |
| 231 | mtlo $24 | 231 | mtlo $24 |
| 232 | LONG_L $24, PT_HI(sp) | 232 | LONG_L $24, PT_HI(sp) |
