summaryrefslogtreecommitdiffstats
path: root/arch/mips/pci/ops-emma2rh.c
diff options
context:
space:
mode:
authorYousong Zhou <yszhou4tech@gmail.com>2015-09-03 17:47:45 +0800
committerRalf Baechle <ralf@linux-mips.org>2015-09-03 12:11:56 +0200
commite0d8b2ec532852d4b5aabcec3e7611848c32237d (patch)
treeb401fa07fcb10a1c3523ef74d5acab8659daf6c0 /arch/mips/pci/ops-emma2rh.c
parent1cfa8de2880e5512f9037c7804ea47a79cc8232c (diff)
downloadop-kernel-dev-e0d8b2ec532852d4b5aabcec3e7611848c32237d.zip
op-kernel-dev-e0d8b2ec532852d4b5aabcec3e7611848c32237d.tar.gz
MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16.
The nomips16 has to be added both as function attribute and assembler directive. When only function attribute is specified, the compiler will inline the function with -Os optimization. The generated assembly code cannot be correctly assembled because ISA mode switch has to be done through jump instruction. When only ".set nomips16" directive is used, the generated assembly code will use MIPS32 code for the inline assembly template and MIPS16 for the function return. The compiled binary is invalid: 00403100 <__arch_swab16>: 403100: 7c0410a0 wsbh v0,a0 403104: e820ea31 swc2 $0,-5583(at) while correct code should be: 00402650 <__arch_swab16>: 402650: 7c0410a0 wsbh v0,a0 402654: 03e00008 jr ra 402658: 3042ffff andi v0,v0,0xffff Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Cc: Chen Jie <chenj@lemote.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11087/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/pci/ops-emma2rh.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud