linux/arch/mips
James Hogan 0dfa1c12f3 MIPS: Add inline asm encoding helpers
To allow simplification of macros which use inline assembly to
explicitly encode instructions, add a few simple abstractions to
mipsregs.h which expand to specific microMIPS or normal MIPS encodings
depending on what type of kernel is being built:

_ASM_INSN_IF_MIPS(_enc) : Emit a 32bit MIPS instruction if microMIPS is
                          not enabled.
_ASM_INSN32_IF_MM(_enc) : Emit a 32bit microMIPS instruction if enabled.
_ASM_INSN16_IF_MM(_enc) : Emit a 16bit microMIPS instruction if enabled.

The macros can be used one after another since the MIPS / microMIPS
macros are mutually exclusive, for example:

__asm__ __volatile__(
        ".set push\n\t"
        ".set noat\n\t"
        "# mfgc0 $1, $%1, %2\n\t"
        _ASM_INSN_IF_MIPS(0x40610000 | %1 << 11 | %2)
        _ASM_INSN32_IF_MM(0x002004fc | %1 << 16 | %2 << 11)
        "move %0, $1\n\t"
        ".set pop"
        : "=r" (__res)
        : "i" (source), "i" (sel));

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13310/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2016-05-28 12:35:09 +02:00
..
alchemy MIPS: alchemy: Remove CLK_IS_ROOT 2016-05-13 15:30:25 +02:00
ar7
ath25
ath79 MIPS: ath79: fix regression in PCI window initialization 2016-05-17 11:13:28 +02:00
bcm47xx MIPS: BCM47xx: Move SPROM driver to drivers/firmware/ 2016-05-13 14:01:43 +02:00
bcm63xx
bmips MIPS: BMIPS: Add support for BCM63268 2016-05-13 14:02:09 +02:00
boot MIPS: JZ4740: Probe OHCI platform device via DT 2016-05-13 19:09:24 +02:00
cavium-octeon MIPS: Octeon: Mark some functions __init in smp.c 2016-05-13 14:02:10 +02:00
cobalt
configs MIPS: BMIPS: Enable partition parser in defconfig 2016-05-13 14:02:06 +02:00
dec MIPS: DEC: Export `ioasic_ssr_lock' to modules 2016-05-17 11:03:54 +02:00
emma
fw
include MIPS: Add inline asm encoding helpers 2016-05-28 12:35:09 +02:00
jazz
jz4740 MIPS: JZ4740: Probe OHCI platform device via DT 2016-05-13 19:09:24 +02:00
kernel MIPS: Spelling fix lets -> let's 2016-05-28 12:35:09 +02:00
kvm MIPS: Define & use CP0_EBase bit definitions 2016-05-13 15:30:25 +02:00
lantiq MIPS: Change my email address 2016-05-13 14:02:18 +02:00
lasat MIPS: Lasat: A couple off by one bugs in picvue_proc.c 2016-05-28 12:35:06 +02:00
lib MIPS: lib: Fix typo 2016-05-28 12:35:08 +02:00
loongson32 MIPS: Loongson1B: Some updates/fixes for LS1B 2016-05-13 14:02:05 +02:00
loongson64 MIPS: Loongson64: Fix typo 2016-05-28 12:35:07 +02:00
math-emu MIPS: math-emu: Fix typo 2016-05-28 12:35:09 +02:00
mm MIPS: mm: Panic if an XPA kernel is run without RIXI 2016-05-13 15:30:25 +02:00
mti-malta MIPS: malta-time: Take seconds into account 2016-05-13 15:30:25 +02:00
mti-sead3 MIPS: Introduce plat_get_fdt a platform API to retrieve the FDT 2016-05-13 14:02:03 +02:00
net
netlogic MIPS: Define & use CP0_EBase bit definitions 2016-05-13 15:30:25 +02:00
oprofile MIPS: oprofile: Fix typo 2016-05-28 12:35:09 +02:00
paravirt
pci MIPS: IP27: Fix typo 2016-05-28 12:35:07 +02:00
pic32 MIPS: pic32mzda: fix getting timer clock rate. 2016-05-17 11:22:51 +02:00
pistachio MIPS: pistachio: Determine SoC revision during boot 2016-05-13 17:47:47 +02:00
pmcs-msp71xx MIPS: MSP71xx: Use __flush_cache_all instead of flush_cache_all. 2016-05-13 14:01:38 +02:00
pnx833x MIPS: make PCI_DMA_BUS_IS_PHYS=1 constant 2016-05-13 14:02:17 +02:00
power
ralink MIPS: ralink: add MT7628 EPHY LEDs pinmux support 2016-05-28 12:35:05 +02:00
rb532
sgi-ip22
sgi-ip27 MIPS: Spelling fix lets -> let's 2016-05-28 12:35:09 +02:00
sgi-ip32
sibyte MIPS: Sibyte: Fix Kconfig dependencies of SIBYTE_BUS_WATCHER 2016-05-09 12:00:03 +02:00
sni MIPS: Spelling fix lets -> let's 2016-05-28 12:35:09 +02:00
txx9
vdso MIPS: Fix genvdso error on rebuild 2016-05-13 22:47:39 +02:00
vr41xx MIPS: VR41xx: Fix typo 2016-05-28 12:35:09 +02:00
xilfpga
Kbuild
Kbuild.platforms
Kconfig MIPS: BMIPS: BMIPS4380 and BMIPS5000 support RIXI 2016-05-13 15:30:25 +02:00
Kconfig.debug
Makefile MIPS: Fix VZ probe gas errors with binutils <2.24 2016-05-17 11:06:04 +02:00