MIPS: Override assembler target architecture for octeon.
Gas from binutils 2.19 fails to compile some cop1 instructions with -march=octeon. Since the cop1 instructions are present in mips1, use that arch instead. This will be fixed in binutils 2.20. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
ed918c2daf
Коммит
25c3000300
|
@ -1028,6 +1028,8 @@ do { \
|
||||||
__asm__ __volatile__( \
|
__asm__ __volatile__( \
|
||||||
".set\tpush\n\t" \
|
".set\tpush\n\t" \
|
||||||
".set\treorder\n\t" \
|
".set\treorder\n\t" \
|
||||||
|
/* gas fails to assemble cfc1 for some archs (octeon).*/ \
|
||||||
|
".set\tmips1\n\t" \
|
||||||
"cfc1\t%0,"STR(source)"\n\t" \
|
"cfc1\t%0,"STR(source)"\n\t" \
|
||||||
".set\tpop" \
|
".set\tpop" \
|
||||||
: "=r" (__res)); \
|
: "=r" (__res)); \
|
||||||
|
|
|
@ -385,10 +385,14 @@ NESTED(nmi_handler, PT_SIZE, sp)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro __build_clear_fpe
|
.macro __build_clear_fpe
|
||||||
|
.set push
|
||||||
|
/* gas fails to assemble cfc1 for some archs (octeon).*/ \
|
||||||
|
.set mips1
|
||||||
cfc1 a1, fcr31
|
cfc1 a1, fcr31
|
||||||
li a2, ~(0x3f << 12)
|
li a2, ~(0x3f << 12)
|
||||||
and a2, a1
|
and a2, a1
|
||||||
ctc1 a2, fcr31
|
ctc1 a2, fcr31
|
||||||
|
.set pop
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON
|
||||||
STI
|
STI
|
||||||
.endm
|
.endm
|
||||||
|
|
Загрузка…
Ссылка в новой задаче