summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2017-03-12 08:25:25 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-12 08:25:25 +0000
commit982f933a98bbbc1f80cbc6915736ba78331c5a0a (patch)
treeade1866c10be9376defce5708a6f196589a534fe
parent70d964e55e47b9182b9d3d8eec9df2a592cb6c1a (diff)
parent1d316060cad53a5b62e2a3d722b3946e271658b4 (diff)
MIPS: IP22: Fix build error due to binutils 2.25 uselessnes.
am: 1d316060ca Change-Id: Ic33bab057aa50274c447fcf81b62f0364432a095
-rw-r--r--arch/mips/mm/sc-ip22.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/mips/mm/sc-ip22.c b/arch/mips/mm/sc-ip22.c
index 203e4661bc81..efaf364fe581 100644
--- a/arch/mips/mm/sc-ip22.c
+++ b/arch/mips/mm/sc-ip22.c
@@ -39,7 +39,18 @@ static inline void indy_sc_wipe(unsigned long first, unsigned long last)
" li $1, 0x80 # Go 64 bit \n"
" mtc0 $1, $12 \n"
" \n"
- " dli $1, 0x9000000080000000 \n"
+ " # \n"
+ " # Open code a dli $1, 0x9000000080000000 \n"
+ " # \n"
+ " # Required because binutils 2.25 will happily accept \n"
+ " # 64 bit instructions in .set mips3 mode but puke on \n"
+ " # 64 bit constants when generating 32 bit ELF \n"
+ " # \n"
+ " lui $1,0x9000 \n"
+ " dsll $1,$1,0x10 \n"
+ " ori $1,$1,0x8000 \n"
+ " dsll $1,$1,0x10 \n"
+ " \n"
" or %0, $1 # first line to flush \n"
" or %1, $1 # last line to flush \n"
" .set at \n"