All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thiemo Seufer <ths@networkno.de>
To: linux-mips@linux-mips.org
Cc: ralf@linux-mips.org
Subject: (no subject)
Date: Tue, 22 Jan 2008 00:00:26 +0000	[thread overview]
Message-ID: <20080122000026.GN28842@networkno.de> (raw)

Hello All,

This patch moves the micro-assembler in a separate implementation, as
it is useful for further run-time optimizations. The only change in
behaviour is cutting down printk noise at kernel startup time.

Checkpatch complains about macro parameters which aren't protected by
parentheses. I believe this is a flaw in checkpatch, the paste operator
used in those macros won't work with parenthesised parameters.

Tested on:
- Qemu 32-bit little endian
- BCM1480 64-bit big endian


Thiemo


---
Split the micro-assembler from tlbex.c.

Signed-off-by:  Thiemo Seufer <ths@networkno.de>


diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile
index 32fd5db..c6f832e 100644
--- a/arch/mips/mm/Makefile
+++ b/arch/mips/mm/Makefile
@@ -3,7 +3,8 @@
 #
 
 obj-y				+= cache.o dma-default.o extable.o fault.o \
-				   init.o pgtable.o tlbex.o tlbex-fault.o
+				   init.o pgtable.o tlbex.o tlbex-fault.o \
+				   uasm.o
 
 obj-$(CONFIG_32BIT)		+= ioremap.o pgtable-32.o
 obj-$(CONFIG_64BIT)		+= pgtable-64.o
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index a61246d..48a2589 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -5,7 +5,7 @@
  *
  * Synthesize TLB refill handlers at runtime.
  *
- * Copyright (C) 2004,2005,2006 by Thiemo Seufer
+ * Copyright (C) 2004,2005,2006,2008  Thiemo Seufer
  * Copyright (C) 2005  Maciej W. Rozycki
  * Copyright (C) 2006  Ralf Baechle (ralf@linux-mips.org)
  *
@@ -19,8 +19,6 @@
  * (Condolences to Napoleon XIV)
  */
 
-#include <stdarg.h>
-
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
@@ -30,11 +28,11 @@
 #include <asm/pgtable.h>
 #include <asm/cacheflush.h>
 #include <asm/mmu_context.h>
-#include <asm/inst.h>
-#include <asm/elf.h>
 #include <asm/smp.h>
 #include <asm/war.h>
 
+#include "uasm.h"
+
 static inline int r45k_bvahwbug(void)
 {
 	/* XXX: We should probe for the presence of this bug, but we don't. */
@@ -72,371 +70,9 @@ static __init int __attribute__((unused)) m4kc_tlbp_war(void)
 	       (PRID_COMP_MIPS | PRID_IMP_4KC);
 }
 
