Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[pandora-kernel.git] / arch / powerpc / include / asm / ppc-opcode.h
index e472659..e980faa 100644 (file)
 #define PPC_INST_ERATSX                        0x7c000126
 #define PPC_INST_ERATSX_DOT            0x7c000127
 
+/* Misc instructions for BPF compiler */
+#define PPC_INST_LD                    0xe8000000
+#define PPC_INST_LHZ                   0xa0000000
+#define PPC_INST_LWZ                   0x80000000
+#define PPC_INST_STD                   0xf8000000
+#define PPC_INST_STDU                  0xf8000001
+#define PPC_INST_MFLR                  0x7c0802a6
+#define PPC_INST_MTLR                  0x7c0803a6
+#define PPC_INST_CMPWI                 0x2c000000
+#define PPC_INST_CMPDI                 0x2c200000
+#define PPC_INST_CMPLW                 0x7c000040
+#define PPC_INST_CMPLWI                        0x28000000
+#define PPC_INST_ADDI                  0x38000000
+#define PPC_INST_ADDIS                 0x3c000000
+#define PPC_INST_ADD                   0x7c000214
+#define PPC_INST_SUB                   0x7c000050
+#define PPC_INST_BLR                   0x4e800020
+#define PPC_INST_BLRL                  0x4e800021
+#define PPC_INST_MULLW                 0x7c0001d6
+#define PPC_INST_MULHWU                        0x7c000016
+#define PPC_INST_MULLI                 0x1c000000
+#define PPC_INST_DIVWU                 0x7c0003d6
+#define PPC_INST_RLWINM                        0x54000000
+#define PPC_INST_RLDICR                        0x78000004
+#define PPC_INST_SLW                   0x7c000030
+#define PPC_INST_SRW                   0x7c000430
+#define PPC_INST_AND                   0x7c000038
+#define PPC_INST_ANDDOT                        0x7c000039
+#define PPC_INST_OR                    0x7c000378
+#define PPC_INST_ANDI                  0x70000000
+#define PPC_INST_ORI                   0x60000000
+#define PPC_INST_ORIS                  0x64000000
+#define PPC_INST_NEG                   0x7c0000d0
+#define PPC_INST_BRANCH                        0x48000000
+#define PPC_INST_BRANCH_COND           0x40800000
+
 /* macros to insert fields into opcodes */
 #define __PPC_RA(a)    (((a) & 0x1f) << 16)
 #define __PPC_RB(b)    (((b) & 0x1f) << 11)
 #define __PPC_T_TLB(t) (((t) & 0x3) << 21)
 #define __PPC_WC(w)    (((w) & 0x3) << 21)
 #define __PPC_WS(w)    (((w) & 0x1f) << 11)
+#define __PPC_SH(s)    __PPC_WS(s)
+#define __PPC_MB(s)    (((s) & 0x1f) << 6)
+#define __PPC_ME(s)    (((s) & 0x1f) << 1)
+#define __PPC_BI(s)    (((s) & 0x1f) << 16)
 
 /*
  * Only use the larx hint bit on 64bit CPUs. e500v1/v2 based CPUs will treat a