-/*
- * A little micro-assembler, intended for TLB refill handler
- * synthesizing. It is intentionally kept simple, does only support
- * a subset of instructions, and does not try to hide pipeline effects
- * like branch delay slots.
- */
-
-enum fields
-{
-	RS = 0x001,
-	RT = 0x002,
-	RD = 0x004,
-	RE = 0x008,
-	SIMM = 0x010,
-	UIMM = 0x020,
-	BIMM = 0x040,
-	JIMM = 0x080,
-	FUNC = 0x100,
-	SET = 0x200
-};
-
-#define OP_MASK		0x3f
-#define OP_SH		26
-#define RS_MASK		0x1f
-#define RS_SH		21
-#define RT_MASK		0x1f
-#define RT_SH		16
-#define RD_MASK		0x1f
-#define RD_SH		11
-#define RE_MASK		0x1f
-#define RE_SH		6
-#define IMM_MASK	0xffff
-#define IMM_SH		0
-#define JIMM_MASK	0x3ffffff
-#define JIMM_SH		0
-#define FUNC_MASK	0x3f
-#define FUNC_SH		0
-#define SET_MASK	0x7
-#define SET_SH		0
-
-enum opcode {
-	insn_invalid,
-	insn_addu, insn_addiu, insn_and, insn_andi, insn_beq,
-	insn_beql, insn_bgez, insn_bgezl, insn_bltz, insn_bltzl,
-	insn_bne, insn_daddu, insn_daddiu, insn_dmfc0, insn_dmtc0,
-	insn_dsll, insn_dsll32, insn_dsra, insn_dsrl, insn_dsrl32,
-	insn_dsubu, insn_eret, insn_j, insn_jal, insn_jr, insn_ld,
-	insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0, insn_mtc0,
-	insn_ori, insn_rfe, insn_sc, insn_scd, insn_sd, insn_sll,
-	insn_sra, insn_srl, insn_subu, insn_sw, insn_tlbp, insn_tlbwi,
-	insn_tlbwr, insn_xor, insn_xori
-};
-
-struct insn {
-	enum opcode opcode;
-	u32 match;
-	enum fields fields;
-};
-
-/* This macro sets the non-variable bits of an instruction. */
-#define M(a, b, c, d, e, f)					\
-	((a) << OP_SH						\
-	 | (b) << RS_SH						\
-	 | (c) << RT_SH						\
-	 | (d) << RD_SH						\
-	 | (e) << RE_SH						\
-	 | (f) << FUNC_SH)
-
-static __initdata struct insn insn_table[] = {
-	{ insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
-	{ insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD },
-	{ insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD },
-	{ insn_andi, M(andi_op, 0, 0, 0, 0, 0), RS | RT | UIMM },
-	{ insn_beq, M(beq_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
-	{ insn_beql, M(beql_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
-	{ insn_bgez, M(bcond_op, 0, bgez_op, 0, 0, 0), RS | BIMM },
-	{ insn_bgezl, M(bcond_op, 0, bgezl_op, 0, 0, 0), RS | BIMM },
-	{ insn_bltz, M(bcond_op, 0, bltz_op, 0, 0, 0), RS | BIMM },
-	{ insn_bltzl, M(bcond_op, 0, bltzl_op, 0, 0, 0), RS | BIMM },
-	{ insn_bne, M(bne_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
-	{ insn_daddiu, M(daddiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
-	{ insn_daddu, M(spec_op, 0, 0, 0, 0, daddu_op), RS | RT | RD },
-	{ insn_dmfc0, M(cop0_op, dmfc_op, 0, 0, 0, 0), RT | RD | SET},
-	{ insn_dmtc0, M(cop0_op, dmtc_op, 0, 0, 0, 0), RT | RD | SET},
-	{ insn_dsll, M(spec_op, 0, 0, 0, 0, dsll_op), RT | RD | RE },
-	{ insn_dsll32, M(spec_op, 0, 0, 0, 0, dsll32_op), RT | RD | RE },
-	{ insn_dsra, M(spec_op, 0, 0, 0, 0, dsra_op), RT | RD | RE },
-	{ insn_dsrl, M(spec_op, 0, 0, 0, 0, dsrl_op), RT | RD | RE },
-	{ insn_dsrl32, M(spec_op, 0, 0, 0, 0, dsrl32_op), RT | RD | RE },
-	{ insn_dsubu, M(spec_op, 0, 0, 0, 0, dsubu_op), RS | RT | RD },
-	{ insn_eret,  M(cop0_op, cop_op, 0, 0, 0, eret_op),  0 },
-	{ insn_j,  M(j_op, 0, 0, 0, 0, 0),  JIMM },
-	{ insn_jal,  M(jal_op, 0, 0, 0, 0, 0),  JIMM },
-	{ insn_jr,  M(spec_op, 0, 0, 0, 0, jr_op),  RS },
-	{ insn_ld,  M(ld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_ll,  M(ll_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_lld,  M(lld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_lui,  M(lui_op, 0, 0, 0, 0, 0),  RT | SIMM },
-	{ insn_lw,  M(lw_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_mfc0,  M(cop0_op, mfc_op, 0, 0, 0, 0),  RT | RD | SET},
-	{ insn_mtc0,  M(cop0_op, mtc_op, 0, 0, 0, 0),  RT | RD | SET},
-	{ insn_ori,  M(ori_op, 0, 0, 0, 0, 0),  RS | RT | UIMM },
-	{ insn_rfe,  M(cop0_op, cop_op, 0, 0, 0, rfe_op),  0 },
-	{ insn_sc,  M(sc_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_scd,  M(scd_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_sd,  M(sd_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_sll,  M(spec_op, 0, 0, 0, 0, sll_op),  RT | RD | RE },
-	{ insn_sra,  M(spec_op, 0, 0, 0, 0, sra_op),  RT | RD | RE },
-	{ insn_srl,  M(spec_op, 0, 0, 0, 0, srl_op),  RT | RD | RE },
-	{ insn_subu,  M(spec_op, 0, 0, 0, 0, subu_op),  RS | RT | RD },
-	{ insn_sw,  M(sw_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
-	{ insn_tlbp,  M(cop0_op, cop_op, 0, 0, 0, tlbp_op),  0 },
-	{ insn_tlbwi,  M(cop0_op, cop_op, 0, 0, 0, tlbwi_op),  0 },
-	{ insn_tlbwr,  M(cop0_op, cop_op, 0, 0, 0, tlbwr_op),  0 },
-	{ insn_xor,  M(spec_op, 0, 0, 0, 0, xor_op),  RS | RT | RD },
-	{ insn_xori,  M(xori_op, 0, 0, 0, 0, 0),  RS | RT | UIMM },
-	{ insn_invalid, 0, 0 }
-};
-
-#undef M
-
-static __init u32 build_rs(u32 arg)
-{
-	if (arg & ~RS_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return (arg & RS_MASK) << RS_SH;
-}
-
-static __init u32 build_rt(u32 arg)
-{
-	if (arg & ~RT_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return (arg & RT_MASK) << RT_SH;
-}
-
-static __init u32 build_rd(u32 arg)
-{
-	if (arg & ~RD_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return (arg & RD_MASK) << RD_SH;
-}
-
-static __init u32 build_re(u32 arg)
-{
-	if (arg & ~RE_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return (arg & RE_MASK) << RE_SH;
-}
-
-static __init u32 build_simm(s32 arg)
-{
-	if (arg > 0x7fff || arg < -0x8000)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return arg & 0xffff;
-}
-
-static __init u32 build_uimm(u32 arg)
-{
-	if (arg & ~IMM_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return arg & IMM_MASK;
-}
-
-static __init u32 build_bimm(s32 arg)
-{
-	if (arg > 0x1ffff || arg < -0x20000)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	if (arg & 0x3)
-		printk(KERN_WARNING "Invalid TLB synthesizer branch target\n");
-
-	return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff);
-}
-
-static __init u32 build_jimm(u32 arg)
-{
-	if (arg & ~((JIMM_MASK) << 2))
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return (arg >> 2) & JIMM_MASK;
-}
-
-static __init u32 build_func(u32 arg)
-{
-	if (arg & ~FUNC_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return arg & FUNC_MASK;
-}
-
-static __init u32 build_set(u32 arg)
-{
-	if (arg & ~SET_MASK)
-		printk(KERN_WARNING "TLB synthesizer field overflow\n");
-
-	return arg & SET_MASK;
-}
-
-/*
- * The order of opcode arguments is implicitly left to right,
- * starting with RS and ending with FUNC or IMM.
- */
-static void __init build_insn(u32 **buf, enum opcode opc, ...)
-{
-	struct insn *ip = NULL;
-	unsigned int i;
-	va_list ap;
-	u32 op;
-
-	for (i = 0; insn_table[i].opcode != insn_invalid; i++)
-		if (insn_table[i].opcode == opc) {
-			ip = &insn_table[i];
-			break;
-		}
-
-	if (!ip)
-		panic("Unsupported TLB synthesizer instruction %d", opc);
-
-	op = ip->match;
-	va_start(ap, opc);
-	if (ip->fields & RS) op |= build_rs(va_arg(ap, u32));
-	if (ip->fields & RT) op |= build_rt(va_arg(ap, u32));
-	if (ip->fields & RD) op |= build_rd(va_arg(ap, u32));
-	if (ip->fields & RE) op |= build_re(va_arg(ap, u32));
-	if (ip->fields & SIMM) op |= build_simm(va_arg(ap, s32));
-	if (ip->fields & UIMM) op |= build_uimm(va_arg(ap, u32));
-	if (ip->fields & BIMM) op |= build_bimm(va_arg(ap, s32));
-	if (ip->fields & JIMM) op |= build_jimm(va_arg(ap, u32));
-	if (ip->fields & FUNC) op |= build_func(va_arg(ap, u32));
-	if (ip->fields & SET) op |= build_set(va_arg(ap, u32));
-	va_end(ap);
-
-	**buf = op;
-	(*buf)++;
-}
-
-#define I_u1u2u3(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b, unsigned int c)			\
-	{							\
-		build_insn(buf, insn##op, a, b, c);		\
-	}
-
-#define I_u2u1u3(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b, unsigned int c)			\
-	{							\
-		build_insn(buf, insn##op, b, a, c);		\
-	}
-
-#define I_u3u1u2(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b, unsigned int c)			\
-	{							\
-		build_insn(buf, insn##op, b, c, a);		\
-	}
-
-#define I_u1u2s3(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b, signed int c)			\
-	{							\
-		build_insn(buf, insn##op, a, b, c);		\
-	}
-
-#define I_u2s3u1(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	signed int b, unsigned int c)			\
-	{							\
-		build_insn(buf, insn##op, c, a, b);		\
-	}
-
-#define I_u2u1s3(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b, signed int c)			\
-	{							\
-		build_insn(buf, insn##op, b, a, c);		\
-	}
-
-#define I_u1u2(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	unsigned int b)					\
-	{							\
-		build_insn(buf, insn##op, a, b);		\
-	}
-
-#define I_u1s2(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a,	\
-	 	signed int b)					\
-	{							\
-		build_insn(buf, insn##op, a, b);		\
-	}
-
-#define I_u1(op)						\
-	static inline void __init i##op(u32 **buf, unsigned int a)	\
-	{							\
-		build_insn(buf, insn##op, a);			\
-	}
-
-#define I_0(op)							\
-	static inline void __init i##op(u32 **buf)		\
-	{							\
-		build_insn(buf, insn##op);			\
-	}
-
-I_u2u1s3(_addiu);
-I_u3u1u2(_addu);
-I_u2u1u3(_andi);
-I_u3u1u2(_and);
-I_u1u2s3(_beq);
-I_u1u2s3(_beql);
-I_u1s2(_bgez);
-I_u1s2(_bgezl);
-I_u1s2(_bltz);
-I_u1s2(_bltzl);
-I_u1u2s3(_bne);
-I_u1u2u3(_dmfc0);
-I_u1u2u3(_dmtc0);
-I_u2u1s3(_daddiu);
-I_u3u1u2(_daddu);
-I_u2u1u3(_dsll);
-I_u2u1u3(_dsll32);
-I_u2u1u3(_dsra);
-I_u2u1u3(_dsrl);
-I_u2u1u3(_dsrl32);
-I_u3u1u2(_dsubu);
-I_0(_eret);
-I_u1(_j);
-I_u1(_jal);
-I_u1(_jr);
-I_u2s3u1(_ld);
-I_u2s3u1(_ll);
-I_u2s3u1(_lld);
-I_u1s2(_lui);
-I_u2s3u1(_lw);
-I_u1u2u3(_mfc0);
-I_u1u2u3(_mtc0);
-I_u2u1u3(_ori);
-I_0(_rfe);
-I_u2s3u1(_sc);
-I_u2s3u1(_scd);
-I_u2s3u1(_sd);
-I_u2u1u3(_sll);
-I_u2u1u3(_sra);
-I_u2u1u3(_srl);
-I_u3u1u2(_subu);
-I_u2s3u1(_sw);
-I_0(_tlbp);
-I_0(_tlbwi);
-I_0(_tlbwr);
-I_u3u1u2(_xor)
-I_u2u1u3(_xori);
-
-/*
- * handling labels
- */
-
+/* Handle labels (which must be positive integers). */
 enum label_id {
-	label_invalid,
-	label_second_part,
+	label_second_part = 1,
 	label_leave,
 #ifdef MODULE_START
 	label_module_alloc,
@@ -452,267 +88,20 @@ enum label_id {
 	label_r3000_write_probe_fail,
 };
 
-struct label {
-	u32 *addr;
-	enum label_id lab;
-};
-
-static __init void build_label(struct label **lab, u32 *addr,
-			       enum label_id l)
-{
-	(*lab)->addr = addr;
-	(*lab)->lab = l;
-	(*lab)++;
-}
-
-#define L_LA(lb)						\
-	static inline void l##lb(struct label **lab, u32 *addr) \
-	{							\
-		build_label(lab, addr, label##lb);		\
-	}
-
-L_LA(_second_part)
-L_LA(_leave)
+UASM_L_LA(_second_part)
+UASM_L_LA(_leave)
 #ifdef MODULE_START
-L_LA(_module_alloc)
-#endif
-L_LA(_vmalloc)
-L_LA(_vmalloc_done)
-L_LA(_tlbw_hazard)
-L_LA(_split)
-L_LA(_nopage_tlbl)
-L_LA(_nopage_tlbs)
-L_LA(_nopage_tlbm)
-L_LA(_smp_pgtable_change)
-L_LA(_r3000_write_probe_fail)
-
-/* convenience macros for instructions */
-#ifdef CONFIG_64BIT
-# define i_LW(buf, rs, rt, off) i_ld(buf, rs, rt, off)
-# define i_SW(buf, rs, rt, off) i_sd(buf, rs, rt, off)
-# define i_SLL(buf, rs, rt, sh) i_dsll(buf, rs, rt, sh)
-# define i_SRA(buf, rs, rt, sh) i_dsra(buf, rs, rt, sh)
-# define i_SRL(buf, rs, rt, sh) i_dsrl(buf, rs, rt, sh)
-# define i_MFC0(buf, rt, rd...) i_dmfc0(buf, rt, rd)
-# define i_MTC0(buf, rt, rd...) i_dmtc0(buf, rt, rd)
-# define i_ADDIU(buf, rs, rt, val) i_daddiu(buf, rs, rt, val)
-# define i_ADDU(buf, rs, rt, rd) i_daddu(buf, rs, rt, rd)
-# define i_SUBU(buf, rs, rt, rd) i_dsubu(buf, rs, rt, rd)
-# define i_LL(buf, rs, rt, off) i_lld(buf, rs, rt, off)
-# define i_SC(buf, rs, rt, off) i_scd(buf, rs, rt, off)
-#else
-# define i_LW(buf, rs, rt, off) i_lw(buf, rs, rt, off)
-# define i_SW(buf, rs, rt, off) i_sw(buf, rs, rt, off)
-# define i_SLL(buf, rs, rt, sh) i_sll(buf, rs, rt, sh)
-# define i_SRA(buf, rs, rt, sh) i_sra(buf, rs, rt, sh)
-# define i_SRL(buf, rs, rt, sh) i_srl(buf, rs, rt, sh)
-# define i_MFC0(buf, rt, rd...) i_mfc0(buf, rt, rd)
-# define i_MTC0(buf, rt, rd...) i_mtc0(buf, rt, rd)
-# define i_ADDIU(buf, rs, rt, val) i_addiu(buf, rs, rt, val)
-# define i_ADDU(buf, rs, rt, rd) i_addu(buf, rs, rt, rd)
-# define i_SUBU(buf, rs, rt, rd) i_subu(buf, rs, rt, rd)
-# define i_LL(buf, rs, rt, off) i_ll(buf, rs, rt, off)
-# define i_SC(buf, rs, rt, off) i_sc(buf, rs, rt, off)
-#endif
-
-#define i_b(buf, off) i_beq(buf, 0, 0, off)
-#define i_beqz(buf, rs, off) i_beq(buf, rs, 0, off)
-#define i_beqzl(buf, rs, off) i_beql(buf, rs, 0, off)
-#define i_bnez(buf, rs, off) i_bne(buf, rs, 0, off)
-#define i_bnezl(buf, rs, off) i_bnel(buf, rs, 0, off)
-#define i_move(buf, a, b) i_ADDU(buf, a, 0, b)
-#define i_nop(buf) i_sll(buf, 0, 0, 0)
-#define i_ssnop(buf) i_sll(buf, 0, 0, 1)
-#define i_ehb(buf) i_sll(buf, 0, 0, 3)
-
-#ifdef CONFIG_64BIT
-static __init int __maybe_unused in_compat_space_p(long addr)
-{
-	/* Is this address in 32bit compat space? */
-	return (((addr) & 0xffffffff00000000L) == 0xffffffff00000000L);
-}
-
-static __init int __maybe_unused rel_highest(long val)
-{
-	return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000;
-}
-
-static __init int __maybe_unused rel_higher(long val)
-{
-	return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000;
-}
-#endif
-
-static __init int rel_hi(long val)
-{
-	return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000;
-}
-
-static __init int rel_lo(long val)
-{
-	return ((val & 0xffff) ^ 0x8000) - 0x8000;
-}
-
-static __init void i_LA_mostly(u32 **buf, unsigned int rs, long addr)
-{
-#ifdef CONFIG_64BIT
-	if (!in_compat_space_p(addr)) {
-		i_lui(buf, rs, rel_highest(addr));
-		if (rel_higher(addr))
-			i_daddiu(buf, rs, rs, rel_higher(addr));
-		if (rel_hi(addr)) {
-			i_dsll(buf, rs, rs, 16);
-			i_daddiu(buf, rs, rs, rel_hi(addr));
-			i_dsll(buf, rs, rs, 16);
-		} else
-			i_dsll32(buf, rs, rs, 0);
-	} else
+UASM_L_LA(_module_alloc)
 #endif
-		i_lui(buf, rs, rel_hi(addr));
-}
-
-static __init void __maybe_unused i_LA(u32 **buf, unsigned int rs,
-					     long addr)
-{
-	i_LA_mostly(buf, rs, addr);
-	if (rel_lo(addr))
-		i_ADDIU(buf, rs, rs, rel_lo(addr));
-}
-
-/*
- * handle relocations
- */
-
-struct reloc {
-	u32 *addr;
-	unsigned int type;
-	enum label_id lab;
-};
-
-static __init void r_mips_pc16(struct reloc **rel, u32 *addr,
-			       enum label_id l)
-{
-	(*rel)->addr = addr;
-	(*rel)->type = R_MIPS_PC16;
-	(*rel)->lab = l;
-	(*rel)++;
-}
-
-static inline void __resolve_relocs(struct reloc *rel, struct label *lab)
-{
-	long laddr = (long)lab->addr;
-	long raddr = (long)rel->addr;
-
-	switch (rel->type) {
-	case R_MIPS_PC16:
-		*rel->addr |= build_bimm(laddr - (raddr + 4));
-		break;
-
-	default:
-		panic("Unsupported TLB synthesizer relocation %d",
-		      rel->type);
-	}
-}
-
-static __init void resolve_relocs(struct reloc *rel, struct label *lab)
-{
-	struct label *l;
-
-	for (; rel->lab != label_invalid; rel++)
-		for (l = lab; l->lab != label_invalid; l++)
-			if (rel->lab == l->lab)
-				__resolve_relocs(rel, l);
-}
-
-static __init void move_relocs(struct reloc *rel, u32 *first, u32 *end,
-			       long off)
-{
-	for (; rel->lab != label_invalid; rel++)
-		if (rel->addr >= first && rel->addr < end)
-			rel->addr += off;
-}
-
-static __init void move_labels(struct label *lab, u32 *first, u32 *end,
-			       long off)
-{
-	for (; lab->lab != label_invalid; lab++)
-		if (lab->addr >= first && lab->addr < end)
-			lab->addr += off;
-}
-
-static __init void copy_handler(struct reloc *rel, struct label *lab,
-				u32 *first, u32 *end, u32 *target)
-{
-	long off = (long)(target - first);
-
-	memcpy(target, first, (end - first) * sizeof(u32));
-
-	move_relocs(rel, first, end, off);
-	move_labels(lab, first, end, off);
-}
-
-static __init int __maybe_unused insn_has_bdelay(struct reloc *rel,
-						       u32 *addr)
-{
-	for (; rel->lab != label_invalid; rel++) {
-		if (rel->addr == addr
-		    && (rel->type == R_MIPS_PC16
-			|| rel->type == R_MIPS_26))
-			return 1;
-	}
-
-	return 0;
-}
-
-/* convenience functions for labeled branches */
-static void __init __maybe_unused
-	il_bltz(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_bltz(p, reg, 0);
-}
-
-static void __init __maybe_unused il_b(u32 **p, struct reloc **r,
-					     enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_b(p, 0);
-}
-
-static void __init il_beqz(u32 **p, struct reloc **r, unsigned int reg,
-		    enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_beqz(p, reg, 0);
-}
-
-static void __init __maybe_unused
-il_beqzl(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_beqzl(p, reg, 0);
-}
-
-static void __init il_bnez(u32 **p, struct reloc **r, unsigned int reg,
-		    enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_bnez(p, reg, 0);
-}
-
-static void __init il_bgezl(u32 **p, struct reloc **r, unsigned int reg,
-		     enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_bgezl(p, reg, 0);
-}
-
-static void __init __maybe_unused
-il_bgez(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
-{
-	r_mips_pc16(r, *p, l);
-	i_bgez(p, reg, 0);
-}
+UASM_L_LA(_vmalloc)
+UASM_L_LA(_vmalloc_done)
+UASM_L_LA(_tlbw_hazard)
+UASM_L_LA(_split)
+UASM_L_LA(_nopage_tlbl)
+UASM_L_LA(_nopage_tlbs)
+UASM_L_LA(_nopage_tlbm)
+UASM_L_LA(_smp_pgtable_change)
+UASM_L_LA(_r3000_write_probe_fail)
 
 /* The only general purpose registers allowed in TLB handlers. */
 #define K0		26
@@ -730,9 +119,9 @@ il_bgez(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
 #define C0_XCONTEXT	20, 0
 
 #ifdef CONFIG_64BIT
-# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_XCONTEXT)
+# define GET_CONTEXT(buf, reg) UASM_i_MFC0(buf, reg, C0_XCONTEXT)
 #else
-# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_CONTEXT)
+# define GET_CONTEXT(buf, reg) UASM_i_MFC0(buf, reg, C0_CONTEXT)
 #endif
 
 /* The worst case length of the handler is around 18 instructions for
@@ -746,8 +135,8 @@ il_bgez(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
 static __initdata u32 tlb_handler[128];
 
 /* simply assume worst case size for labels and relocs */
-static __initdata struct label labels[128];
-static __initdata struct reloc relocs[128];
+static __initdata struct uasm_label labels[128];
+static __initdata struct uasm_reloc relocs[128];
 
 /*
  * The R3000 TLB handler is simple.
@@ -761,29 +150,29 @@ static void __init build_r3000_tlb_refill_handler(void)
 	memset(tlb_handler, 0, sizeof(tlb_handler));
 	p = tlb_handler;
 
-	i_mfc0(&p, K0, C0_BADVADDR);
-	i_lui(&p, K1, rel_hi(pgdc)); /* cp0 delay */
-	i_lw(&p, K1, rel_lo(pgdc), K1);
-	i_srl(&p, K0, K0, 22); /* load delay */
-	i_sll(&p, K0, K0, 2);
-	i_addu(&p, K1, K1, K0);
-	i_mfc0(&p, K0, C0_CONTEXT);
-	i_lw(&p, K1, 0, K1); /* cp0 delay */
-	i_andi(&p, K0, K0, 0xffc); /* load delay */
-	i_addu(&p, K1, K1, K0);
-	i_lw(&p, K0, 0, K1);
-	i_nop(&p); /* load delay */
-	i_mtc0(&p, K0, C0_ENTRYLO0);
-	i_mfc0(&p, K1, C0_EPC); /* cp0 delay */
-	i_tlbwr(&p); /* cp0 delay */
-	i_jr(&p, K1);
-	i_rfe(&p); /* branch delay */
+	uasm_i_mfc0(&p, K0, C0_BADVADDR);
+	uasm_i_lui(&p, K1, uasm_rel_hi(pgdc)); /* cp0 delay */
+	uasm_i_lw(&p, K1, uasm_rel_lo(pgdc), K1);
+	uasm_i_srl(&p, K0, K0, 22); /* load delay */
+	uasm_i_sll(&p, K0, K0, 2);
+	uasm_i_addu(&p, K1, K1, K0);
+	uasm_i_mfc0(&p, K0, C0_CONTEXT);
+	uasm_i_lw(&p, K1, 0, K1); /* cp0 delay */
+	uasm_i_andi(&p, K0, K0, 0xffc); /* load delay */
+	uasm_i_addu(&p, K1, K1, K0);
+	uasm_i_lw(&p, K0, 0, K1);
+	uasm_i_nop(&p); /* load delay */
+	uasm_i_mtc0(&p, K0, C0_ENTRYLO0);
+	uasm_i_mfc0(&p, K1, C0_EPC); /* cp0 delay */
+	uasm_i_tlbwr(&p); /* cp0 delay */
+	uasm_i_jr(&p, K1);
+	uasm_i_rfe(&p); /* branch delay */
 
 	if (p > tlb_handler + 32)
 		panic("TLB refill handler space exceeded");
 
-	pr_info("Synthesized TLB refill handler (%u instructions).\n",
-		(unsigned int)(p - tlb_handler));
+	pr_debug("Wrote TLB refill handler (%u instructions).\n",
+		 (unsigned int)(p - tlb_handler));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -833,12 +222,12 @@ static __init void __maybe_unused build_tlb_probe_entry(u32 **p)
 	case CPU_R5000:
 	case CPU_R5000A:
 	case CPU_NEVADA:
-		i_nop(p);
-		i_tlbp(p);
+		uasm_i_nop(p);
+		uasm_i_tlbp(p);
 		break;
 
 	default:
-		i_tlbp(p);
+		uasm_i_tlbp(p);
 		break;
 	}
 }
@@ -849,15 +238,15 @@ static __init void __maybe_unused build_tlb_probe_entry(u32 **p)
  */
 enum tlb_write_entry { tlb_random, tlb_indexed };
 
-static __init void build_tlb_write_entry(u32 **p, struct label **l,
-					 struct reloc **r,
+static __init void build_tlb_write_entry(u32 **p, struct uasm_label **l,
+					 struct uasm_reloc **r,
 					 enum tlb_write_entry wmode)
 {
 	void(*tlbw)(u32 **) = NULL;
 
 	switch (wmode) {
-	case tlb_random: tlbw = i_tlbwr; break;
-	case tlb_indexed: tlbw = i_tlbwi; break;
+	case tlb_random: tlbw = uasm_i_tlbwr; break;
+	case tlb_indexed: tlbw = uasm_i_tlbwi; break;
 	}
 
 	switch (current_cpu_type()) {
@@ -871,19 +260,19 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 		 * This branch uses up a mtc0 hazard nop slot and saves
 		 * two nops after the tlbw instruction.
 		 */
-		il_bgezl(p, r, 0, label_tlbw_hazard);
+		uasm_il_bgezl(p, r, 0, label_tlbw_hazard);
 		tlbw(p);
-		l_tlbw_hazard(l, *p);
-		i_nop(p);
+		uasm_l_tlbw_hazard(l, *p);
+		uasm_i_nop(p);
 		break;
 
 	case CPU_R4600:
 	case CPU_R4700:
 	case CPU_R5000:
 	case CPU_R5000A:
-		i_nop(p);
+		uasm_i_nop(p);
 		tlbw(p);
-		i_nop(p);
+		uasm_i_nop(p);
 		break;
 
 	case CPU_R4300:
@@ -895,7 +284,7 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 	case CPU_AU1550:
 	case CPU_AU1200:
 	case CPU_PR4450:
-		i_nop(p);
+		uasm_i_nop(p);
 		tlbw(p);
 		break;
 
@@ -912,26 +301,26 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 	case CPU_BCM4710:
 	case CPU_LOONGSON2:
 		if (m4kc_tlbp_war())
-			i_nop(p);
+			uasm_i_nop(p);
 		tlbw(p);
 		break;
 
 	case CPU_NEVADA:
-		i_nop(p); /* QED specifies 2 nops hazard */
+		uasm_i_nop(p); /* QED specifies 2 nops hazard */
 		/*
 		 * This branch uses up a mtc0 hazard nop slot and saves
 		 * a nop after the tlbw instruction.
 		 */
-		il_bgezl(p, r, 0, label_tlbw_hazard);
+		uasm_il_bgezl(p, r, 0, label_tlbw_hazard);
 		tlbw(p);
-		l_tlbw_hazard(l, *p);
+		uasm_l_tlbw_hazard(l, *p);
 		break;
 
 	case CPU_RM7000:
-		i_nop(p);
-		i_nop(p);
-		i_nop(p);
-		i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
 		tlbw(p);
 		break;
 
@@ -939,7 +328,7 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 	case CPU_24K:
 	case CPU_34K:
 	case CPU_74K:
-		i_ehb(p);
+		uasm_i_ehb(p);
 		tlbw(p);
 		break;
 
@@ -950,15 +339,15 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 		 * cpu cycles and use for data translations should not occur
 		 * for 3 cpu cycles.
 		 */
-		i_ssnop(p);
-		i_ssnop(p);
-		i_ssnop(p);
-		i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
 		tlbw(p);
-		i_ssnop(p);
-		i_ssnop(p);
-		i_ssnop(p);
-		i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
+		uasm_i_ssnop(p);
 		break;
 
 	case CPU_VR4111:
@@ -966,18 +355,18 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
 	case CPU_VR4122:
 	case CPU_VR4181:
 	case CPU_VR4181A:
-		i_nop(p);
-		i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
 		tlbw(p);
-		i_nop(p);
-		i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
 		break;
 
 	case CPU_VR4131:
 	case CPU_VR4133:
 	case CPU_R5432:
-		i_nop(p);
-		i_nop(p);
+		uasm_i_nop(p);
+		uasm_i_nop(p);
 		tlbw(p);
 		break;
 
@@ -994,7 +383,7 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
  * TMP will be clobbered, PTR will hold the pmd entry.
  */
 static __init void
-build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
+build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
 		 unsigned int tmp, unsigned int ptr)
 {
 	long pgdc = (long)pgd_current;
@@ -1002,52 +391,52 @@ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
 	/*
 	 * The vmalloc handling is not in the hotpath.
 	 */
-	i_dmfc0(p, tmp, C0_BADVADDR);
+	uasm_i_dmfc0(p, tmp, C0_BADVADDR);
 #ifdef MODULE_START
-	il_bltz(p, r, tmp, label_module_alloc);
+	uasm_il_bltz(p, r, tmp, label_module_alloc);
 #else
-	il_bltz(p, r, tmp, label_vmalloc);
+	uasm_il_bltz(p, r, tmp, label_vmalloc);
 #endif
-	/* No i_nop needed here, since the next insn doesn't touch TMP. */
+	/* No uasm_i_nop needed here, since the next insn doesn't touch TMP. */
 
 #ifdef CONFIG_SMP
 # ifdef  CONFIG_MIPS_MT_SMTC
 	/*
 	 * SMTC uses TCBind value as "CPU" index
 	 */
-	i_mfc0(p, ptr, C0_TCBIND);
-	i_dsrl(p, ptr, ptr, 19);
+	uasm_i_mfc0(p, ptr, C0_TCBIND);
+	uasm_i_dsrl(p, ptr, ptr, 19);
 # else
 	/*
 	 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3
 	 * stored in CONTEXT.
 	 */
-	i_dmfc0(p, ptr, C0_CONTEXT);
-	i_dsrl(p, ptr, ptr, 23);
+	uasm_i_dmfc0(p, ptr, C0_CONTEXT);
+	uasm_i_dsrl(p, ptr, ptr, 23);
 #endif
-	i_LA_mostly(p, tmp, pgdc);
-	i_daddu(p, ptr, ptr, tmp);
-	i_dmfc0(p, tmp, C0_BADVADDR);
-	i_ld(p, ptr, rel_lo(pgdc), ptr);
+	UASM_i_LA_mostly(p, tmp, pgdc);
+	uasm_i_daddu(p, ptr, ptr, tmp);
+	uasm_i_dmfc0(p, tmp, C0_BADVADDR);
+	uasm_i_ld(p, ptr, uasm_rel_lo(pgdc), ptr);
 #else
-	i_LA_mostly(p, ptr, pgdc);
-	i_ld(p, ptr, rel_lo(pgdc), ptr);
+	UASM_i_LA_mostly(p, ptr, pgdc);
+	uasm_i_ld(p, ptr, uasm_rel_lo(pgdc), ptr);
 #endif
 
-	l_vmalloc_done(l, *p);
+	uasm_l_vmalloc_done(l, *p);
 
 	if (PGDIR_SHIFT - 3 < 32)		/* get pgd offset in bytes */
-		i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3);
+		uasm_i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3);
 	else
-		i_dsrl32(p, tmp, tmp, PGDIR_SHIFT - 3 - 32);
-
-	i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
-	i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
-	i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
-	i_ld(p, ptr, 0, ptr); /* get pmd pointer */
-	i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */
-	i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
-	i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
+		uasm_i_dsrl32(p, tmp, tmp, PGDIR_SHIFT - 3 - 32);
+
+	uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
+	uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
+	uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
+	uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */
+	uasm_i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */
+	uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
+	uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
 }
 
 /*
@@ -1055,7 +444,7 @@ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
  * PTR will hold the pgd for vmalloc.
  */
 static __init void
-build_get_pgd_vmalloc64(u32 **p, struct label **l, struct reloc **r,
+build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
 			unsigned int bvaddr, unsigned int ptr)
 {
 	long swpd = (long)swapper_pg_dir;
@@ -1063,52 +452,54 @@ build_get_pgd_vmalloc64(u32 **p, struct label **l, struct reloc **r,
 #ifdef MODULE_START
 	long modd = (long)module_pg_dir;
 
-	l_module_alloc(l, *p);
+	uasm_l_module_alloc(l, *p);
 	/*
 	 * Assumption:
 	 * VMALLOC_START >= 0xc000000000000000UL
 	 * MODULE_START >= 0xe000000000000000UL
 	 */
-	i_SLL(p, ptr, bvaddr, 2);
-	il_bgez(p, r, ptr, label_vmalloc);
+	UASM_i_SLL(p, ptr, bvaddr, 2);
+	uasm_il_bgez(p, r, ptr, label_vmalloc);
 
-	if (in_compat_space_p(MODULE_START) && !rel_lo(MODULE_START)) {
-		i_lui(p, ptr, rel_hi(MODULE_START)); /* delay slot */
+	if (uasm_in_compat_space_p(MODULE_START) &&
+	    !uasm_rel_lo(MODULE_START)) {
+		uasm_i_lui(p, ptr, uasm_rel_hi(MODULE_START)); /* delay slot */
 	} else {
 		/* unlikely configuration */
-		i_nop(p); /* delay slot */
-		i_LA(p, ptr, MODULE_START);
+		uasm_i_nop(p); /* delay slot */
+		UASM_i_LA(p, ptr, MODULE_START);
 	}
-	i_dsubu(p, bvaddr, bvaddr, ptr);
+	uasm_i_dsubu(p, bvaddr, bvaddr, ptr);
 
-	if (in_compat_space_p(modd) && !rel_lo(modd)) {
-		il_b(p, r, label_vmalloc_done);
-		i_lui(p, ptr, rel_hi(modd));
+	if (uasm_in_compat_space_p(modd) && !uasm_rel_lo(modd)) {
+		uasm_il_b(p, r, label_vmalloc_done);
+		uasm_i_lui(p, ptr, uasm_rel_hi(modd));
 	} else {
-		i_LA_mostly(p, ptr, modd);
-		il_b(p, r, label_vmalloc_done);
-		i_daddiu(p, ptr, ptr, rel_lo(modd));
+		UASM_i_LA_mostly(p, ptr, modd);
+		uasm_il_b(p, r, label_vmalloc_done);
+		uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(modd));
 	}
 
-	l_vmalloc(l, *p);
-	if (in_compat_space_p(MODULE_START) && !rel_lo(MODULE_START) &&
+	uasm_l_vmalloc(l, *p);
+	if (uasm_in_compat_space_p(MODULE_START) &&
+	    !uasm_rel_lo(MODULE_START) &&
 	    MODULE_START << 32 == VMALLOC_START)
-		i_dsll32(p, ptr, ptr, 0);	/* typical case */
+		uasm_i_dsll32(p, ptr, ptr, 0);	/* typical case */
 	else
-		i_LA(p, ptr, VMALLOC_START);
+		UASM_i_LA(p, ptr, VMALLOC_START);
 #else
-	l_vmalloc(l, *p);
-	i_LA(p, ptr, VMALLOC_START);
+	uasm_l_vmalloc(l, *p);
+	UASM_i_LA(p, ptr, VMALLOC_START);
 #endif
-	i_dsubu(p, bvaddr, bvaddr, ptr);
+	uasm_i_dsubu(p, bvaddr, bvaddr, ptr);
 
-	if (in_compat_space_p(swpd) && !rel_lo(swpd)) {
-		il_b(p, r, label_vmalloc_done);
-		i_lui(p, ptr, rel_hi(swpd));
+	if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) {
+		uasm_il_b(p, r, label_vmalloc_done);
+		uasm_i_lui(p, ptr, uasm_rel_hi(swpd));
 	} else {
-		i_LA_mostly(p, ptr, swpd);
-		il_b(p, r, label_vmalloc_done);
-		i_daddiu(p, ptr, ptr, rel_lo(swpd));
+		UASM_i_LA_mostly(p, ptr, swpd);
+		uasm_il_b(p, r, label_vmalloc_done);
+		uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(swpd));
 	}
 }
 
@@ -1129,26 +520,26 @@ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
 	/*
 	 * SMTC uses TCBind value as "CPU" index
 	 */
-	i_mfc0(p, ptr, C0_TCBIND);
-	i_LA_mostly(p, tmp, pgdc);
-	i_srl(p, ptr, ptr, 19);
+	uasm_i_mfc0(p, ptr, C0_TCBIND);
+	UASM_i_LA_mostly(p, tmp, pgdc);
+	uasm_i_srl(p, ptr, ptr, 19);
 #else
 	/*
 	 * smp_processor_id() << 3 is stored in CONTEXT.
          */
-	i_mfc0(p, ptr, C0_CONTEXT);
-	i_LA_mostly(p, tmp, pgdc);
-	i_srl(p, ptr, ptr, 23);
+	uasm_i_mfc0(p, ptr, C0_CONTEXT);
+	UASM_i_LA_mostly(p, tmp, pgdc);
+	uasm_i_srl(p, ptr, ptr, 23);
 #endif
-	i_addu(p, ptr, tmp, ptr);
+	uasm_i_addu(p, ptr, tmp, ptr);
 #else
-	i_LA_mostly(p, ptr, pgdc);
+	UASM_i_LA_mostly(p, ptr, pgdc);
 #endif
-	i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
-	i_lw(p, ptr, rel_lo(pgdc), ptr);
-	i_srl(p, tmp, tmp, PGDIR_SHIFT); /* get pgd only bits */
-	i_sll(p, tmp, tmp, PGD_T_LOG2);
-	i_addu(p, ptr, ptr, tmp); /* add in pgd offset */
+	uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
+	uasm_i_lw(p, ptr, uasm_rel_lo(pgdc), ptr);
+	uasm_i_srl(p, tmp, tmp, PGDIR_SHIFT); /* get pgd only bits */
+	uasm_i_sll(p, tmp, tmp, PGD_T_LOG2);
+	uasm_i_addu(p, ptr, ptr, tmp); /* add in pgd offset */
 }
 
 #endif /* !CONFIG_64BIT */
@@ -1175,8 +566,8 @@ static __init void build_adjust_context(u32 **p, unsigned int ctx)
 	}
 
 	if (shift)
-		i_SRL(p, ctx, ctx, shift);
-	i_andi(p, ctx, ctx, mask);
+		UASM_i_SRL(p, ctx, ctx, shift);
+	uasm_i_andi(p, ctx, ctx, mask);
 }
 
 static __init void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
@@ -1190,18 +581,18 @@ static __init void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
 	 */
 	switch (current_cpu_type()) {
 	case CPU_NEVADA:
-		i_LW(p, ptr, 0, ptr);
+		UASM_i_LW(p, ptr, 0, ptr);
 		GET_CONTEXT(p, tmp); /* get context reg */
 		break;
 
 	default:
 		GET_CONTEXT(p, tmp); /* get context reg */
-		i_LW(p, ptr, 0, ptr);
+		UASM_i_LW(p, ptr, 0, ptr);
 		break;
 	}
 
 	build_adjust_context(p, tmp);
-	i_ADDU(p, ptr, ptr, tmp); /* add in offset */
+	UASM_i_ADDU(p, ptr, ptr, tmp); /* add in offset */
 }
 
 static __init void build_update_entries(u32 **p, unsigned int tmp,
@@ -1213,45 +604,45 @@ static __init void build_update_entries(u32 **p, unsigned int tmp,
 	 */
 #ifdef CONFIG_64BIT_PHYS_ADDR
 	if (cpu_has_64bits) {
-		i_ld(p, tmp, 0, ptep); /* get even pte */
-		i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
-		i_dsrl(p, tmp, tmp, 6); /* convert to entrylo0 */
-		i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
-		i_dsrl(p, ptep, ptep, 6); /* convert to entrylo1 */
-		i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+		uasm_i_ld(p, tmp, 0, ptep); /* get even pte */
+		uasm_i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
+		uasm_i_dsrl(p, tmp, tmp, 6); /* convert to entrylo0 */
+		uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+		uasm_i_dsrl(p, ptep, ptep, 6); /* convert to entrylo1 */
+		uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
 	} else {
 		int pte_off_even = sizeof(pte_t) / 2;
 		int pte_off_odd = pte_off_even + sizeof(pte_t);
 
 		/* The pte entries are pre-shifted */
-		i_lw(p, tmp, pte_off_even, ptep); /* get even pte */
-		i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
-		i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */
-		i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+		uasm_i_lw(p, tmp, pte_off_even, ptep); /* get even pte */
+		uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+		uasm_i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */
+		uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
 	}
 #else
-	i_LW(p, tmp, 0, ptep); /* get even pte */
-	i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
+	UASM_i_LW(p, tmp, 0, ptep); /* get even pte */
+	UASM_i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
 	if (r45k_bvahwbug())
 		build_tlb_probe_entry(p);
-	i_SRL(p, tmp, tmp, 6); /* convert to entrylo0 */
+	UASM_i_SRL(p, tmp, tmp, 6); /* convert to entrylo0 */
 	if (r4k_250MHZhwbug())
-		i_mtc0(p, 0, C0_ENTRYLO0);
-	i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
-	i_SRL(p, ptep, ptep, 6); /* convert to entrylo1 */
+		uasm_i_mtc0(p, 0, C0_ENTRYLO0);
+	uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+	UASM_i_SRL(p, ptep, ptep, 6); /* convert to entrylo1 */
 	if (r45k_bvahwbug())
-		i_mfc0(p, tmp, C0_INDEX);
+		uasm_i_mfc0(p, tmp, C0_INDEX);
 	if (r4k_250MHZhwbug())
-		i_mtc0(p, 0, C0_ENTRYLO1);
-	i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+		uasm_i_mtc0(p, 0, C0_ENTRYLO1);
+	uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
 #endif
 }
 
 static void __init build_r4000_tlb_refill_handler(void)
 {
 	u32 *p = tlb_handler;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	u32 *f;
 	unsigned int final_len;
 	int i;
@@ -1265,12 +656,12 @@ static void __init build_r4000_tlb_refill_handler(void)
 	 * create the plain linear handler
 	 */
 	if (bcm1250_m3_war()) {
-		i_MFC0(&p, K0, C0_BADVADDR);
-		i_MFC0(&p, K1, C0_ENTRYHI);
-		i_xor(&p, K0, K0, K1);
-		i_SRL(&p, K0, K0, PAGE_SHIFT + 1);
-		il_bnez(&p, &r, K0, label_leave);
-		/* No need for i_nop */
+		UASM_i_MFC0(&p, K0, C0_BADVADDR);
+		UASM_i_MFC0(&p, K1, C0_ENTRYHI);
+		uasm_i_xor(&p, K0, K0, K1);
+		UASM_i_SRL(&p, K0, K0, PAGE_SHIFT + 1);
+		uasm_il_bnez(&p, &r, K0, label_leave);
+		/* No need for uasm_i_nop */
 	}
 
 #ifdef CONFIG_64BIT
@@ -1282,8 +673,8 @@ static void __init build_r4000_tlb_refill_handler(void)
 	build_get_ptep(&p, K0, K1);
 	build_update_entries(&p, K0, K1);
 	build_tlb_write_entry(&p, &l, &r, tlb_random);
-	l_leave(&l, p);
-	i_eret(&p); /* return from trap */
+	uasm_l_leave(&l, p);
+	uasm_i_eret(&p); /* return from trap */
 
 #ifdef CONFIG_64BIT
 	build_get_pgd_vmalloc64(&p, &l, &r, K0, K1);
@@ -1303,7 +694,7 @@ static void __init build_r4000_tlb_refill_handler(void)
 #else
 	if (((p - tlb_handler) > 63)
 	    || (((p - tlb_handler) > 61)
-		&& insn_has_bdelay(relocs, tlb_handler + 29)))
+		&& uasm_insn_has_bdelay(relocs, tlb_handler + 29)))
 		panic("TLB refill handler space exceeded");
 #endif
 
@@ -1313,13 +704,13 @@ static void __init build_r4000_tlb_refill_handler(void)
 #if defined(CONFIG_32BIT) || defined(CONFIG_CPU_LOONGSON2)
 	f = final_handler;
 	/* Simplest case, just copy the handler. */
-	copy_handler(relocs, labels, tlb_handler, p, f);
+	uasm_copy_handler(relocs, labels, tlb_handler, p, f);
 	final_len = p - tlb_handler;
 #else /* CONFIG_64BIT */
 	f = final_handler + 32;
 	if ((p - tlb_handler) <= 32) {
 		/* Just copy the handler. */
-		copy_handler(relocs, labels, tlb_handler, p, f);
+		uasm_copy_handler(relocs, labels, tlb_handler, p, f);
 		final_len = p - tlb_handler;
 	} else {
 		u32 *split = tlb_handler + 30;
@@ -1327,34 +718,34 @@ static void __init build_r4000_tlb_refill_handler(void)
 		/*
 		 * Find the split point.
 		 */
-		if (insn_has_bdelay(relocs, split - 1))
+		if (uasm_insn_has_bdelay(relocs, split - 1))
 			split--;
 
 		/* Copy first part of the handler. */
-		copy_handler(relocs, labels, tlb_handler, split, f);
+		uasm_copy_handler(relocs, labels, tlb_handler, split, f);
 		f += split - tlb_handler;
 
 		/* Insert branch. */
-		l_split(&l, final_handler);
-		il_b(&f, &r, label_split);
-		if (insn_has_bdelay(relocs, split))
-			i_nop(&f);
+		uasm_l_split(&l, final_handler);
+		uasm_il_b(&f, &r, label_split);
+		if (uasm_insn_has_bdelay(relocs, split))
+			uasm_i_nop(&f);
 		else {
-			copy_handler(relocs, labels, split, split + 1, f);
-			move_labels(labels, f, f + 1, -1);
+			uasm_copy_handler(relocs, labels, split, split + 1, f);
+			uasm_move_labels(labels, f, f + 1, -1);
 			f++;
 			split++;
 		}
 
 		/* Copy the rest of the handler. */
-		copy_handler(relocs, labels, split, p, final_handler);
+		uasm_copy_handler(relocs, labels, split, p, final_handler);
 		final_len = (f - (final_handler + 32)) + (p - split);
 	}
 #endif /* CONFIG_64BIT */
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB refill handler (%u instructions).\n",
-		final_len);
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB refill handler (%u instructions).\n",
+		 final_len);
 
 	f = final_handler;
 #if defined(CONFIG_64BIT) && !defined(CONFIG_CPU_LOONGSON2)
@@ -1395,75 +786,75 @@ u32 __tlb_handler_align handle_tlbs[FASTPATH_SIZE];
 u32 __tlb_handler_align handle_tlbm[FASTPATH_SIZE];
 
 static void __init
-iPTE_LW(u32 **p, struct label **l, unsigned int pte, unsigned int ptr)
+iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr)
 {
 #ifdef CONFIG_SMP
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (cpu_has_64bits)
-		i_lld(p, pte, 0, ptr);
+		uasm_i_lld(p, pte, 0, ptr);
 	else
 # endif
-		i_LL(p, pte, 0, ptr);
+		UASM_i_LL(p, pte, 0, ptr);
 #else
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (cpu_has_64bits)
-		i_ld(p, pte, 0, ptr);
+		uasm_i_ld(p, pte, 0, ptr);
 	else
 # endif
-		i_LW(p, pte, 0, ptr);
+		UASM_i_LW(p, pte, 0, ptr);
 #endif
 }
 
 static void __init
-iPTE_SW(u32 **p, struct reloc **r, unsigned int pte, unsigned int ptr,
+iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr,
 	unsigned int mode)
 {
 #ifdef CONFIG_64BIT_PHYS_ADDR
 	unsigned int hwmode = mode & (_PAGE_VALID | _PAGE_DIRTY);
 #endif
 
-	i_ori(p, pte, pte, mode);
+	uasm_i_ori(p, pte, pte, mode);
 #ifdef CONFIG_SMP
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (cpu_has_64bits)
-		i_scd(p, pte, 0, ptr);
+		uasm_i_scd(p, pte, 0, ptr);
 	else
 # endif
-		i_SC(p, pte, 0, ptr);
+		UASM_i_SC(p, pte, 0, ptr);
 
 	if (r10000_llsc_war())
-		il_beqzl(p, r, pte, label_smp_pgtable_change);
+		uasm_il_beqzl(p, r, pte, label_smp_pgtable_change);
 	else
-		il_beqz(p, r, pte, label_smp_pgtable_change);
+		uasm_il_beqz(p, r, pte, label_smp_pgtable_change);
 
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (!cpu_has_64bits) {
-		/* no i_nop needed */
-		i_ll(p, pte, sizeof(pte_t) / 2, ptr);
-		i_ori(p, pte, pte, hwmode);
-		i_sc(p, pte, sizeof(pte_t) / 2, ptr);
-		il_beqz(p, r, pte, label_smp_pgtable_change);
-		/* no i_nop needed */
-		i_lw(p, pte, 0, ptr);
+		/* no uasm_i_nop needed */
+		uasm_i_ll(p, pte, sizeof(pte_t) / 2, ptr);
+		uasm_i_ori(p, pte, pte, hwmode);
+		uasm_i_sc(p, pte, sizeof(pte_t) / 2, ptr);
+		uasm_il_beqz(p, r, pte, label_smp_pgtable_change);
+		/* no uasm_i_nop needed */
+		uasm_i_lw(p, pte, 0, ptr);
 	} else
-		i_nop(p);
+		uasm_i_nop(p);
 # else
-	i_nop(p);
+	uasm_i_nop(p);
 # endif
 #else
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (cpu_has_64bits)
-		i_sd(p, pte, 0, ptr);
+		uasm_i_sd(p, pte, 0, ptr);
 	else
 # endif
-		i_SW(p, pte, 0, ptr);
+		UASM_i_SW(p, pte, 0, ptr);
 
 # ifdef CONFIG_64BIT_PHYS_ADDR
 	if (!cpu_has_64bits) {
-		i_lw(p, pte, sizeof(pte_t) / 2, ptr);
-		i_ori(p, pte, pte, hwmode);
-		i_sw(p, pte, sizeof(pte_t) / 2, ptr);
-		i_lw(p, pte, 0, ptr);
+		uasm_i_lw(p, pte, sizeof(pte_t) / 2, ptr);
+		uasm_i_ori(p, pte, pte, hwmode);
+		uasm_i_sw(p, pte, sizeof(pte_t) / 2, ptr);
+		uasm_i_lw(p, pte, 0, ptr);
 	}
 # endif
 #endif
@@ -1475,18 +866,18 @@ iPTE_SW(u32 **p, struct reloc **r, unsigned int pte, unsigned int ptr,
  * with it's original value.
  */
 static void __init
-build_pte_present(u32 **p, struct label **l, struct reloc **r,
+build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
 		  unsigned int pte, unsigned int ptr, enum label_id lid)
 {
-	i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
-	i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
-	il_bnez(p, r, pte, lid);
+	uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
+	uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
+	uasm_il_bnez(p, r, pte, lid);
 	iPTE_LW(p, l, pte, ptr);
 }
 
 /* Make PTE valid, store result in PTR. */
 static void __init
-build_make_valid(u32 **p, struct reloc **r, unsigned int pte,
+build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte,
 		 unsigned int ptr)
 {
 	unsigned int mode = _PAGE_VALID | _PAGE_ACCESSED;
@@ -1499,12 +890,12 @@ build_make_valid(u32 **p, struct reloc **r, unsigned int pte,
  * restore PTE with value from PTR when done.
  */
 static void __init
-build_pte_writable(u32 **p, struct label **l, struct reloc **r,
+build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
 		   unsigned int pte, unsigned int ptr, enum label_id lid)
 {
-	i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_WRITE);
-	i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_WRITE);
-	il_bnez(p, r, pte, lid);
+	uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_WRITE);
+	uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_WRITE);
+	uasm_il_bnez(p, r, pte, lid);
 	iPTE_LW(p, l, pte, ptr);
 }
 
@@ -1512,7 +903,7 @@ build_pte_writable(u32 **p, struct label **l, struct reloc **r,
  * at PTR.
  */
 static void __init
-build_make_write(u32 **p, struct reloc **r, unsigned int pte,
+build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte,
 		 unsigned int ptr)
 {
 	unsigned int mode = (_PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID
@@ -1526,11 +917,11 @@ build_make_write(u32 **p, struct reloc **r, unsigned int pte,
  * restore PTE with value from PTR when done.
  */
 static void __init
-build_pte_modifiable(u32 **p, struct label **l, struct reloc **r,
+build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
 		     unsigned int pte, unsigned int ptr, enum label_id lid)
 {
-	i_andi(p, pte, pte, _PAGE_WRITE);
-	il_beqz(p, r, pte, lid);
+	uasm_i_andi(p, pte, pte, _PAGE_WRITE);
+	uasm_il_beqz(p, r, pte, lid);
 	iPTE_LW(p, l, pte, ptr);
 }
 
@@ -1545,11 +936,11 @@ build_pte_modifiable(u32 **p, struct label **l, struct reloc **r,
 static void __init
 build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp)
 {
-	i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
-	i_mfc0(p, tmp, C0_EPC); /* cp0 delay */
-	i_tlbwi(p);
-	i_jr(p, tmp);
-	i_rfe(p); /* branch delay */
+	uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
+	uasm_i_mfc0(p, tmp, C0_EPC); /* cp0 delay */
+	uasm_i_tlbwi(p);
+	uasm_i_jr(p, tmp);
+	uasm_i_rfe(p); /* branch delay */
 }
 
 /*
@@ -1559,20 +950,21 @@ build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp)
  * kseg2 access, i.e. without refill.  Then it returns.
  */
 static void __init
-build_r3000_tlb_reload_write(u32 **p, struct label **l, struct reloc **r,
-			     unsigned int pte, unsigned int tmp)
-{
-	i_mfc0(p, tmp, C0_INDEX);
-	i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
-	il_bltz(p, r, tmp, label_r3000_write_probe_fail); /* cp0 delay */
-	i_mfc0(p, tmp, C0_EPC); /* branch delay */
-	i_tlbwi(p); /* cp0 delay */
-	i_jr(p, tmp);
-	i_rfe(p); /* branch delay */
-	l_r3000_write_probe_fail(l, *p);
-	i_tlbwr(p); /* cp0 delay */
-	i_jr(p, tmp);
-	i_rfe(p); /* branch delay */
+build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l,
+			     struct uasm_reloc **r, unsigned int pte,
+			     unsigned int tmp)
+{
+	uasm_i_mfc0(p, tmp, C0_INDEX);
+	uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
+	uasm_il_bltz(p, r, tmp, label_r3000_write_probe_fail); /* cp0 delay */
+	uasm_i_mfc0(p, tmp, C0_EPC); /* branch delay */
+	uasm_i_tlbwi(p); /* cp0 delay */
+	uasm_i_jr(p, tmp);
+	uasm_i_rfe(p); /* branch delay */
+	uasm_l_r3000_write_probe_fail(l, *p);
+	uasm_i_tlbwr(p); /* cp0 delay */
+	uasm_i_jr(p, tmp);
+	uasm_i_rfe(p); /* branch delay */
 }
 
 static void __init
@@ -1581,25 +973,25 @@ build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte,
 {
 	long pgdc = (long)pgd_current;
 
-	i_mfc0(p, pte, C0_BADVADDR);
-	i_lui(p, ptr, rel_hi(pgdc)); /* cp0 delay */
-	i_lw(p, ptr, rel_lo(pgdc), ptr);
-	i_srl(p, pte, pte, 22); /* load delay */
-	i_sll(p, pte, pte, 2);
-	i_addu(p, ptr, ptr, pte);
-	i_mfc0(p, pte, C0_CONTEXT);
-	i_lw(p, ptr, 0, ptr); /* cp0 delay */
-	i_andi(p, pte, pte, 0xffc); /* load delay */
-	i_addu(p, ptr, ptr, pte);
-	i_lw(p, pte, 0, ptr);
-	i_tlbp(p); /* load delay */
+	uasm_i_mfc0(p, pte, C0_BADVADDR);
+	uasm_i_lui(p, ptr, uasm_rel_hi(pgdc)); /* cp0 delay */
+	uasm_i_lw(p, ptr, uasm_rel_lo(pgdc), ptr);
+	uasm_i_srl(p, pte, pte, 22); /* load delay */
+	uasm_i_sll(p, pte, pte, 2);
+	uasm_i_addu(p, ptr, ptr, pte);
+	uasm_i_mfc0(p, pte, C0_CONTEXT);
+	uasm_i_lw(p, ptr, 0, ptr); /* cp0 delay */
+	uasm_i_andi(p, pte, pte, 0xffc); /* load delay */
+	uasm_i_addu(p, ptr, ptr, pte);
+	uasm_i_lw(p, pte, 0, ptr);
+	uasm_i_tlbp(p); /* load delay */
 }
 
 static void __init build_r3000_tlb_load_handler(void)
 {
 	u32 *p = handle_tlbl;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbl, 0, sizeof(handle_tlbl));
@@ -1608,20 +1000,20 @@ static void __init build_r3000_tlb_load_handler(void)
 
 	build_r3000_tlbchange_handler_head(&p, K0, K1);
 	build_pte_present(&p, &l, &r, K0, K1, label_nopage_tlbl);
-	i_nop(&p); /* load delay */
+	uasm_i_nop(&p); /* load delay */
 	build_make_valid(&p, &r, K0, K1);
 	build_r3000_tlb_reload_write(&p, &l, &r, K0, K1);
 
-	l_nopage_tlbl(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_0 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbl(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_0 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbl) > FASTPATH_SIZE)
 		panic("TLB load handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB load handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbl));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB load handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbl));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -1633,8 +1025,8 @@ static void __init build_r3000_tlb_load_handler(void)
 static void __init build_r3000_tlb_store_handler(void)
 {
 	u32 *p = handle_tlbs;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbs, 0, sizeof(handle_tlbs));
@@ -1643,20 +1035,20 @@ static void __init build_r3000_tlb_store_handler(void)
 
 	build_r3000_tlbchange_handler_head(&p, K0, K1);
 	build_pte_writable(&p, &l, &r, K0, K1, label_nopage_tlbs);
-	i_nop(&p); /* load delay */
+	uasm_i_nop(&p); /* load delay */
 	build_make_write(&p, &r, K0, K1);
 	build_r3000_tlb_reload_write(&p, &l, &r, K0, K1);
 
-	l_nopage_tlbs(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbs(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbs) > FASTPATH_SIZE)
 		panic("TLB store handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB store handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbs));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB store handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbs));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -1668,8 +1060,8 @@ static void __init build_r3000_tlb_store_handler(void)
 static void __init build_r3000_tlb_modify_handler(void)
 {
 	u32 *p = handle_tlbm;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbm, 0, sizeof(handle_tlbm));
@@ -1678,20 +1070,20 @@ static void __init build_r3000_tlb_modify_handler(void)
 
 	build_r3000_tlbchange_handler_head(&p, K0, K1);
 	build_pte_modifiable(&p, &l, &r, K0, K1, label_nopage_tlbm);
-	i_nop(&p); /* load delay */
+	uasm_i_nop(&p); /* load delay */
 	build_make_write(&p, &r, K0, K1);
 	build_r3000_pte_reload_tlbwi(&p, K0, K1);
 
-	l_nopage_tlbm(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbm(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbm) > FASTPATH_SIZE)
 		panic("TLB modify handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB modify handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbm));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB modify handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbm));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -1704,8 +1096,8 @@ static void __init build_r3000_tlb_modify_handler(void)
  * R4000 style TLB load/store/modify handlers.
  */
 static void __init
-build_r4000_tlbchange_handler_head(u32 **p, struct label **l,
-				   struct reloc **r, unsigned int pte,
+build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l,
+				   struct uasm_reloc **r, unsigned int pte,
 				   unsigned int ptr)
 {
 #ifdef CONFIG_64BIT
@@ -1714,14 +1106,14 @@ build_r4000_tlbchange_handler_head(u32 **p, struct label **l,
 	build_get_pgde32(p, pte, ptr); /* get pgd in ptr */
 #endif
 
-	i_MFC0(p, pte, C0_BADVADDR);
-	i_LW(p, ptr, 0, ptr);
-	i_SRL(p, pte, pte, PAGE_SHIFT + PTE_ORDER - PTE_T_LOG2);
-	i_andi(p, pte, pte, (PTRS_PER_PTE - 1) << PTE_T_LOG2);
-	i_ADDU(p, ptr, ptr, pte);
+	UASM_i_MFC0(p, pte, C0_BADVADDR);
+	UASM_i_LW(p, ptr, 0, ptr);
+	UASM_i_SRL(p, pte, pte, PAGE_SHIFT + PTE_ORDER - PTE_T_LOG2);
+	uasm_i_andi(p, pte, pte, (PTRS_PER_PTE - 1) << PTE_T_LOG2);
+	UASM_i_ADDU(p, ptr, ptr, pte);
 
 #ifdef CONFIG_SMP
-	l_smp_pgtable_change(l, *p);
+	uasm_l_smp_pgtable_change(l, *p);
 # endif
 	iPTE_LW(p, l, pte, ptr); /* get even pte */
 	if (!m4kc_tlbp_war())
@@ -1729,16 +1121,16 @@ build_r4000_tlbchange_handler_head(u32 **p, struct label **l,
 }
 
 static void __init
-build_r4000_tlbchange_handler_tail(u32 **p, struct label **l,
-				   struct reloc **r, unsigned int tmp,
+build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l,
+				   struct uasm_reloc **r, unsigned int tmp,
 				   unsigned int ptr)
 {
-	i_ori(p, ptr, ptr, sizeof(pte_t));
-	i_xori(p, ptr, ptr, sizeof(pte_t));
+	uasm_i_ori(p, ptr, ptr, sizeof(pte_t));
+	uasm_i_xori(p, ptr, ptr, sizeof(pte_t));
 	build_update_entries(p, tmp, ptr);
 	build_tlb_write_entry(p, l, r, tlb_indexed);
-	l_leave(l, *p);
-	i_eret(p); /* return from trap */
+	uasm_l_leave(l, *p);
+	uasm_i_eret(p); /* return from trap */
 
 #ifdef CONFIG_64BIT
 	build_get_pgd_vmalloc64(p, l, r, tmp, ptr);
@@ -1748,8 +1140,8 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct label **l,
 static void __init build_r4000_tlb_load_handler(void)
 {
 	u32 *p = handle_tlbl;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbl, 0, sizeof(handle_tlbl));
@@ -1757,12 +1149,12 @@ static void __init build_r4000_tlb_load_handler(void)
 	memset(relocs, 0, sizeof(relocs));
 
 	if (bcm1250_m3_war()) {
-		i_MFC0(&p, K0, C0_BADVADDR);
-		i_MFC0(&p, K1, C0_ENTRYHI);
-		i_xor(&p, K0, K0, K1);
-		i_SRL(&p, K0, K0, PAGE_SHIFT + 1);
-		il_bnez(&p, &r, K0, label_leave);
-		/* No need for i_nop */
+		UASM_i_MFC0(&p, K0, C0_BADVADDR);
+		UASM_i_MFC0(&p, K1, C0_ENTRYHI);
+		uasm_i_xor(&p, K0, K0, K1);
+		UASM_i_SRL(&p, K0, K0, PAGE_SHIFT + 1);
+		uasm_il_bnez(&p, &r, K0, label_leave);
+		/* No need for uasm_i_nop */
 	}
 
 	build_r4000_tlbchange_handler_head(&p, &l, &r, K0, K1);
@@ -1772,16 +1164,16 @@ static void __init build_r4000_tlb_load_handler(void)
 	build_make_valid(&p, &r, K0, K1);
 	build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1);
 
-	l_nopage_tlbl(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_0 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbl(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_0 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbl) > FASTPATH_SIZE)
 		panic("TLB load handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB load handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbl));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB load handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbl));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -1793,8 +1185,8 @@ static void __init build_r4000_tlb_load_handler(void)
 static void __init build_r4000_tlb_store_handler(void)
 {
 	u32 *p = handle_tlbs;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbs, 0, sizeof(handle_tlbs));
@@ -1808,16 +1200,16 @@ static void __init build_r4000_tlb_store_handler(void)
 	build_make_write(&p, &r, K0, K1);
 	build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1);
 
-	l_nopage_tlbs(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbs(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbs) > FASTPATH_SIZE)
 		panic("TLB store handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB store handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbs));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB store handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbs));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
@@ -1829,8 +1221,8 @@ static void __init build_r4000_tlb_store_handler(void)
 static void __init build_r4000_tlb_modify_handler(void)
 {
 	u32 *p = handle_tlbm;
-	struct label *l = labels;
-	struct reloc *r = relocs;
+	struct uasm_label *l = labels;
+	struct uasm_reloc *r = relocs;
 	int i;
 
 	memset(handle_tlbm, 0, sizeof(handle_tlbm));
@@ -1845,16 +1237,16 @@ static void __init build_r4000_tlb_modify_handler(void)
 	build_make_write(&p, &r, K0, K1);
 	build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1);
 
-	l_nopage_tlbm(&l, p);
-	i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
-	i_nop(&p);
+	uasm_l_nopage_tlbm(&l, p);
+	uasm_i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff);
+	uasm_i_nop(&p);
 
 	if ((p - handle_tlbm) > FASTPATH_SIZE)
 		panic("TLB modify handler fastpath space exceeded");
 
-	resolve_relocs(relocs, labels);
-	pr_info("Synthesized TLB modify handler fastpath (%u instructions).\n",
-		(unsigned int)(p - handle_tlbm));
+	uasm_resolve_relocs(relocs, labels);
+	pr_debug("Wrote TLB modify handler fastpath (%u instructions).\n",
+		 (unsigned int)(p - handle_tlbm));
 
 	pr_debug("\t.set push\n");
 	pr_debug("\t.set noreorder\n");
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c
new file mode 100644
index 0000000..889176a
--- /dev/null
+++ b/arch/mips/mm/uasm.c
@@ -0,0 +1,566 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * A small micro-assembler. It is intentionally kept simple, does only
+ * support a subset of instructions, and does not try to hide pipeline
+ * effects like branch delay slots.
+ *
+ * Copyright (C) 2004,2005,2006,2008  Thiemo Seufer
+ * Copyright (C) 2005  Maciej W. Rozycki
+ * Copyright (C) 2006  Ralf Baechle (ralf@linux-mips.org)
+ */
+
+#include <stdarg.h>
+
+#include <linux/mm.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/init.h>
+
+#include <asm/inst.h>
+#include <asm/elf.h>
+
+#include "uasm.h"
+
+enum fields {
+	RS = 0x001,
+	RT = 0x002,
+	RD = 0x004,
+	RE = 0x008,
+	SIMM = 0x010,
+	UIMM = 0x020,
+	BIMM = 0x040,
+	JIMM = 0x080,
+	FUNC = 0x100,
+	SET = 0x200
+};
+
+#define OP_MASK		0x3f
+#define OP_SH		26
+#define RS_MASK		0x1f
+#define RS_SH		21
+#define RT_MASK		0x1f
+#define RT_SH		16
+#define RD_MASK		0x1f
+#define RD_SH		11
+#define RE_MASK		0x1f
+#define RE_SH		6
+#define IMM_MASK	0xffff
+#define IMM_SH		0
+#define JIMM_MASK	0x3ffffff
+#define JIMM_SH		0
+#define FUNC_MASK	0x3f
+#define FUNC_SH		0
+#define SET_MASK	0x7
+#define SET_SH		0
+
+enum opcode {
+	insn_invalid,
+	insn_addu, insn_addiu, insn_and, insn_andi, insn_beq,
+	insn_beql, insn_bgez, insn_bgezl, insn_bltz, insn_bltzl,
+	insn_bne, insn_daddu, insn_daddiu, insn_dmfc0, insn_dmtc0,
+	insn_dsll, insn_dsll32, insn_dsra, insn_dsrl, insn_dsrl32,
+	insn_dsubu, insn_eret, insn_j, insn_jal, insn_jr, insn_ld,
+	insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0, insn_mtc0,
+	insn_ori, insn_rfe, insn_sc, insn_scd, insn_sd, insn_sll,
+	insn_sra, insn_srl, insn_subu, insn_sw, insn_tlbp, insn_tlbwi,
+	insn_tlbwr, insn_xor, insn_xori
+};
+
+struct insn {
+	enum opcode opcode;
+	u32 match;
+	enum fields fields;
+};
+
+/* This macro sets the non-variable bits of an instruction. */
+#define M(a, b, c, d, e, f)					\
+	((a) << OP_SH						\
+	 | (b) << RS_SH						\
+	 | (c) << RT_SH						\
+	 | (d) << RD_SH						\
+	 | (e) << RE_SH						\
+	 | (f) << FUNC_SH)
+
+static __initdata struct insn insn_table[] = {
+	{ insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
+	{ insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD },
+	{ insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD },
+	{ insn_andi, M(andi_op, 0, 0, 0, 0, 0), RS | RT | UIMM },
+	{ insn_beq, M(beq_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
+	{ insn_beql, M(beql_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
+	{ insn_bgez, M(bcond_op, 0, bgez_op, 0, 0, 0), RS | BIMM },
+	{ insn_bgezl, M(bcond_op, 0, bgezl_op, 0, 0, 0), RS | BIMM },
+	{ insn_bltz, M(bcond_op, 0, bltz_op, 0, 0, 0), RS | BIMM },
+	{ insn_bltzl, M(bcond_op, 0, bltzl_op, 0, 0, 0), RS | BIMM },
+	{ insn_bne, M(bne_op, 0, 0, 0, 0, 0), RS | RT | BIMM },
+	{ insn_daddiu, M(daddiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
+	{ insn_daddu, M(spec_op, 0, 0, 0, 0, daddu_op), RS | RT | RD },
+	{ insn_dmfc0, M(cop0_op, dmfc_op, 0, 0, 0, 0), RT | RD | SET},
+	{ insn_dmtc0, M(cop0_op, dmtc_op, 0, 0, 0, 0), RT | RD | SET},
+	{ insn_dsll, M(spec_op, 0, 0, 0, 0, dsll_op), RT | RD | RE },
+	{ insn_dsll32, M(spec_op, 0, 0, 0, 0, dsll32_op), RT | RD | RE },
+	{ insn_dsra, M(spec_op, 0, 0, 0, 0, dsra_op), RT | RD | RE },
+	{ insn_dsrl, M(spec_op, 0, 0, 0, 0, dsrl_op), RT | RD | RE },
+	{ insn_dsrl32, M(spec_op, 0, 0, 0, 0, dsrl32_op), RT | RD | RE },
+	{ insn_dsubu, M(spec_op, 0, 0, 0, 0, dsubu_op), RS | RT | RD },
+	{ insn_eret,  M(cop0_op, cop_op, 0, 0, 0, eret_op),  0 },
+	{ insn_j,  M(j_op, 0, 0, 0, 0, 0),  JIMM },
+	{ insn_jal,  M(jal_op, 0, 0, 0, 0, 0),  JIMM },
+	{ insn_jr,  M(spec_op, 0, 0, 0, 0, jr_op),  RS },
+	{ insn_ld,  M(ld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_ll,  M(ll_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_lld,  M(lld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_lui,  M(lui_op, 0, 0, 0, 0, 0),  RT | SIMM },
+	{ insn_lw,  M(lw_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_mfc0,  M(cop0_op, mfc_op, 0, 0, 0, 0),  RT | RD | SET},
+	{ insn_mtc0,  M(cop0_op, mtc_op, 0, 0, 0, 0),  RT | RD | SET},
+	{ insn_ori,  M(ori_op, 0, 0, 0, 0, 0),  RS | RT | UIMM },
+	{ insn_rfe,  M(cop0_op, cop_op, 0, 0, 0, rfe_op),  0 },
+	{ insn_sc,  M(sc_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_scd,  M(scd_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_sd,  M(sd_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_sll,  M(spec_op, 0, 0, 0, 0, sll_op),  RT | RD | RE },
+	{ insn_sra,  M(spec_op, 0, 0, 0, 0, sra_op),  RT | RD | RE },
+	{ insn_srl,  M(spec_op, 0, 0, 0, 0, srl_op),  RT | RD | RE },
+	{ insn_subu,  M(spec_op, 0, 0, 0, 0, subu_op),  RS | RT | RD },
+	{ insn_sw,  M(sw_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+	{ insn_tlbp,  M(cop0_op, cop_op, 0, 0, 0, tlbp_op),  0 },
+	{ insn_tlbwi,  M(cop0_op, cop_op, 0, 0, 0, tlbwi_op),  0 },
+	{ insn_tlbwr,  M(cop0_op, cop_op, 0, 0, 0, tlbwr_op),  0 },
+	{ insn_xor,  M(spec_op, 0, 0, 0, 0, xor_op),  RS | RT | RD },
+	{ insn_xori,  M(xori_op, 0, 0, 0, 0, 0),  RS | RT | UIMM },
+	{ insn_invalid, 0, 0 }
+};
+
+#undef M
+
+static inline __init u32 build_rs(u32 arg)
+{
+	if (arg & ~RS_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return (arg & RS_MASK) << RS_SH;
+}
+
+static inline __init u32 build_rt(u32 arg)
+{
+	if (arg & ~RT_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return (arg & RT_MASK) << RT_SH;
+}
+
+static inline __init u32 build_rd(u32 arg)
+{
+	if (arg & ~RD_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return (arg & RD_MASK) << RD_SH;
+}
+
+static inline __init u32 build_re(u32 arg)
+{
+	if (arg & ~RE_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return (arg & RE_MASK) << RE_SH;
+}
+
+static inline __init u32 build_simm(s32 arg)
+{
+	if (arg > 0x7fff || arg < -0x8000)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return arg & 0xffff;
+}
+
+static inline __init u32 build_uimm(u32 arg)
+{
+	if (arg & ~IMM_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return arg & IMM_MASK;
+}
+
+static inline __init u32 build_bimm(s32 arg)
+{
+	if (arg > 0x1ffff || arg < -0x20000)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	if (arg & 0x3)
+		printk(KERN_WARNING "Invalid micro-assembler branch target\n");
+
+	return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff);
+}
+
+static inline __init u32 build_jimm(u32 arg)
+{
+	if (arg & ~((JIMM_MASK) << 2))
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return (arg >> 2) & JIMM_MASK;
+}
+
+static inline __init u32 build_func(u32 arg)
+{
+	if (arg & ~FUNC_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return arg & FUNC_MASK;
+}
+
+static inline __init u32 build_set(u32 arg)
+{
+	if (arg & ~SET_MASK)
+		printk(KERN_WARNING "Micro-assembler field overflow\n");
+
+	return arg & SET_MASK;
+}
+
+/*
+ * The order of opcode arguments is implicitly left to right,
+ * starting with RS and ending with FUNC or IMM.
+ */
+static void __init build_insn(u32 **buf, enum opcode opc, ...)
+{
+	struct insn *ip = NULL;
+	unsigned int i;
+	va_list ap;
+	u32 op;
+
+	for (i = 0; insn_table[i].opcode != insn_invalid; i++)
+		if (insn_table[i].opcode == opc) {
+			ip = &insn_table[i];
+			break;
+		}
+
+	if (!ip)
+		panic("Unsupported Micro-assembler instruction %d", opc);
+
+	op = ip->match;
+	va_start(ap, opc);
+	if (ip->fields & RS)
+		op |= build_rs(va_arg(ap, u32));
+	if (ip->fields & RT)
+		op |= build_rt(va_arg(ap, u32));
+	if (ip->fields & RD)
+		op |= build_rd(va_arg(ap, u32));
+	if (ip->fields & RE)
+		op |= build_re(va_arg(ap, u32));
+	if (ip->fields & SIMM)
+		op |= build_simm(va_arg(ap, s32));
+	if (ip->fields & UIMM)
+		op |= build_uimm(va_arg(ap, u32));
+	if (ip->fields & BIMM)
+		op |= build_bimm(va_arg(ap, s32));
+	if (ip->fields & JIMM)
+		op |= build_jimm(va_arg(ap, u32));
+	if (ip->fields & FUNC)
+		op |= build_func(va_arg(ap, u32));
+	if (ip->fields & SET)
+		op |= build_set(va_arg(ap, u32));
+	va_end(ap);
+
+	**buf = op;
+	(*buf)++;
+}
+
+#define I_u1u2u3(op)					\
+Ip_u1u2u3(op)						\
+{							\
+	build_insn(buf, insn##op, a, b, c);		\
+}
+
+#define I_u2u1u3(op)					\
+Ip_u2u1u3(op)						\
+{							\
+	build_insn(buf, insn##op, b, a, c);		\
+}
+
+#define I_u3u1u2(op)					\
+Ip_u3u1u2(op)						\
+{							\
+	build_insn(buf, insn##op, b, c, a);		\
+}
+
+#define I_u1u2s3(op)					\
+Ip_u1u2s3(op)						\
+{							\
+	build_insn(buf, insn##op, a, b, c);		\
+}
+
+#define I_u2s3u1(op)					\
+Ip_u2s3u1(op)						\
+{							\
+	build_insn(buf, insn##op, c, a, b);		\
+}
+
+#define I_u2u1s3(op)					\
+Ip_u2u1s3(op)						\
+{							\
+	build_insn(buf, insn##op, b, a, c);		\
+}
+
+#define I_u1u2(op)					\
+Ip_u1u2(op)						\
+{							\
+	build_insn(buf, insn##op, a, b);		\
+}
+
+#define I_u1s2(op)					\
+Ip_u1s2(op)						\
+{							\
+	build_insn(buf, insn##op, a, b);		\
+}
+
+#define I_u1(op)					\
+Ip_u1(op)						\
+{							\
+	build_insn(buf, insn##op, a);			\
+}
+
+#define I_0(op)						\
+Ip_0(op)						\
+{							\
+	build_insn(buf, insn##op);			\
+}
+
+I_u2u1s3(_addiu)
+I_u3u1u2(_addu)
+I_u2u1u3(_andi)
+I_u3u1u2(_and)
+I_u1u2s3(_beq)
+I_u1u2s3(_beql)
+I_u1s2(_bgez)
+I_u1s2(_bgezl)
+I_u1s2(_bltz)
+I_u1s2(_bltzl)
+I_u1u2s3(_bne)
+I_u1u2u3(_dmfc0)
+I_u1u2u3(_dmtc0)
+I_u2u1s3(_daddiu)
+I_u3u1u2(_daddu)
+I_u2u1u3(_dsll)
+I_u2u1u3(_dsll32)
+I_u2u1u3(_dsra)
+I_u2u1u3(_dsrl)
+I_u2u1u3(_dsrl32)
+I_u3u1u2(_dsubu)
+I_0(_eret)
+I_u1(_j)
+I_u1(_jal)
+I_u1(_jr)
+I_u2s3u1(_ld)
+I_u2s3u1(_ll)
+I_u2s3u1(_lld)
+I_u1s2(_lui)
+I_u2s3u1(_lw)
+I_u1u2u3(_mfc0)
+I_u1u2u3(_mtc0)
+I_u2u1u3(_ori)
+I_0(_rfe)
+I_u2s3u1(_sc)
+I_u2s3u1(_scd)
+I_u2s3u1(_sd)
+I_u2u1u3(_sll)
+I_u2u1u3(_sra)
+I_u2u1u3(_srl)
+I_u3u1u2(_subu)
+I_u2s3u1(_sw)
+I_0(_tlbp)
+I_0(_tlbwi)
+I_0(_tlbwr)
+I_u3u1u2(_xor)
+I_u2u1u3(_xori)
+
+/* Handle labels. */
+__init void uasm_build_label(struct uasm_label **lab, u32 *addr, int lid)
+{
+	(*lab)->addr = addr;
+	(*lab)->lab = lid;
+	(*lab)++;
+}
+
+#ifdef CONFIG_64BIT
+__init int uasm_in_compat_space_p(long addr)
+{
+	/* Is this address in 32bit compat space? */
+	return (((addr) & 0xffffffff00000000L) == 0xffffffff00000000L);
+}
+
+__init int uasm_rel_highest(long val)
+{
+	return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+__init int uasm_rel_higher(long val)
+{
+	return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000;
+}
+#endif
+
+__init int uasm_rel_hi(long val)
+{
+	return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+__init int uasm_rel_lo(long val)
+{
+	return ((val & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+__init void UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr)
+{
+#ifdef CONFIG_64BIT
+	if (!uasm_in_compat_space_p(addr)) {
+		uasm_i_lui(buf, rs, uasm_rel_highest(addr));
+		if (uasm_rel_higher(addr))
+			uasm_i_daddiu(buf, rs, rs, uasm_rel_higher(addr));
+		if (uasm_rel_hi(addr)) {
+			uasm_i_dsll(buf, rs, rs, 16);
+			uasm_i_daddiu(buf, rs, rs, uasm_rel_hi(addr));
+			uasm_i_dsll(buf, rs, rs, 16);
+		} else
+			uasm_i_dsll32(buf, rs, rs, 0);
+	} else
+#endif
+		uasm_i_lui(buf, rs, uasm_rel_hi(addr));
+}
+
+__init void UASM_i_LA(u32 **buf, unsigned int rs, long addr)
+{
+	UASM_i_LA_mostly(buf, rs, addr);
+	if (uasm_rel_lo(addr))
+		UASM_i_ADDIU(buf, rs, rs, uasm_rel_lo(addr));
+}
+
+/* Handle relocations. */
+__init void
+uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid)
+{
+	(*rel)->addr = addr;
+	(*rel)->type = R_MIPS_PC16;
+	(*rel)->lab = lid;
+	(*rel)++;
+}
+
+static inline void
+__resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
+{
+	long laddr = (long)lab->addr;
+	long raddr = (long)rel->addr;
+
+	switch (rel->type) {
+	case R_MIPS_PC16:
+		*rel->addr |= build_bimm(laddr - (raddr + 4));
+		break;
+
+	default:
+		panic("Unsupported Micro-assembler relocation %d",
+		      rel->type);
+	}
+}
+
+__init void
+uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
+{
+	struct uasm_label *l;
+
+	for (; rel->lab != UASM_LABEL_INVALID; rel++)
+		for (l = lab; l->lab != UASM_LABEL_INVALID; l++)
+			if (rel->lab == l->lab)
+				__resolve_relocs(rel, l);
+}
+
+__init void
+uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off)
+{
+	for (; rel->lab != UASM_LABEL_INVALID; rel++)
+		if (rel->addr >= first && rel->addr < end)
+			rel->addr += off;
+}
+
+__init void
+uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off)
+{
+	for (; lab->lab != UASM_LABEL_INVALID; lab++)
+		if (lab->addr >= first && lab->addr < end)
+			lab->addr += off;
+}
+
+__init void
+uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first,
+		  u32 *end, u32 *target)
+{
+	long off = (long)(target - first);
+
+	memcpy(target, first, (end - first) * sizeof(u32));
+
+	uasm_move_relocs(rel, first, end, off);
+	uasm_move_labels(lab, first, end, off);
+}
+
+__init int uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr)
+{
+	for (; rel->lab != UASM_LABEL_INVALID; rel++) {
+		if (rel->addr == addr
+		    && (rel->type == R_MIPS_PC16
+			|| rel->type == R_MIPS_26))
+			return 1;
+	}
+
+	return 0;
+}
+
+/* Convenience functions for labeled branches. */
+void __init
+uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_bltz(p, reg, 0);
+}
+
+void __init
+uasm_il_b(u32 **p, struct uasm_reloc **r, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_b(p, 0);
+}
+
+void __init
+uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_beqz(p, reg, 0);
+}
+
+void __init
+uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_beqzl(p, reg, 0);
+}
+
+void __init
+uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_bnez(p, reg, 0);
+}
+
+void __init
+uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_bgezl(p, reg, 0);
+}
+
+void __init
+uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
+{
+	uasm_r_mips_pc16(r, *p, lid);
+	uasm_i_bgez(p, reg, 0);
+}
diff --git a/arch/mips/mm/uasm.h b/arch/mips/mm/uasm.h
new file mode 100644
index 0000000..e0053b0
--- /dev/null
+++ b/arch/mips/mm/uasm.h
@@ -0,0 +1,192 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2004,2005,2006,2008  Thiemo Seufer
+ * Copyright (C) 2005  Maciej W. Rozycki
+ * Copyright (C) 2006  Ralf Baechle (ralf@linux-mips.org)
+ */
+
+#include <linux/types.h>
+
+#define Ip_u1u2u3(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
+
+#define Ip_u2u1u3(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
+
+#define Ip_u3u1u2(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
+
+#define Ip_u1u2s3(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c)
+
+#define Ip_u2s3u1(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c)
+
+#define Ip_u2u1s3(op)							\
+void __init								\
+uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c)
+
+#define Ip_u1u2(op)							\
+void __init uasm_i##op(u32 **buf, unsigned int a, unsigned int b)
+
+#define Ip_u1s2(op)							\
+void __init uasm_i##op(u32 **buf, unsigned int a, signed int b)
+
+#define Ip_u1(op) void __init uasm_i##op(u32 **buf, unsigned int a)
+
+#define Ip_0(op) void __init uasm_i##op(u32 **buf)
+
+Ip_u2u1s3(_addiu);
+Ip_u3u1u2(_addu);
+Ip_u2u1u3(_andi);
+Ip_u3u1u2(_and);
+Ip_u1u2s3(_beq);
+Ip_u1u2s3(_beql);
+Ip_u1s2(_bgez);
+Ip_u1s2(_bgezl);
+Ip_u1s2(_bltz);
+Ip_u1s2(_bltzl);
+Ip_u1u2s3(_bne);
+Ip_u1u2u3(_dmfc0);
+Ip_u1u2u3(_dmtc0);
+Ip_u2u1s3(_daddiu);
+Ip_u3u1u2(_daddu);
+Ip_u2u1u3(_dsll);
+Ip_u2u1u3(_dsll32);
+Ip_u2u1u3(_dsra);
+Ip_u2u1u3(_dsrl);
+Ip_u2u1u3(_dsrl32);
+Ip_u3u1u2(_dsubu);
+Ip_0(_eret);
+Ip_u1(_j);
+Ip_u1(_jal);
+Ip_u1(_jr);
+Ip_u2s3u1(_ld);
+Ip_u2s3u1(_ll);
+Ip_u2s3u1(_lld);
+Ip_u1s2(_lui);
+Ip_u2s3u1(_lw);
+Ip_u1u2u3(_mfc0);
+Ip_u1u2u3(_mtc0);
+Ip_u2u1u3(_ori);
+Ip_0(_rfe);
+Ip_u2s3u1(_sc);
+Ip_u2s3u1(_scd);
+Ip_u2s3u1(_sd);
+Ip_u2u1u3(_sll);
+Ip_u2u1u3(_sra);
+Ip_u2u1u3(_srl);
+Ip_u3u1u2(_subu);
+Ip_u2s3u1(_sw);
+Ip_0(_tlbp);
+Ip_0(_tlbwi);
+Ip_0(_tlbwr);
+Ip_u3u1u2(_xor);
+Ip_u2u1u3(_xori);
+
+/* Handle labels. */
+struct uasm_label {
+	u32 *addr;
+	int lab;
+};
+
+__init void uasm_build_label(struct uasm_label **lab, u32 *addr, int lid);
+#ifdef CONFIG_64BIT
+__init int uasm_in_compat_space_p(long addr);
+__init int uasm_rel_highest(long val);
+__init int uasm_rel_higher(long val);
+#endif
+__init int uasm_rel_hi(long val);
+__init int uasm_rel_lo(long val);
+__init void UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr);
+__init void UASM_i_LA(u32 **buf, unsigned int rs, long addr);
+
+#define UASM_L_LA(lb)							\
+static inline void uasm_l##lb(struct uasm_label **lab, u32 *addr)	\
+{									\
+	uasm_build_label(lab, addr, label##lb);				\
+}
+
+/* convenience macros for instructions */
+#ifdef CONFIG_64BIT
+# define UASM_i_LW(buf, rs, rt, off) uasm_i_ld(buf, rs, rt, off)
+# define UASM_i_SW(buf, rs, rt, off) uasm_i_sd(buf, rs, rt, off)
+# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh)
+# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh)
+# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh)
+# define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd)
+# define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd)
+# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_daddiu(buf, rs, rt, val)
+# define UASM_i_ADDU(buf, rs, rt, rd) uasm_i_daddu(buf, rs, rt, rd)
+# define UASM_i_SUBU(buf, rs, rt, rd) uasm_i_dsubu(buf, rs, rt, rd)
+# define UASM_i_LL(buf, rs, rt, off) uasm_i_lld(buf, rs, rt, off)
+# define UASM_i_SC(buf, rs, rt, off) uasm_i_scd(buf, rs, rt, off)
+#else
+# define UASM_i_LW(buf, rs, rt, off) uasm_i_lw(buf, rs, rt, off)
+# define UASM_i_SW(buf, rs, rt, off) uasm_i_sw(buf, rs, rt, off)
+# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh)
+# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh)
+# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh)
+# define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd)
+# define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd)
+# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_addiu(buf, rs, rt, val)
+# define UASM_i_ADDU(buf, rs, rt, rd) uasm_i_addu(buf, rs, rt, rd)
+# define UASM_i_SUBU(buf, rs, rt, rd) uasm_i_subu(buf, rs, rt, rd)
+# define UASM_i_LL(buf, rs, rt, off) uasm_i_ll(buf, rs, rt, off)
+# define UASM_i_SC(buf, rs, rt, off) uasm_i_sc(buf, rs, rt, off)
+#endif
+
+#define uasm_i_b(buf, off) uasm_i_beq(buf, 0, 0, off)
+#define uasm_i_beqz(buf, rs, off) uasm_i_beq(buf, rs, 0, off)
+#define uasm_i_beqzl(buf, rs, off) uasm_i_beql(buf, rs, 0, off)
+#define uasm_i_bnez(buf, rs, off) uasm_i_bne(buf, rs, 0, off)
+#define uasm_i_bnezl(buf, rs, off) uasm_i_bnel(buf, rs, 0, off)
+#define uasm_i_move(buf, a, b) UASM_i_ADDU(buf, a, 0, b)
+#define uasm_i_nop(buf) uasm_i_sll(buf, 0, 0, 0)
+#define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1)
+#define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3)
+
+/* Handle relocations. */
+struct uasm_reloc {
+	u32 *addr;
+	unsigned int type;
+	int lab;
+};
+
+/* This is zero so we can use zeroed label arrays. */
+#define UASM_LABEL_INVALID 0
+
+__init void uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid);
+__init void
+uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab);
+__init void
+uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off);
+__init void
+uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off);
+__init void
+uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first,
+		  u32 *end, u32 *target);
+__init int uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr);
+
+/* Convenience functions for labeled branches. */
+void __init
+uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
+void __init uasm_il_b(u32 **p, struct uasm_reloc **r, int lid);
+void __init
+uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
+void __init
+uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
+void __init
+uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
+void __init
+uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
+void __init
+uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);

             reply	other threads:[~2008-01-22  0:00 UTC|newest]

Thread overview: 1556+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-22  0:00 Thiemo Seufer [this message]
2008-01-28 17:51 ` your mail Ralf Baechle
2008-01-28 20:05   ` Split the micro-assembler from tlbex.c (was: Re: your mail) Thiemo Seufer
2008-01-28 22:53     ` Ralf Baechle
  -- strict thread matches above, loose matches on Subject: below --
2024-03-06 12:36 (No Subject) Emilis Kiškis
2024-02-08  3:34 Oliver Webb
2024-02-08  3:46 ` Lawrence Velázquez
2024-02-08  4:04   ` Oliver Webb
2024-02-08  4:09     ` Lawrence Velázquez
2024-01-31  3:37 John Moon
2023-10-11  6:29 martin
2023-08-31  4:52 youngbludproductions
2023-08-31  5:11 ` youngbludproductions
2023-05-13  8:12 [no subject] Beatrice Benson
2023-05-13  8:12 Beatrice Benson
2023-05-13  8:12 Beatrice Benson
2023-05-13  8:12 Beatrice Benson
2022-09-20 10:04 Marc Kleine-Budde
2022-09-21  7:07 ` (No Subject) john
2022-09-21 19:58   ` Marc Kleine-Budde
2022-09-23  7:37     ` john
2022-07-21 20:02 loggervicky69
2021-12-27 14:59 [PATCH v2 2/3] arm64: Support huge vmalloc mappings Kefeng Wang
2021-12-27 17:35 ` (No subject) William Kucharski
2021-12-27 17:35   ` William Kucharski
2021-12-27 17:35   ` William Kucharski
2021-12-28  1:36   ` Kefeng Wang
2021-12-28  1:36     ` Kefeng Wang
2021-12-28  1:36     ` Kefeng Wang
2021-08-08 20:46 (No Subject) Yadunandan Pillai
2021-06-22 16:20 Yassine Oudjana
2021-07-14 18:03 ` Rob Herring
2021-05-07 22:47 Nathan Ringo
2021-03-21 17:46 Caleb Connolly
2021-03-22 10:06 ` Dmitry Baryshkov
2020-05-19  9:57 [PATCH 8/8] mac80211: IBSS: send deauth when expiring inactive STAs linux-wireless
2020-05-22 18:18 ` (No Subject) hyperfekt
2020-05-19  9:29 (no subject) Vinod Koul
2020-02-26 11:57 Ville Syrjälä
2020-02-26 12:08 ` Linus Walleij
2020-02-26 14:34   ` Ville Syrjälä
2020-02-26 14:56     ` Linus Walleij
2020-02-26 15:08       ` Ville Syrjälä
2019-12-20 17:06 [PATCH v5 2/7] ASoC: tegra: Allow 24bit and 32bit samples Ben Dooks
2019-12-22 17:08 ` Dmitry Osipenko
2020-01-05  0:04   ` Ben Dooks
2020-01-05  1:48     ` Dmitry Osipenko
2020-01-05 10:53       ` Ben Dooks
2020-01-06 19:00         ` [Linux-kernel] " Ben Dooks
2020-01-07  1:39           ` Dmitry Osipenko
2020-01-23 19:38             ` [alsa-devel] " Ben Dooks
2020-01-24 16:50               ` Jon Hunter
2020-01-27 19:20                 ` Dmitry Osipenko
2020-01-28 12:13                   ` Mark Brown
2020-01-28 17:42                     ` Dmitry Osipenko
2020-01-28 18:19                       ` Jon Hunter
2020-01-29  0:17                         ` Dmitry Osipenko
2020-01-30  8:05                           ` Ben Dooks
2020-01-30  9:31                             ` (no subject) Clemens Ladisch
2020-01-30  9:39                               ` [alsa-devel] " Ben Dooks
2020-01-30 14:58                                 ` Clemens Ladisch
2020-01-31 10:50                                   ` Ben Dooks
2020-01-31 11:03                                     ` Clemens Ladisch
2019-11-05 16:34 Rob Clark
2019-10-18 15:54 (No subject) Lesia Kay Rivera
2019-09-30 15:50 Stephen K Jolley
2019-08-08  0:03 (no subject) Giuliano Zannetti - ART S.p.A.
2019-07-22 20:35 Sam Ravnborg
2019-07-14 22:31 Андрей Бохонов
2019-06-13  5:54 Ralf Beck
2019-06-13 15:51 ` Pierre-Louis Bossart
2019-06-13 19:19 ` Jaroslav Kysela
     [not found] <CABRndgyzXQaYpefcMEMt1ShbqVKaf9vLJOXaL2cgUZMik4=xxw@mail.gmail.com>
2019-06-13  4:06 ` Philippe Proulx
     [not found] ` <CAB4xu_0h-q6En3_hDODbKuXd1=4_e0car73pP8Cf=LNWMKjh_g@mail.gmail.com>
2019-06-13 12:20   ` Zvi Vered
     [not found]   ` <CABRndgwEg3wYLbyfobjxdEKd8O1dAu+B+PwS-0A5gxURjKj_WA@mail.gmail.com>
2019-06-13 15:38     ` Jonathan Rajotte-Julien
     [not found]     ` <20190613153823.GC972@joraj-alpa>
2019-06-14  4:30       ` Zvi Vered
2019-06-13  3:17 Zvi Vered
2019-05-22  8:53 [No Subject] Gardner, Tim
2019-05-22  8:53 Gardner, Tim
2019-05-22  8:53 Gardner, Tim
2019-05-22  8:53 Gardner, Tim
2019-05-22  5:51 Gardner, Tim
2019-05-22  5:41 Gardner, Tim
2019-05-22  5:41 Gardner, Tim
2019-05-22  4:27 Gardner, Tim
2019-05-22  2:09 Gardner, Tim
2019-05-08 14:14 (No subject) B, Karthik
2019-04-28  8:52 (No Subject) rodomar705
2019-04-03 19:09 (No subject) Mahesh Radhakrishnan
2019-03-08 15:14 Marija Stojanovska
2019-02-05 21:52 [PATCH] wpa_supplicant: Changed systemd template units Richard Purdie
2019-02-07 14:48 ` (No subject) Joshua DeWeese
2019-01-29 16:11 Antonio Santagiuliana
2019-01-29 17:41 ` Scott Rifenbark
2018-11-19 17:26 (no subject) Razvan Cojocaru
2018-11-19 17:34 ` Razvan Cojocaru
2018-11-03 17:13 (No subject) Ankit Navik
2018-10-04 16:10 Satya Sampangi
2018-10-04 13:29 Angelo Dureghello
2018-10-04 13:55 ` Burton, Ross
2018-10-04 15:00   ` Andrea Adami
2018-10-04 15:08   ` Angelo Dureghello
2018-09-15 15:47 (no subject) Arnd Bergmann
2018-09-02 17:42 (No subject) nishant poorswani
2018-08-16 21:21 Eric Ruei
2018-08-02  8:44 Nathan Rossi
2018-07-26 16:34 (no subject) Fritz Micheal.
2018-07-25  8:25 (No subject) Eyal Reizer
2018-07-24 20:55 Djordje Senicic
2018-07-23 12:28 William Delacre
2018-07-26 19:40 ` Mark Asselstine
2018-07-27 15:03   ` Mark Asselstine
2018-07-27 16:04     ` William Delacre
2018-07-27 16:16       ` Mark Asselstine
2018-07-27 16:25         ` William Delacre
2018-07-27 16:44           ` S. Lockwood-Childs
2018-07-27 16:42             ` William Delacre
2018-07-27 16:47               ` Mark Asselstine
2018-07-31 11:54             ` William Delacre
2018-07-31 14:30               ` Mark Asselstine
2018-07-31 18:46                 ` S. Lockwood-Childs
2018-07-31 22:34                   ` William Delacre
2018-07-06 14:42 (no subject) Christian König
2018-07-05 10:38 rosdi ablatiff
2018-06-15  8:48 Dani Camps
2018-06-06  8:05 (No subject) Parthiban Nallathambi
2018-05-22  6:52 Rahul jangra
2018-05-03 19:55 taborskikrzysztof
2018-04-25 10:51 jan vermaete
2018-04-25 17:33 ` Otavio Salvador
2018-04-26 17:17   ` jan vermaete
2018-04-26 17:44     ` Otavio Salvador
     [not found] <913813716.1318110.1522099057513.ref@mail.yahoo.com>
2018-03-26 21:17 ` Ruica Cristina
2018-03-26 22:10   ` Richard Purdie
2018-03-27  3:13     ` Stephano Cetola
2018-01-24 12:00 (no subject) twischer
2017-11-27 16:20 (No subject) Volker Vogelhuber
2017-11-26  0:22 (No Subject) n1had5
2017-11-26  0:25 ` Jason A. Donenfeld
2017-11-26  0:30   ` Jonathon Fernyhough
2017-11-15 15:29 (no subject) futurelieswithin
2017-08-25  5:16 Chao Gao
2017-08-17 15:13 <no subject> Bharath Krishna
2017-08-16 15:13 (no subject) Barr. Richard Williams
2017-08-16 14:57 Barr. Richard Williams
2017-07-28  5:27 Manonmani
2017-07-26 19:04 Raviprasad Gurikar
2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel
2017-07-20 20:36 ` (no subject) Heiko Stuebner
2017-07-20 20:32   ` Heiko Stuebner
2017-07-20 20:32   ` Heiko Stuebner
2017-06-19 14:57 (No subject) Мар'ян Пріцак
2017-06-19 19:01 ` Josef Holzmayr
2017-06-20  8:07   ` Tamtamis, Panagiotis
2017-06-20 14:07     ` Josef Holzmayr
2017-06-20 14:32       ` Tamtamis, Panagiotis
2017-06-20 14:55         ` Мар'ян Пріцак
2017-06-06 21:34 <no subject> Stephen  Bates
2017-05-30  5:19 (No subject) Андрей Кононов
2017-05-30 19:02 ` Petter Mabäcker
2017-05-31  5:40   ` Андрей Кононов
2017-05-07  1:33 [PATCH] openssh: Atomically generate host keys Joshua Watt
2017-05-09  2:24 ` (No subject) Joshua Watt
2017-04-06  0:06 Andrej Rode
2017-04-04 11:29 (no subject) Seraphime Kirkovski
2017-03-10  9:49 (No subject) Suneetha Lakshmi G
2017-03-09 10:32 (no subject) Felix Bruns
2017-02-27 18:12 Dmitry Rockosov
2017-03-06 10:48 ` George Dunlap
2017-02-21 14:58 anders
2017-02-17 17:17 dhara buch
2017-02-20 17:56 ` Dario Faggioli
2017-02-17 10:47 Norbert Manthey
2017-02-17 11:35 ` Andrew Cooper
2017-02-17  7:35 (No subject) Paulo Neves
2017-02-09 11:53 (no subject) anders
2017-01-25  9:38 <no subject> Sirisha Guduru
2017-01-16 16:28 (no subject) Tony Whittam
2017-01-13 10:46 [PATCH v3 4/8] x86: stop exporting msr-index.h to userland Nicolas Dichtel
2017-01-13 10:46 [PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel
2017-01-09 11:33 ` [PATCH v2 0/7] uapi: export all headers under uapi directories Arnd Bergmann
2017-01-13 10:46   ` [PATCH v3 0/8] " Nicolas Dichtel
2017-01-13 15:36     ` (no subject) David Howells
2017-01-13 15:36     ` David Howells
2017-01-13 15:43     ` David Howells
2017-01-13 15:43     ` David Howells
2017-01-13 15:43       ` David Howells
2017-01-09 10:49 (No subject) Rohit Jindal
2016-12-29  0:56 (no subject) Ronald Rojas
2017-01-04  1:10 ` Stefano Stabellini
2016-11-30 12:32 胡瑞桓
2016-11-28 17:18 Ronald Rojas
2016-11-11 16:16 [PATCH i-g-t v5 1/4] lib: add igt_dummyload Daniel Vetter
2016-11-14 18:24 ` (no subject) Abdiel Janulgue
2016-10-27  5:26 <no subject> Bharath Krishna
2016-09-20 18:12 (no subject) xerofoify
2016-07-22 10:35 (No subject) Amarnath Valluri
2016-07-19  8:34 (no subject) Alex Gershgorin
     [not found] ` <1DC01DCD0F70AE4284AE3A5E8C726E2240106236-6dhP19T7b9reAA7jXO2vED4kX+cae0hd@public.gmane.org>
2016-08-10 11:39   ` Jarkko Sakkinen
2016-07-16 11:51 姚 忠将
2016-07-12 12:27 (No subject) Julien CARBONNIER
2016-07-07  9:36 (no subject) George Dunlap
2016-07-07 11:03 ` Dario Faggioli
2016-07-07 12:48   ` George Dunlap
2016-07-07 15:42     ` Dario Faggioli
2016-10-31 10:33     ` Ian Jackson
2016-07-04 12:34 Brian Neu
2016-06-29  6:16 Jason Gunthorpe
2016-06-28 10:54 Xieyingtai
2016-05-26 12:04 Brian Neu
2016-05-19 14:34 Roger Pau Monné
2016-04-12 22:52 Nichole Neeley
2016-03-18 16:55 (No subject) Nagi Chitta Reddy
2016-03-19  2:19 ` Zhenhua Luo
2016-03-17 12:20 (no subject) Safa Hamza
2016-03-18 11:34 ` Safa Hamza
2016-02-25 12:38 Ayushi Arora
2016-02-23  0:55 (No subject) Joe MacDonald
2016-01-11  9:04 (no subject) Brian Neu
2016-01-07  5:34 (No subject) Baokang.Huang(黄宝亢)
2015-12-07 17:27 (no subject) Ian Jackson
     [not found] <CABRndgzjgufnXE7_0Erp=B2P-5j3w4nZFhShn8V5oqGxd8PPaw@mail.gmail.com>
2015-11-27  4:28 ` Philippe Proulx
2015-11-27  3:20 Zvi Vered
2015-08-07  6:30 Mr. Vincent Cheng
2015-08-05 13:27 [RFC PATCH v3.1 2/2] xsplice: Add hook for build_id Martin Pohlack
2015-08-05 14:06 ` (no subject) Martin Pohlack
2015-07-30 22:16 (No subject) Edward Vidal
2015-07-29 21:56 (no subject) Mr. Vincent Cheng
2015-07-14 15:24 (No subject) Alvaro Martinez Tovar
2015-07-15 10:59 ` Felipe Tonello
2015-07-14  5:56 Alvaro Martinez Tovar
2015-08-13 17:40 ` Khem Raj
2015-06-30 10:50 (no subject) E.Richiardone
2015-06-12 17:09 [PATCH 2/2] drm/i915: Rework order of operations in {__intel, logical}_ring_prepare() Dave Gordon
     [not found] ` <1433789441-8295-1-git-send-email-david.s.gordon@intel.com>
2015-06-12 17:09   ` [PATCH v2] Resolve issues with ringbuffer space management Dave Gordon
2015-06-12 20:25     ` (no subject) Dave Gordon
2015-06-17 11:04       ` Daniel Vetter
2015-06-17 12:41         ` Jani Nikula
2015-06-18 10:30         ` Dave Gordon
2015-06-10  5:30 (No subject) Sharath M.
2015-06-10 12:21 ` Daiane Angolini
     [not found] <CAG4vvd49JfNUgN9p9vW0bQXoRkBjER74zVbTAg-CmtETZeDn2Q@mail.gmail.com>
2015-05-14 21:14 ` (no subject) Simon Marchi
     [not found] ` <CAFXXi0kf0aWS7vS9m8HmdPoXR3RL=bjtaL_y+coR7T2npE=eWQ@mail.gmail.com>
2015-05-16 15:35   ` Alexandre Montplaisir
2015-05-14 19:33 Francis Rivest
2015-04-14 10:10 Mika Kahola
2015-03-08 19:00 (No subject) Rickard Bremer
2015-03-02 12:39 Raghavendra Kakarla
2015-01-09 12:32 Debasmita Lohar
2015-01-06 17:17 (no subject) Konrad Rzeszutek Wilk
2015-01-02  9:29 arivumani
2014-12-19  9:53 Minalkumar Patel
2014-12-19  9:59 ` Ian Campbell
2014-12-15 20:23 (No subject) Fabrício Lélis
2014-12-08 19:36 (no subject) dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-12-08 19:36 dev-bounces-VfR2kkLFssw
2014-11-14 16:40 Angelo Dureghello
2014-11-14 14:23 (No subject) Otavio Salvador
2014-11-09  1:18 (no subject) saulery
2014-09-22 15:10 Cleveland Finance
2014-09-20 22:12 Cleveland Finance
2014-09-13 15:24 asd
     [not found] ` <20140913182452.45609099-jrA/B3VWHiL2D7C+UIOg5A@public.gmane.org>
2014-09-13 15:32   ` Ilia Mirkin
     [not found]     ` <CAKb7UvgnwZAUq1GMcNJBmSyH3Me2=ooKhDOPrgAes6TCbHMBHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-13 15:39       ` Martin Peres
2014-09-03 12:19 US-ARMEE
2014-09-03 12:18 US-ARMEE
2014-08-15 12:56 arivumani
2014-08-07 12:34 (No subject) Modemtec Modemtec
2014-08-05 21:20 (no subject) James McCammond
2014-07-23 10:50 这是发件人姓名
2014-07-16  3:26 (No subject) Shan Hai
2014-07-11 14:54 Philip Balister
2014-07-12  4:55 ` Khem Raj
2014-07-02  6:50 Himanshu  Pandey
2014-06-25 18:28 Anand Moon
2014-05-30  4:05 Kashyap Gada
2014-05-27  9:36 hari prasad
2014-05-27  9:55 ` zhenhua.luo
2014-05-27 12:46 ` Otavio Salvador
2014-05-27 12:50   ` Daiane.Angolini
2014-05-26  4:36 hari prasad
2014-05-22 15:46 hari prasad
2014-05-22 16:05 ` Otavio Salvador
2014-05-23  6:07   ` zhenhua.luo
2014-05-18 19:54 hari prasad
2014-05-19  9:46 ` zhenhua.luo
2014-05-19 10:17   ` hari prasad
2014-05-19 10:29     ` zhenhua.luo
2014-05-03 16:50 (no subject) James McCammond
2014-02-13 23:47 Zir Blazer
2014-02-13 16:01 Simon Martin
2014-02-13 16:10 ` Andrew Cooper
2014-02-13 17:27   ` Don Slutz
2014-02-04 14:18 Валентин Сайков
     [not found] <CA+knAyLjni_imS1h=+==+Gqax9ZAQu0k5Wxi0ztjph_J=LZJWw@mail.gmail.com>
2014-01-22  2:30 ` Suchakrapani Datt Sharma
2014-01-22 13:39 ` Simon Marchi
     [not found] ` <CAFXXi0=xW=2CKSgcJuRZCx3MzTE-_gtxEm+kM+cM1LFWcHu=Wg@mail.gmail.com>
2014-01-22 20:01   ` Mehran Khan
2014-01-21 23:34 Mehran Khan
2014-01-21 16:38 [PATCH] drm/i915: (VLV2) Fix the hotplug detection bits Todd Previte
2014-01-23  4:22 ` (no subject) Todd Previte
2013-12-31 15:15 Konrad Rzeszutek Wilk
2013-12-30  2:29 Oravil Nair
2014-01-07  7:32 ` Daniel Vetter
2013-12-17 18:35 Ian Jackson
2013-12-18 11:19 ` George Dunlap
2013-12-18 13:35   ` Ian Campbell
2014-01-07 13:55     ` Ian Campbell
2013-12-15  7:58 Adel Amani
2013-12-13 13:39 (No subject) Flanagan, Elizabeth
2013-11-23  2:09 (no subject) SANTANDER ASSET FINANCE PLC
2013-11-19 17:43 (No subject) Jacob Kroon
2013-11-19 18:30 ` Jacob Kroon
2013-11-13 19:02 (no subject) Jim Durand
2013-11-18 14:17 ` George Dunlap
2013-10-19 17:23 (No subject) Otavio Salvador
2013-10-08 14:19 João Henrique Freitas
2013-10-08 19:42 ` Denys Dmytriyenko
2013-10-01 14:24 "Kernel access of bad area" in kernel module Jack
2013-10-01 14:39 ` Anders Darander
2013-10-03  7:47   ` (No subject) Jack
2013-10-04 17:55     ` Anders Darander
2013-10-10  7:07       ` Jack
2013-09-13 16:59 (no subject) David Vrabel
2013-09-11  4:54 (No subject) arun kumar
2013-08-18 10:37 Andy Ng
2013-08-14  2:28 (no subject) yvxiang
2013-08-14  2:31 ` yvxiang
2013-08-14  2:57 ` agya naila
2013-08-05  8:38 Chih-Chung Chang
2013-07-31 15:07 (No subject) Joe MacDonald
2013-07-04 11:32 (no subject) Tim Deegan
2013-06-28 16:10 ` [PATCH 08/10] xen: arm: add scope to dsb and dmb macros Ian Campbell
2013-07-04 11:44   ` (no subject) Tim Deegan
2013-06-26 11:42 Divya Kapil
2013-06-26 11:54 ` Ian Campbell
2013-06-16 13:45 wei.liu2
2013-06-02 11:27 [No subject] Giovane
     [not found] <pull request for net: batman-adv 2013-05-21>
2013-05-21 19:53 ` (no subject) Antonio Quartulli
     [not found]   ` <1369166035-585-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org>
2013-05-21 19:56     ` Antonio Quartulli
2013-05-14 15:11 Feng Tang
2013-05-03  8:48 Lars Kurth
2013-04-21 22:26 Lonnie Cumberland
     [not found] <CAHyyzzTtK+LbxOh2r_X0=Zd2FsTxoAiLLaWahv5FY-QZnQxhLQ@mail.gmail.com>
     [not found] ` <CAHyyzzSO0vY3LquDjXVAeV3U9sLnAY28+iADzsOLFkMGcJHLOQ@mail.gmail.com>
     [not found]   ` <CAHyyzzSDqmBNWmyRKFijei8YrJD5i40AJ9mcxxnme9CeCLZX2g@mail.gmail.com>
     [not found]     ` <CAHyyzzQcjzeWv-Z6SBOb8Ra0u6BOMzjKV3Ze482rMmMHkAMccw@mail.gmail.com>
     [not found]       ` <CAHyyzzQsh30y7-4M1xmJc+8p-EcqS0+jaibpTrXxTQi92iGDgw@mail.gmail.com>
2013-04-10 15:28         ` jacek burghardt
2013-04-10  6:57 Mina Jafari
     [not found] <CAEyVMbDjLwcDFrQ7y4UtGp7HOT1wi5MB2EWLGTuOdJCKDWsUew@mail.gmail.com>
2013-04-03 15:46 ` Daniel Vetter
2013-03-19  7:57 (No subject) Florin Cristian Dan
2013-03-15  7:40 (no subject) digvijay chauhan
2013-03-15  9:59 ` Ian Campbell
2013-03-15 11:18 ` Pasi Kärkkäinen
2013-03-06 14:55 (No subject) Tarek El-Sherbiny
2013-02-26 20:04 (no subject) pedro noticioso
2013-02-22 18:18 (No subject) Jeremy Stashluk
2013-02-12  0:14 Belisko Marek
2013-02-12  0:14 Belisko Marek
2013-02-12  7:37 ` Iorga, Cristian
2013-02-12  8:22   ` Andrei Gherzan
2013-01-23 15:12 Belal, Awais
2013-01-21 10:49 Mike Looijmans
2013-01-21 11:26 ` Richard Purdie
2013-01-18 23:13 Carrillodominguez Francisco Alberto-B35153
2013-01-18 23:23 ` Otavio Salvador
2013-01-18 23:24 ` Eric Bénard
2013-01-08 21:51 (no subject) Rushikesh Jadhav
2013-01-05 10:25 mnccsm-b2MIaZL8fbqsTnJN9+BGXg
2012-12-08  3:21 艾祝
2012-12-06  9:49 (No subject) Lukas Bulwahn
2012-11-27  8:45 GOPIKRISHNAN S
2012-11-27 17:02 ` McClintock Matthew-B29882
2012-11-28  7:22 ` Luo Zhenhua-B19537
2012-11-29  5:56   ` GOPIKRISHNAN S
2012-11-29  7:17     ` Luo Zhenhua-B19537
2013-03-01  6:00       ` McClintock Matthew-B29882
2012-11-19 20:39 (no subject) Stefan Priebe
2012-11-15 12:08 Tim Deegan
2012-11-15 23:04 ` Aravindh Puthiyaparambil
2013-04-22 21:56 ` Cutter 409
2013-04-23  8:49   ` Tim Deegan
2012-11-12  0:48 (No subject) Ilya Dmitrichenko
2012-10-12 13:00 (no subject) a1tmblwd
2012-10-05 11:48 ABN AMRO
2012-10-05 11:48 ` ABN AMRO
2012-09-19 14:53 Webmaster
2012-09-04 14:40 [GIT PULL] sound fixes for 3.6-rc5 Takashi Iwai
2012-09-06  6:02 ` Markus Trippelsdorf
2012-09-06  6:33   ` (no subject) Daniel Mack
2012-09-06  6:48     ` Takashi Iwai
2012-08-17 12:36 xuluqxulu
2012-08-05 19:48 (No subject) Javier Martinez Canillas
2012-08-06 14:59 ` Richard Purdie
2012-07-27 23:02 (no subject) lmw
2012-07-19 20:00 Olivier Galibert
2012-07-17 16:16 (No subject) Ross Burton
2012-07-14  4:16 (no subject) 张智
2012-07-19 10:24 ` Tim Deegan
2012-07-03 21:08 (No subject) Mikhail Boiko
2012-06-23 15:23 (no subject) sindu sindhu
2012-06-21 21:36 (No subject) Andreas Müller
2012-06-22  9:34 ` Henning Heinold
2012-05-31 18:00 (no subject) Muhammad Jamil
2012-05-07 20:13 sabah halif
2012-05-01  7:57 (No subject) Craig McQueen
2012-05-01 11:00 ` Radoslav Kolev
2012-04-15  6:09 (no subject) Lin Ming
2012-04-12  0:55 Rodrigo Vivi
2012-04-09 14:39 niamathullah sharief
2012-04-08  2:26 Muhammad Jamil
2012-04-05 18:26 Francisco Rocha
2012-04-05 19:36 ` Wei Huang
2012-04-05 20:17   ` Francisco Rocha
2012-04-05 20:27     ` Wei Huang
2012-04-05 20:43       ` Francisco Rocha
2012-04-06 14:53         ` Francisco Rocha
2012-04-06 14:51           ` Wei Huang
2012-04-06 15:02             ` Francisco Rocha
2012-04-06 15:14             ` Konrad Rzeszutek Wilk
2012-04-06 16:09               ` Francisco Rocha
2012-04-05  6:44 Muhammad Jamil
2012-04-03 18:25 Muhammad Jamil
2012-04-03 12:42 Muhammad Jamil
2012-02-24 18:54 Ian Jackson
2012-02-21 22:33 (No subject) Andrei Gherzan
2012-02-17 19:15 (no subject) Ian Jackson
2012-02-15 12:06 (No subject) Hauser, Wolfgang (external)
2011-11-05  1:45 (no subject) Tarak Ranjan
2011-10-20  0:17 Mikulas Patocka
2011-10-17  7:40 Paolo Bonzini
2011-10-17 17:05 ` Konrad Rzeszutek Wilk
2011-10-17 21:02   ` Ian Campbell
2011-10-18  7:13   ` Paolo Bonzini
2011-10-09 22:40 Maxim Levitsky
2011-10-06 13:11 Pratik shinde
2011-10-06 13:18 ` Andrew Cooper
2011-09-08 10:20 A S
2011-09-08 11:03 ` Clemens Ladisch
     [not found] <4a795deb3789430487146a8425c1c337@DLEE74.ent.ti.com>
2011-08-27  4:38 ` (No subject) Joel A Fernandes
2011-08-27  7:11   ` Koen Kooi
2011-08-27  3:26 Joel A Fernandes
2011-08-27  7:07 ` Koen Kooi
2011-07-27  8:33 (no subject) Grant McWilliams
2011-07-01  2:28 (No subject) Fan, WenhuaX
2011-06-21  3:39 (no subject) Attila Jecs
2011-06-21 13:20 ` Konrad Rzeszutek Wilk
2011-06-14 14:53 (No subject) Bruce Ashfield, Bruce Ashfield
2011-06-04 10:10 (no subject)  ©2011.Coca-Cola Great Britain 
2011-06-04  9:32  ©2011.Coca-Cola Great Britain 
2011-06-04  9:31  ©2011.Coca-Cola Great Britain 
2011-06-04  9:31  ©2011.Coca-Cola Great Britain 
2011-06-04  9:31 ` 
2011-06-04  9:31  ©2011.Coca-Cola Great Britain 
2011-06-04  9:31  ©2011.Coca-Cola Great Britain 
2011-06-04  9:30  ©2011.Coca-Cola Great Britain 
2011-06-04  9:30  ©2011.Coca-Cola Great Britain 
2011-06-04  9:30 
2011-06-04  9:21  ©2011.Coca-Cola Great Britain 
2011-06-04  9:20  ©2011.Coca-Cola Great Britain 
2011-05-27 19:12 Swastik Das
2011-05-25 18:38  ©2011.Coca-Cola Great Britain 
2011-05-25 18:38  ©2011.Coca-Cola Great Britain 
2011-05-25 18:38  ©2011.Coca-Cola Great Britain 
2011-05-25 18:38  ©2011.Coca-Cola Great Britain 
2011-05-25 18:36  ©2011.Coca-Cola Great Britain 
2011-05-25 18:36  ©2011.Coca-Cola Great Britain 
2011-05-01  7:56 Dan Carpenter
2011-05-01  8:02 ` Dan Carpenter
2011-04-28 18:33 [PATCH 0/2] safer reclocking take 2 Martin Peres
     [not found] ` <1304015622-5910-1-git-send-email-martin.peres-GANU6spQydw@public.gmane.org>
2011-04-30  0:17   ` (no subject) Martin Peres
2011-04-28  5:35 [PATCH 0/1] Resend:[Image-Creator]Make bitbake server type configurable (xmlrpc, none) Liping Ke
2011-04-28  5:35 ` (No subject) Liping Ke
2011-04-25  1:42 (no subject) Mr. Miaoqing Fang
2011-04-14 18:13 forcewake v4 (now with spinlock) Ben Widawsky
2011-04-14 18:13 ` (no subject) Ben Widawsky
2011-04-11  2:20 TONY KINGS
2011-04-11  2:18 TONY KINGS
2011-04-11  2:15 TONY KINGS
2011-04-11  2:08 TONY KINGS
2011-04-08 17:47 forcewake junk, RFC, RFT(test) Ben Widawsky
2011-04-09 20:26 ` forcewake junk, part2 Ben Widawsky
2011-04-09 20:26   ` (no subject) Ben Widawsky
2011-04-07 21:32 Jesse Barnes
2011-04-04  6:18 Novik, Alex
2011-03-20 22:27 Keshav Darak
2011-03-01 17:45 (No subject) Denis 'GNUtoo' Carikli
2011-03-01 18:25 ` Denis 'GNUtoo' Carikli
2011-03-01 14:02 (no subject) Javier Martin
2010-11-16 11:12 Ken Ash
2010-11-10 18:10 Russell Cattelan
2010-11-09  9:17 [PATCH] drm/i915/ringbuffer: set force wake bit before reading ring register Zou Nan hai
2010-11-09  9:17 ` Zou, Nanhai
2010-11-09 10:50   ` Chris Wilson
2010-11-10  0:36     ` Zou, Nanhai
2010-11-10  7:54       ` Chris Wilson
2010-11-10 18:47         ` Jesse Barnes
2010-11-17 22:52           ` (no subject) Thantry, Hariharan L
2010-10-16 23:39 RODNEY BINGHAM
2010-10-07  2:46 Mike Viau
2010-10-07 10:43 ` Stefano Stabellini
2010-10-07 13:43   ` George Shuklin
2010-10-07 14:21     ` Ian Campbell
2010-10-07 16:54       ` George Shuklin
2010-10-07 14:02 ` Ian Campbell
2010-10-06  3:28 Mrs. Habiba Miller
2010-09-13 19:47 [PATCH 00/25] treewide-next: Use static const char arrays Joe Perches
2010-09-14  9:14 ` (no subject) David Howells
2010-09-14  9:14   ` David Howells
2010-09-08  7:25 asim khan
2010-09-02 11:58 lode leroy
2010-09-02 13:17 ` BVK Chaitanya
2010-09-02 13:18   ` BVK Chaitanya
2010-08-24 13:15 Runtime power management during system resume Raj Kumar
2010-08-24 14:30 ` Alan Stern
2010-08-24 15:17   ` Raj Kumar
2010-08-25 13:27     ` Raj Kumar
2010-08-26 13:40       ` Raj Kumar
2010-09-18 11:49         ` (no subject) Raj Kumar
2010-07-29 10:44 (No subject) Soumya R
2010-07-16 13:40 (no subject) Tom H
2010-07-16  6:18 Ang Way Chuang
2010-07-01 10:19 (No subject) Soumya R
2010-07-01 19:04 ` Khem Raj
2010-07-02  2:50   ` Soumya R
2010-06-14 20:26 [PATCH 0/8] Fix gcc 4.6.0 set but not used warning messages Justin P. Mattock
2010-06-14 20:26 ` [PATCH 7/8]ieee1394/sdp2 Fix warning: variable 'unit_characteristics' set but not used Justin P. Mattock
2010-06-14 21:44   ` [PATCH] ieee1394: sbp2: remove unused code Stefan Richter
2010-06-14 22:35     ` Justin P. Mattock
2010-06-14 23:22       ` Stefan Richter
2010-06-15  0:08         ` (no subject) Stefan Richter
2010-06-12 11:46 (No subject) "Andreas Müller"
2010-06-10  5:56 Soumya R
2010-06-10  6:29 ` Frans Meulenbroeks
2010-06-08  8:22 Soumya R
2010-06-08 14:09 ` Khem Raj
2010-06-02  9:19 Soumya R
2010-06-02 15:41 ` Hodgson, Simon
2010-06-03  2:37   ` Soumya R
2010-06-03  5:10     ` Khem Raj
2010-06-03  8:24       ` Hodgson, Simon
2010-10-29 11:43         ` Nick Lee
2010-06-03 12:13       ` Soumya R
2010-06-03 12:59         ` Nicolas Ferre
2010-05-12 14:05 (no subject) carlopmart
2010-04-21  2:00 bgamari.foss
2010-04-16 10:59 Jiang, Yunhong
2010-04-13 14:38 Sascha Hauer
2010-03-01 14:46 (No subject) majo huber
2010-02-15 19:39 (no subject) "Alexander Jölly"
2010-02-20 11:06 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-01-23 10:54 (No subject) saleh usman
2010-01-20 19:47 (no subject) Ben Gamari
2010-01-21  0:04 ` Ben Dooks
2009-12-14 23:44 Mr Mou Xinsheng
2009-12-13 20:22 Darrell
2009-12-11  5:31 Mikulas Patocka
2009-11-17 15:34 Mike Snitzer
2009-11-11 15:38 Roger Cruz
2009-11-04 14:36 evgen
2009-10-28 23:23 Noah Watkins
2009-10-29  0:42 ` Sage Weil
2009-10-29  0:51   ` Noah Watkins
2009-10-29  0:55   ` Noah Watkins
2009-10-29  3:12     ` Sage Weil
2009-10-24 19:42 Vikram Dhillon
2009-10-09 21:47 Eads, Joshua Michael (S&T-Student)
     [not found] <87k4z79b9p.fsf_-_@twilight.int.mornfall.net>
2009-10-08  1:37 ` Dave Wysochanski
2009-10-03  5:02 debmail_5f63g
2009-09-22 11:46 Delusion's Master
2009-09-21 13:39 David Howells
2009-09-24 12:04 ` Robert Millan
2009-09-28 12:39 ` David Howells
2009-09-11 17:14 Hyundai
2009-09-11 17:10 Hyundai
2009-09-07 16:43 the uknl
2009-08-24 19:35 MRS SANDRA WHITE
2009-08-24 19:35 MRS SANDRA WHITE
2009-08-23 17:49 INFO
2009-08-21  0:08 Wy
2009-08-19 18:31 Uknl
2009-08-11 21:02 Chaithrika U S
2009-08-11 11:36 ` chaithrika
2009-08-03 13:18 (No subject) Gregory Machairidis
2009-08-03 10:14 (no subject) kell
2009-07-24 10:06 rulet1
2009-07-21 10:02 The Camelot Group
2009-07-17 12:02 UK
2009-07-17  4:17 CG LOTTO
2009-07-13 23:56 Camelot Group.
2009-07-10 21:36 The UKNL
2009-07-09  7:20 UKNL
2009-07-09  2:20 UKNL
2009-07-02 14:23 The British
2009-06-30  1:28 Mrs Dianne Thompson
2009-06-30  1:16 Mrs Dianne Thompson
2009-06-30  1:16 Mrs Dianne Thompson
2009-06-29 19:56 Uknl
2009-06-25 17:09 Robert Randall
2009-06-23 16:08 UNL
2009-06-23  2:55 UKL-DEPT
2009-06-22 15:09 IL
2009-06-22 11:26 Cgnlwin
2009-06-21 13:34 The Nat
2009-06-20  9:20 IL
2009-06-11 22:44 Rafael J. Wysocki
2009-06-11 21:48 Rafael J. Wysocki
2009-06-09 18:04 IL
2009-06-09  3:17 (No subject) Rolf Leggewie
2009-06-09  3:26 ` Rolf Leggewie
2009-06-09  3:29 ` Rolf Leggewie
2009-06-05 10:41 (no subject) Mike Brodbelt
2009-06-01 11:20 Mnl
2009-05-30  1:23 James Gardiner
2009-05-30  7:01 ` Takashi Iwai
2009-05-29 16:03 CG
2009-05-29 13:14 Camelot Uk
2009-05-29 11:53 Camelot Uk
2009-05-28  4:26 CL
2009-05-28  1:44 Cgnlwin
2009-05-26 18:10 Mnl
2009-05-26 11:35 Mnl
2009-05-25 23:57 Mnl
2009-05-25 18:02 IL
2009-05-23 18:14 Cgnlwin
2009-05-23 18:14 ` Cgnlwin
2009-05-23 13:28 Cgnlwin
2009-05-23 11:09 Mnl
2009-05-23 11:09 Mnl
2009-05-21 17:10 Arielton Gomes
2009-05-18 15:18 Mnl
2009-05-18 15:12 Mnl
2009-05-18 15:12 Mnl
2009-05-18 12:20 Mnl
2009-05-18 12:16 Mnl
2009-05-18 12:16 Mnl
2009-05-18  9:59 Mnl
2009-05-18  9:59 Mnl
2009-05-18  8:58 Mnl
2009-05-16  4:56 il
2009-05-15 14:29 il
2009-05-15 14:29 il
2009-05-09  1:50 IL
2009-03-27  6:56 xrun on sdp340 with small buffers Jarkko Nikula
2009-03-27 13:32 ` (no subject) Jarkko Nikula
2009-03-27 16:31   ` Mark Brown
2009-03-19 17:59 (No subject) Theodore A. Roth
2009-02-20 11:24 (no subject) Thomas Woerner
2009-01-23  6:45 Alexia Benington
2009-01-09 13:38 Sanjay Rao
2008-12-12  1:04 engage
2008-12-12  0:08 engage
2008-12-08 21:03 Paul L
     [not found] ` <856033f20812081303v12353110jf51704b81d2a760-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-12-09 11:20   ` Ryusuke Konishi
     [not found]     ` <20081209.202059.122418779.ryusuke-sG5X7nlA6pw@public.gmane.org>
2008-12-09 16:16       ` Paul L
     [not found]         ` <856033f20812090816l183c974dj9eed760b3deedb8c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-12-10  2:31           ` Ryusuke Konishi
2008-11-24 13:09 Nitin Mahajan
2008-11-20 13:10 Nitin Mahajan
2008-11-19 22:29 Bowen, Clair
2008-11-19 22:36 ` James Harper
2008-11-18 20:44 Oluf Svendson
2008-11-18 15:07 Oluf Svendson
2008-11-18  8:18 Bryan Wu
2008-11-18 11:45 ` (no subject) Mark Brown
2008-11-18  7:52 Bryan Wu
2008-11-17 23:24 Fernando Moro
2008-11-11  2:43 Yang, Libin
2008-11-11  8:17 ` Takashi Iwai
2008-10-14 15:28 Can Le
2008-10-14 12:16 Philippe CARRIERE
2008-10-13 10:51 Philippe CARRIERE
2008-10-13 14:28 ` Takashi Iwai
2008-10-14  9:54   ` Karsten Wiese
2008-10-14 10:41     ` Philippe Carriere
2008-10-14 11:29       ` Karsten Wiese
2009-01-27  0:16       ` Karsten Wiese
2009-01-29  8:35         ` Philippe Carriere
2008-10-10 12:27 Swapna Shingre
2008-09-30  2:17 Peter Leckie
2008-09-18  7:10 James Song
2008-09-13  1:02 Greg
2008-08-27 12:17 Fabian Ischia
2008-08-13  7:09 Franco Fichtner
2008-08-08 20:30 lisandro1
2008-08-04 10:57 toto eucup
2008-07-28 15:01 Ben Dooks
2008-07-12 22:31 Kevin Phair
2008-07-09 20:44 Jesper Krogh
2008-06-06 21:11 Dragos Ilie
2008-05-15  4:15 林先生
2008-05-03  4:01 林先生
2008-04-23 18:50 Jim Carter
2008-04-23 20:04 ` Jeff Moyer
2008-04-24  3:10   ` Ian Kent
2008-04-21 18:21 George Shammas
2008-04-19 21:53 钟文辉
2008-04-14  9:01 钟文辉
2008-04-14  8:55 钟文辉
2008-04-14  8:49 钟文辉
2008-04-13 14:24 钟文辉
2008-04-13 14:13 钟文辉
2008-04-13  6:20 钟文辉
2008-04-13  5:42 钟文辉
2008-04-09 22:40 钟文辉
2008-04-09 22:32 钟文辉
2008-04-06 12:47 [PATCH] x86: remove superfluous initialisation in boot code Alexander van Heukelum
2008-04-07  7:46 ` Ingo Molnar
2008-04-07  9:13   ` Alexander van Heukelum
2008-04-07 10:00     ` (no subject) zhenwenxu
2008-04-04 23:46 Clint Moore
2008-04-03 22:53 badguy development
2008-04-03  8:47 郝舜
2008-04-03  8:56 ` Clemens Ladisch
2008-03-31  9:59 钟文辉
2008-03-23 21:10 钟文辉
2008-03-23 19:49 钟文辉
2008-03-22 12:05 Sandipan Bhattacharjee
2008-03-10 14:36 (No subject) Lele
     [not found] <EC2127EFF67248B9B1F7F34B45F74E55@Main>
     [not found] ` <B84B1606A0264FA18CBE236F84E6CE96@Main>
2008-02-21 10:51   ` Ответы для Linux Format Serge A. Suchkov
2008-02-21 12:13     ` (no subject) Serge A. Suchkov
2008-02-01 18:14 veerasena reddy
2008-02-04  5:41 ` Ramgopal Kota
2008-01-16 18:38 Jed Davidow
2008-01-12 13:45 Abhishek Gupta
2008-01-12 14:55 ` Steve Grubb
2008-01-04 14:00 Cristian
2008-01-03  8:33 Awad, Sinan (GE Healthcare)
2008-01-03 10:34 ` (no subject) Misbah khan
2007-12-31  7:03 Ramesh R
2007-12-18  4:09 Yu Fei
2007-12-04 17:29 余上
2007-11-25  2:10 Thomas Bogendoerfer
2007-11-11 13:08 (unknown) Michael Dressel
2007-11-11 15:22 ` (no subject) Johannes Schindelin
2007-11-08 15:36 Willis
2007-11-02 16:21 Bill Tangren
2007-11-01 20:27 张先生
2007-10-31 20:59 immanuel lily
2007-10-26 21:38 『晴れたらいいね』
2007-10-19  3:44 Neil Brown
2007-10-09 20:03 蔡先生
2007-10-09 19:28 蔡先生
2007-10-09 17:05 蔡先生
2007-10-09 15:29 蔡先生
2007-10-09  6:59 Donna Lackey
2007-10-08 18:35 蔡先生
2007-10-08 18:29 蔡先生
2007-10-08 18:16 蔡先生
2007-10-08 17:06 蔡先生
2007-10-06 23:59 蔡先生
2007-10-06 19:30 蔡先生
2007-10-06 15:33 蔡先生
2007-10-06 10:34 蔡先生
2007-10-06 10:03 蔡先生
2007-10-06  9:53 蔡先生
2007-10-05 16:24 Aline Edmonds
2007-10-02 15:49 蔡先生
2007-10-02 14:33 蔡先生
2007-10-02  5:55 蔡先生
2007-09-22 14:05 蔡先生
2007-09-13  3:08 Dong, Eddie
2007-09-07 22:19 Jim Cromie
2007-09-06  5:57 Krzysztof Helt
2007-09-06 13:14 ` Takashi Iwai
2007-08-21 19:54 Melgar
2007-08-21 19:43 Joeann Moyini
2007-08-21 16:23 CeDarlyn Pellikka
2007-08-21 14:43 Springs
2007-08-21 11:54 tahir Laanemets
2007-08-21  9:51 shirlee Taruc
2007-08-21  0:01 holley
2007-08-20 19:08 Gmagm sssssssssssa
2007-08-18 17:02 Henning, Arthur C. (CSL)
2007-08-18 10:00 Guzman
2007-08-18  9:54 aanidi-CYedFwHYa5iBl8o7nT1L3dBPR1lH4CV8
2007-08-17 16:47 Krzysztof Helt
2007-08-13 13:48 Tony Lindgren
2007-08-13 13:58 ` Felipe Balbi
2007-08-12 19:59 Izik Eidus
     [not found] ` <64F9B87B6B770947A9F8391472E032160CBECF40-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-12 21:37   ` Anthony Liguori
2007-08-13  8:10     ` Avi Kivity
2007-08-14 10:38   ` Carsten Otte
2007-08-10  7:30 Reza schutter
2007-08-10  7:16 grikxd
2007-08-09 17:27 Harlan Kellis
2007-08-08 20:15 采购成本降低技巧及供应商管理
2007-08-07  4:23 Jean
2007-08-06 13:45 Piotr Kandziora
2007-08-02  7:24 Piotr Kandziora
2007-08-02 15:45 ` Jeff Layton
2007-08-02  0:08 Mahoney O.Becky
2007-07-30  7:24 Trujillo
2007-07-29 23:52 Hooper
2007-07-29 15:40 Vivien Gilmore
2007-07-29 10:02 Neville
2007-07-29  0:46 Smartschan
2007-07-28 23:39 Hendrickson L. Maggie
2007-07-28 23:39 Watkins S. Valentine
2007-07-28 10:24 White
2007-07-27 16:05 Agatha C. Walter
2007-07-27 11:17 Stacy Lilly
2007-07-27  7:35 Blanchard R. Tim
2007-07-27  4:03 Frederick
2007-07-26  9:27 Olive Crosby
2007-07-26  0:16 Carlton
2007-07-25 14:36 Eldridge
2007-07-24 14:42 Dennis
2007-07-24 14:41 Bella
     [not found] <FC1D1B23302A22499C60C967336B2AE00186B15C@pdsmsx411.ccr.corp.intel.com>
     [not found] ` <FC1D1B23302A22499C60C967336B2AE00186B15C-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-07-24 13:40   ` Shaohua Li
2007-07-24 10:54 Walter
2007-07-23 15:08 Riley
2007-07-23 15:08 Santiago
2007-07-21 23:57 Mathilda S. Corbett
2007-07-21  8:25 Joachim B.Byrne
2007-07-21  5:45 Sandy Holloway
2007-07-20 19:48 Cohen Micky
2007-07-20  8:13 Dong, Eddie
2007-07-20  8:11 Dong, Eddie
2007-07-20  4:13 Palmer
2007-07-18  7:02 Persy
2007-07-18  7:02 Gwendolyn
2007-07-18  4:09 Glenn
2007-07-17 22:39 Mark Levedahl
2007-07-16 13:20 Marshall
2007-07-16  9:48 Riccardo Bini
2007-07-16  0:06 Hull N.Flossie
2007-07-14 14:24 Cummings
2007-06-20  9:00 sun lu
2007-06-11 10:35 Gautham Kampalapur Shankar, TLS, Chennai
2007-06-11 10:53 ` pradeep singh rautela
2007-06-08  7:53 Nicklas Bondesson
2007-06-07 17:05 [PATCH] locks: provide a file lease method enabling cluster-coherent leases J. Bruce Fields
2007-06-08 22:14 ` (no subject) J. Bruce Fields
2007-06-05  0:32 Xyber Blue
2007-05-24 14:03 Kirkwood, David A.
2007-05-09  7:01 ashok.shanmugam
2007-04-24 16:25 Fabio Olive Leite
2007-04-20 22:13 paul moore
2007-04-20 22:13 ` paul moore
2007-04-20 23:32   ` Steve Grubb
2007-04-21  0:24     ` paul moore
2007-04-21  0:24       ` paul moore
2007-04-23 13:46         ` Steve Grubb
2007-04-16  6:10 xfwolf
2007-04-11 13:13 Jojo Keiser
2007-04-08 10:40 Maung Nadir Ali
2007-03-15 19:42 Kirkwood, David A.
2007-03-15 21:15 ` Bill Tangren
2007-03-09 12:28 Sutton O. Javelin
2007-03-09  6:48 Empty V. Crock
2007-03-08 16:58 Giggler S. Defeatist
2007-03-08  0:13 Arjuna H. Settlement
2007-03-07  8:58 Cutlasses M. Greek
2007-03-07  2:38 Flickering E. Sharps
2007-03-06 19:35 Rational K. Haggard
2007-03-06 15:57 Redeeming T. Angus
2007-02-28  0:11 Orient K. Underpinnings
2007-02-27  8:42 Depreciates F. Sum
2007-02-27  4:07 Whispers F. Charlie
2007-02-20  1:21 Dr.Friedrick Conway
2007-02-17 11:14 Dr.Hank Miles
2007-02-17  1:20 Dr.Aaron Barrera
2007-02-15 19:58 Nautilus S. Womb
2007-02-15 11:54 ddup1
2007-02-13 22:04 Dear Sir Madam
2007-02-01  9:19 ddup1
2007-02-01  6:55 COM CYCL
2007-01-31 19:06 operators country
2007-01-30 19:51 Karsten Wiese
2007-01-31  9:22 ` Takashi Iwai
2007-01-26  7:29 orig
2007-01-25 20:50 Craig Van Tassle
2007-01-23  1:12 Establishes S. Adoption
2007-01-21 15:47 Maisie T. Deathblow
2007-01-12  3:00 Barracuda K. Bobbi
2007-01-10 10:53 Acid P. Hank
2007-01-10  3:03 Timezone D. Authenticity
2007-01-06  4:15 Lintel E. Late
2007-01-05 20:41 Princeton F. Aligns
2007-01-05 10:44 Wot V. Armband
     [not found] <JAMB7R$1E04724C7A33DA4578A20ADF8AC469B0@libero.it>
2006-12-21 15:03 ` Clemens Ladisch
2006-12-19  9:20 Niyanth, Venkata
2006-12-19 17:24 ` Tony Lindgren
2006-12-16 14:17 tardo2002
2006-12-18  9:53 ` Clemens Ladisch
2006-12-04  7:01 miki
2006-11-26  3:25 Glenn K. Transporting
2006-11-24 22:41 Generality O. Lifeblood
2006-11-24 10:44 Proponent V. Stepbrother
2006-11-24  4:07 Scrounger D. Aboded
2006-11-24  1:17 Profanation R. Meandering
2006-11-23 18:13 Groins O. Animation
2006-11-22  1:27 Variance P. Whirled
2006-11-21 13:26 Tim Edwards
2006-11-21 10:44 Tim Edwards
2006-11-21 10:54 ` Bernd Petrovitsch
2006-11-21  9:25 Tim Edwards
2006-11-21 10:13 ` Bernd Petrovitsch
2006-11-20  8:18 Tamil E. Turnoffs
2006-11-15 10:46 Doctor
2006-11-13 14:19 Doctor
2006-11-12 10:26 Rectums C. Palate
2006-11-12  6:26 Antonio Sampayo
2006-10-31 19:37 Isabel Decker
2006-10-30 10:40 Doctor
2006-10-30  2:57 Kaleb D. Tuimala
2006-10-30  2:45 Doctor
2006-10-28 22:25 Garbs H. Pecan
2006-10-28 19:35 ATA YAZILIM A.Þ.
2006-10-27 14:44 Skelhorn.RJC
2006-10-20 16:55 (Was Re: [Alsa-user] Poorly supported HDA intel) Ricardo Cerqueira
2006-10-20 17:16 ` Ricardo Cerqueira
2006-10-24 19:08   ` (no subject) Thierry Vignaud
2006-10-19  3:24 misato
2006-10-19  1:28 Thomas Sandquist
2006-10-18  6:57 James Templeton
2006-10-09 23:13 albox
2006-10-09 11:55 Timo Benk
2006-10-07 12:41 yuki
2006-10-04  1:18 miyuki
     [not found] <200609260011.28160.lucke@o2.pl>
2006-09-25 22:23 ` lucke
2006-09-16 12:15 yukihana
2006-09-16  9:11 Laurent CARON
2006-09-16  9:10 Laurent CARON
2006-09-14 11:02 Tim Kirk
2006-09-14 14:00 ` Dave Wysochanski
     [not found] ` <20060914134154.GC6045@jam.ts>
2006-09-14 22:05   ` Darrick J. Wong
2006-09-15 19:36     ` ted creedon
2006-09-11  3:38 qinping
2006-09-11  2:58 yukaridayo
2006-08-25 21:50 ashish gawarikar
2006-08-10  7:19 richard
2006-08-03  8:25 Franck Bui-Huu
2006-07-26 10:47 Bernd Schubert
2006-07-26 11:43 ` Trond Myklebust
2006-07-17 14:44 Li, Xin B
2006-07-12 16:07 gary douglas
2006-07-14  9:55 ` Rob Sterenborg
2006-07-08 22:27 潘思广
2006-07-06 12:21 Jochen Maes
2006-07-05  8:39 Petronenko Denis
2006-06-27  3:26 Paulo Cordeiro
2006-06-22  8:46 legwpjv
2006-06-20 11:31 Abimanyu G
2006-06-17 12:56 cycrypxz
2006-06-15  5:07 icjoqtc
2006-06-10  5:03 Rita Bruce
2006-06-07 23:48 vineet chadha
2006-06-05 19:48 process starvation with 2.6 scheduler Kallol Biswas
2006-06-05 23:49 ` (no subject) Hack Sung Lee
2006-06-02 13:23 Kevin Tronkowski
2006-05-14 12:57 [No Subject] Arnulfo Titor
2006-05-05  1:37 (no subject) OcHe
2006-05-06 23:25 ` Eric Shattow
2006-05-10 17:26 ` Clemens Ladisch
2006-05-03 17:21 Kirkwood, David A
2006-05-03 17:31 ` Steve Grubb
2006-04-26  2:23 Nichole
2006-04-14 15:02 Javier Ruano
2006-04-14 15:28 ` Jan-Benedict Glaw
2006-04-15  5:47 ` Knut Petersen
2006-04-06 22:26 Nivedita Singhvi
2006-03-19 13:05 汇嘉宏
2006-03-14 14:27 Nick Dvoeglazov
2006-03-10 13:57 Selmeci, Tamas
2006-02-21 12:41 rasmit.ranjan
2006-02-14 14:02 Mark L. Wise
2006-02-10  8:55 Li, Xin B
2006-01-24  6:59 Yu, Luming
2006-01-18  6:49 Ian Kent
2006-01-18  6:48 Ian Kent
2006-01-18  6:48 Ian Kent
2006-01-18  6:48 Ian Kent
2006-01-18  6:48 Ian Kent
2006-01-17 21:37 Jonas Lihnell
2006-01-17 21:41 ` Trond Myklebust
2006-01-17 22:18   ` Jonas Lihnell
2006-01-10 17:13 Nicolas Turro
2006-01-11 15:08 ` Amitabh Kant
2006-01-10 13:24 Daniel Mack
2006-01-10 17:07 ` Takashi Iwai
2006-01-10 19:12   ` Clemens Ladisch
2006-01-11 11:29     ` Daniel Mack
2006-01-07  4:16 Chaitanya Vinay Hazarey
2006-01-05 16:16 Pedro Venda
     [not found] <20051227010004.D4C7568950@ozlabs.org>
2005-12-27 15:29 ` siman
2005-12-16  2:30 093u2y8y83yg3
2005-12-09 14:18 VJlm
2005-12-08 13:23 YjXXXulPAVpSHgx
2005-12-07 13:41 8pvs2I
2005-12-07 10:44 Ramani Karuppiah
2005-12-05  4:32 polpolkim6677
2005-12-03 18:40 Otavio Salvador
2005-12-03 17:41 ikoey8y36vihioyt
2005-11-30  5:56 [GIT PATCH] USB patches for 2.6.15-rc3 Greg KH
2005-11-30 18:23 ` Linus Torvalds
2005-11-30 19:35   ` Greg KH
2005-12-01  4:10     ` (no subject) Glenn L Shurson
2005-11-28 20:08 declarator
2005-11-19 22:44 Purav Saraiya
2005-11-18 16:05 Andi Kleen
2005-11-21 10:06 ` (no subject) Keir Fraser
2005-11-21 10:11   ` Russell King
2005-11-21 17:27   ` Andi Kleen
2005-11-14 21:58 Kyle Perkins
2005-11-02  1:02 Zhao Yu,SCNB R&D NNA(BJ)
2005-11-01  7:21 Zhao Yu,SCNB R&D NNA(BJ)
2005-11-01 12:17 ` Yoshinori K. Okuji
2005-10-31 11:11 Yasuyuki KOZAKAI
2005-11-01 17:47 ` Patrick McHardy
2005-10-20 16:05 Korolev, Alexey
2005-10-06  8:11 Amresh Kumar
2005-10-06  8:22 ` Vinod Chandran
2005-10-06  8:26 ` Rob Sterenborg
2005-10-04 12:24 Doug McLain
2005-10-03  1:00 Bob Brose
2005-10-03  7:07 ` Andreas Schwab
2005-10-02  2:59 Prashanth Radhakrishnan
2005-09-29  5:55 Li, Chengyuan
2005-09-27 13:53 ÏÄÓê 
2005-09-27 16:07 ` Wolfgang Denk
2005-09-23 19:07 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-24  0:28 ` Christian Limpach
2005-09-22 14:05 Heyman, Michael
2005-09-22 14:31 ` Henrik Nordstrom
2005-09-22 12:39 difference between syn and NEW Subramanian
2005-09-22 13:39 ` (no subject) Bernd Lippert
2005-09-21 20:49 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-21 18:35 Ryan Olejnik
2005-09-21 11:29 Heyman, Michael
2005-09-22  8:01 ` Henrik Nordstrom
2005-09-19 20:52 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 21:18 ` Christian Limpach
2005-09-19 19:20 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 19:58 ` Christian Limpach
2005-09-19 16:57 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 16:49 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 17:39 ` Christian Limpach
2005-09-19 15:29 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 16:09 ` Christian Limpach
2005-09-19 13:43 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 14:18 ` Christian Limpach
2005-09-19 14:30 ` Jerone Young
2005-09-19 15:34   ` Mark Williamson
2005-09-15 13:22 Konstantin Kletschke
2005-09-10 18:19 James Strickland
2005-08-30 13:21 Yasuyuki KOZAKAI
2005-08-24 22:15 netfilter
2005-08-24 22:40 ` Daniel Lopes
2005-08-25 11:55   ` Chris Notley
2005-08-15 13:44 d1187e7720r
2005-08-15 12:04 d1187e7720r
2005-08-15 10:34 q0960m0638o
2005-08-15  7:10 d1187e7720r
2005-08-13  3:52 y5834i4926v
2005-08-13  2:36 d1187e7720r
2005-08-12  0:40 seohai
2005-07-29  7:22 Armil
2005-07-23  4:50 Mr.Derrick Tanner.
2005-07-18 12:06 murasfdg sjhfsd
     [not found] <20050710124100.D643673691@tux.linux.ee>
2005-07-12 19:50 ` Kaupo Arulo
2005-07-10 12:40 樊亮
2005-07-05 22:54 Igor Feoktistov
2005-07-05 12:13 Brent Clark
2005-07-03  2:47 Amit Sharma
2005-07-03 12:04 ` Artem B. Bityuckiy
2005-06-29  6:21 董晓凡
2005-06-29 16:22 ` evilninja
2005-06-27 12:25 FLAMENT David
2005-06-26  3:26 Reiner Sailer
2005-06-21 14:48 David L
2005-06-20  7:08 dierbro
2005-06-16  8:03 faton kurteshi
2005-06-13 11:38 colui77
2005-05-24  9:17 root
2004-01-17 19:31 Joni Sawyer
2008-11-03  7:42 ` Jesse DeFer
2003-05-22 19:49 Curtis Lehman
2005-06-02 11:52 ` Rajat Jain
2005-06-05  7:21 ` shubhrangam
2002-07-04 11:11 Fabrice MARIE
2005-09-22 10:25 ` Amin Azez
2005-09-22 10:28   ` Samuel Liddicott

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080122000026.GN28842@networkno.de \
    --to=ths@networkno.de \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.