Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
bpf_jit_32.h File Reference

Go to the source code of this file.

Macros

#define ARM_R0   0
 
#define ARM_R1   1
 
#define ARM_R2   2
 
#define ARM_R3   3
 
#define ARM_R4   4
 
#define ARM_R5   5
 
#define ARM_R6   6
 
#define ARM_R7   7
 
#define ARM_R8   8
 
#define ARM_R9   9
 
#define ARM_R10   10
 
#define ARM_FP   11
 
#define ARM_IP   12
 
#define ARM_SP   13
 
#define ARM_LR   14
 
#define ARM_PC   15
 
#define ARM_COND_EQ   0x0
 
#define ARM_COND_NE   0x1
 
#define ARM_COND_CS   0x2
 
#define ARM_COND_HS   ARM_COND_CS
 
#define ARM_COND_CC   0x3
 
#define ARM_COND_LO   ARM_COND_CC
 
#define ARM_COND_MI   0x4
 
#define ARM_COND_PL   0x5
 
#define ARM_COND_VS   0x6
 
#define ARM_COND_VC   0x7
 
#define ARM_COND_HI   0x8
 
#define ARM_COND_LS   0x9
 
#define ARM_COND_GE   0xa
 
#define ARM_COND_LT   0xb
 
#define ARM_COND_GT   0xc
 
#define ARM_COND_LE   0xd
 
#define ARM_COND_AL   0xe
 
#define SRTYPE_LSL   0
 
#define SRTYPE_LSR   1
 
#define SRTYPE_ASR   2
 
#define SRTYPE_ROR   3
 
#define ARM_INST_ADD_R   0x00800000
 
#define ARM_INST_ADD_I   0x02800000
 
#define ARM_INST_AND_R   0x00000000
 
#define ARM_INST_AND_I   0x02000000
 
#define ARM_INST_BIC_R   0x01c00000
 
#define ARM_INST_BIC_I   0x03c00000
 
#define ARM_INST_B   0x0a000000
 
#define ARM_INST_BX   0x012FFF10
 
#define ARM_INST_BLX_R   0x012fff30
 
#define ARM_INST_CMP_R   0x01500000
 
#define ARM_INST_CMP_I   0x03500000
 
#define ARM_INST_EOR_R   0x00200000
 
#define ARM_INST_LDRB_I   0x05d00000
 
#define ARM_INST_LDRB_R   0x07d00000
 
#define ARM_INST_LDRH_I   0x01d000b0
 
#define ARM_INST_LDR_I   0x05900000
 
#define ARM_INST_LDM   0x08900000
 
#define ARM_INST_LSL_I   0x01a00000
 
#define ARM_INST_LSL_R   0x01a00010
 
#define ARM_INST_LSR_I   0x01a00020
 
#define ARM_INST_LSR_R   0x01a00030
 
#define ARM_INST_MOV_R   0x01a00000
 
#define ARM_INST_MOV_I   0x03a00000
 
#define ARM_INST_MOVW   0x03000000
 
#define ARM_INST_MOVT   0x03400000
 
#define ARM_INST_MUL   0x00000090
 
#define ARM_INST_POP   0x08bd0000
 
#define ARM_INST_PUSH   0x092d0000
 
#define ARM_INST_ORR_R   0x01800000
 
#define ARM_INST_ORR_I   0x03800000
 
#define ARM_INST_REV   0x06bf0f30
 
#define ARM_INST_REV16   0x06bf0fb0
 
#define ARM_INST_RSB_I   0x02600000
 
#define ARM_INST_SUB_R   0x00400000
 
#define ARM_INST_SUB_I   0x02400000
 
#define ARM_INST_STR_I   0x05800000
 
#define ARM_INST_TST_R   0x01100000
 
#define ARM_INST_TST_I   0x03100000
 
#define ARM_INST_UDIV   0x0730f010
 
#define ARM_INST_UMULL   0x00800090
 
#define _AL3_R(op, rd, rn, rm)   ((op ## _R) | (rd) << 12 | (rn) << 16 | (rm))
 
#define _AL3_I(op, rd, rn, imm)   ((op ## _I) | (rd) << 12 | (rn) << 16 | (imm))
 
#define ARM_ADD_R(rd, rn, rm)   _AL3_R(ARM_INST_ADD, rd, rn, rm)
 
#define ARM_ADD_I(rd, rn, imm)   _AL3_I(ARM_INST_ADD, rd, rn, imm)
 
#define ARM_AND_R(rd, rn, rm)   _AL3_R(ARM_INST_AND, rd, rn, rm)
 
#define ARM_AND_I(rd, rn, imm)   _AL3_I(ARM_INST_AND, rd, rn, imm)
 
#define ARM_BIC_R(rd, rn, rm)   _AL3_R(ARM_INST_BIC, rd, rn, rm)
 
#define ARM_BIC_I(rd, rn, imm)   _AL3_I(ARM_INST_BIC, rd, rn, imm)
 
#define ARM_B(imm24)   (ARM_INST_B | ((imm24) & 0xffffff))
 
#define ARM_BX(rm)   (ARM_INST_BX | (rm))
 
#define ARM_BLX_R(rm)   (ARM_INST_BLX_R | (rm))
 
#define ARM_CMP_R(rn, rm)   _AL3_R(ARM_INST_CMP, 0, rn, rm)
 
#define ARM_CMP_I(rn, imm)   _AL3_I(ARM_INST_CMP, 0, rn, imm)
 
#define ARM_EOR_R(rd, rn, rm)   _AL3_R(ARM_INST_EOR, rd, rn, rm)
 
#define ARM_LDR_I(rt, rn, off)
 
#define ARM_LDRB_I(rt, rn, off)
 
#define ARM_LDRB_R(rt, rn, rm)
 
#define ARM_LDRH_I(rt, rn, off)
 
#define ARM_LDM(rn, regs)   (ARM_INST_LDM | (rn) << 16 | (regs))
 
#define ARM_LSL_R(rd, rn, rm)   (_AL3_R(ARM_INST_LSL, rd, 0, rn) | (rm) << 8)
 
#define ARM_LSL_I(rd, rn, imm)   (_AL3_I(ARM_INST_LSL, rd, 0, rn) | (imm) << 7)
 
#define ARM_LSR_R(rd, rn, rm)   (_AL3_R(ARM_INST_LSR, rd, 0, rn) | (rm) << 8)
 
#define ARM_LSR_I(rd, rn, imm)   (_AL3_I(ARM_INST_LSR, rd, 0, rn) | (imm) << 7)
 
#define ARM_MOV_R(rd, rm)   _AL3_R(ARM_INST_MOV, rd, 0, rm)
 
#define ARM_MOV_I(rd, imm)   _AL3_I(ARM_INST_MOV, rd, 0, imm)
 
#define ARM_MOVW(rd, imm)   (ARM_INST_MOVW | ((imm) >> 12) << 16 | (rd) << 12 | ((imm) & 0x0fff))
 
#define ARM_MOVT(rd, imm)   (ARM_INST_MOVT | ((imm) >> 12) << 16 | (rd) << 12 | ((imm) & 0x0fff))
 
#define ARM_MUL(rd, rm, rn)   (ARM_INST_MUL | (rd) << 16 | (rm) << 8 | (rn))
 
#define ARM_POP(regs)   (ARM_INST_POP | (regs))
 
#define ARM_PUSH(regs)   (ARM_INST_PUSH | (regs))
 
#define ARM_ORR_R(rd, rn, rm)   _AL3_R(ARM_INST_ORR, rd, rn, rm)
 
#define ARM_ORR_I(rd, rn, imm)   _AL3_I(ARM_INST_ORR, rd, rn, imm)
 
#define ARM_ORR_S(rd, rn, rm, type, rs)   (ARM_ORR_R(rd, rn, rm) | (type) << 5 | (rs) << 7)
 
#define ARM_REV(rd, rm)   (ARM_INST_REV | (rd) << 12 | (rm))
 
#define ARM_REV16(rd, rm)   (ARM_INST_REV16 | (rd) << 12 | (rm))
 
#define ARM_RSB_I(rd, rn, imm)   _AL3_I(ARM_INST_RSB, rd, rn, imm)
 
#define ARM_SUB_R(rd, rn, rm)   _AL3_R(ARM_INST_SUB, rd, rn, rm)
 
#define ARM_SUB_I(rd, rn, imm)   _AL3_I(ARM_INST_SUB, rd, rn, imm)
 
#define ARM_STR_I(rt, rn, off)
 
#define ARM_TST_R(rn, rm)   _AL3_R(ARM_INST_TST, 0, rn, rm)
 
#define ARM_TST_I(rn, imm)   _AL3_I(ARM_INST_TST, 0, rn, imm)
 
#define ARM_UDIV(rd, rn, rm)   (ARM_INST_UDIV | (rd) << 16 | (rn) | (rm) << 8)
 
#define ARM_UMULL(rd_lo, rd_hi, rn, rm)
 

Macro Definition Documentation

#define _AL3_I (   op,
  rd,
  rn,
  imm 
)    ((op ## _I) | (rd) << 12 | (rn) << 16 | (imm))

Definition at line 119 of file bpf_jit_32.h.

#define _AL3_R (   op,
  rd,
  rn,
  rm 
)    ((op ## _R) | (rd) << 12 | (rn) << 16 | (rm))

Definition at line 117 of file bpf_jit_32.h.

#define ARM_ADD_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_ADD, rd, rn, imm)

Definition at line 122 of file bpf_jit_32.h.

#define ARM_ADD_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_ADD, rd, rn, rm)

Definition at line 121 of file bpf_jit_32.h.

#define ARM_AND_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_AND, rd, rn, imm)

Definition at line 125 of file bpf_jit_32.h.

#define ARM_AND_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_AND, rd, rn, rm)

Definition at line 124 of file bpf_jit_32.h.

#define ARM_B (   imm24)    (ARM_INST_B | ((imm24) & 0xffffff))

Definition at line 130 of file bpf_jit_32.h.

#define ARM_BIC_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_BIC, rd, rn, imm)

Definition at line 128 of file bpf_jit_32.h.

#define ARM_BIC_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_BIC, rd, rn, rm)

Definition at line 127 of file bpf_jit_32.h.

#define ARM_BLX_R (   rm)    (ARM_INST_BLX_R | (rm))

Definition at line 132 of file bpf_jit_32.h.

#define ARM_BX (   rm)    (ARM_INST_BX | (rm))

Definition at line 131 of file bpf_jit_32.h.

#define ARM_CMP_I (   rn,
  imm 
)    _AL3_I(ARM_INST_CMP, 0, rn, imm)

Definition at line 135 of file bpf_jit_32.h.

#define ARM_CMP_R (   rn,
  rm 
)    _AL3_R(ARM_INST_CMP, 0, rn, rm)

Definition at line 134 of file bpf_jit_32.h.

#define ARM_COND_AL   0xe

Definition at line 47 of file bpf_jit_32.h.

#define ARM_COND_CC   0x3

Definition at line 35 of file bpf_jit_32.h.

#define ARM_COND_CS   0x2

Definition at line 33 of file bpf_jit_32.h.

#define ARM_COND_EQ   0x0

Definition at line 31 of file bpf_jit_32.h.

#define ARM_COND_GE   0xa

Definition at line 43 of file bpf_jit_32.h.

#define ARM_COND_GT   0xc

Definition at line 45 of file bpf_jit_32.h.

#define ARM_COND_HI   0x8

Definition at line 41 of file bpf_jit_32.h.

#define ARM_COND_HS   ARM_COND_CS

Definition at line 34 of file bpf_jit_32.h.

#define ARM_COND_LE   0xd

Definition at line 46 of file bpf_jit_32.h.

#define ARM_COND_LO   ARM_COND_CC

Definition at line 36 of file bpf_jit_32.h.

#define ARM_COND_LS   0x9

Definition at line 42 of file bpf_jit_32.h.

#define ARM_COND_LT   0xb

Definition at line 44 of file bpf_jit_32.h.

#define ARM_COND_MI   0x4

Definition at line 37 of file bpf_jit_32.h.

#define ARM_COND_NE   0x1

Definition at line 32 of file bpf_jit_32.h.

#define ARM_COND_PL   0x5

Definition at line 38 of file bpf_jit_32.h.

#define ARM_COND_VC   0x7

Definition at line 40 of file bpf_jit_32.h.

#define ARM_COND_VS   0x6

Definition at line 39 of file bpf_jit_32.h.

#define ARM_EOR_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_EOR, rd, rn, rm)

Definition at line 137 of file bpf_jit_32.h.

#define ARM_FP   11

Definition at line 25 of file bpf_jit_32.h.

#define ARM_INST_ADD_I   0x02800000

Definition at line 56 of file bpf_jit_32.h.

#define ARM_INST_ADD_R   0x00800000

Definition at line 55 of file bpf_jit_32.h.

#define ARM_INST_AND_I   0x02000000

Definition at line 59 of file bpf_jit_32.h.

#define ARM_INST_AND_R   0x00000000

Definition at line 58 of file bpf_jit_32.h.

#define ARM_INST_B   0x0a000000

Definition at line 64 of file bpf_jit_32.h.

#define ARM_INST_BIC_I   0x03c00000

Definition at line 62 of file bpf_jit_32.h.

#define ARM_INST_BIC_R   0x01c00000

Definition at line 61 of file bpf_jit_32.h.

#define ARM_INST_BLX_R   0x012fff30

Definition at line 66 of file bpf_jit_32.h.

#define ARM_INST_BX   0x012FFF10

Definition at line 65 of file bpf_jit_32.h.

#define ARM_INST_CMP_I   0x03500000

Definition at line 69 of file bpf_jit_32.h.

#define ARM_INST_CMP_R   0x01500000

Definition at line 68 of file bpf_jit_32.h.

#define ARM_INST_EOR_R   0x00200000

Definition at line 71 of file bpf_jit_32.h.

#define ARM_INST_LDM   0x08900000

Definition at line 78 of file bpf_jit_32.h.

#define ARM_INST_LDR_I   0x05900000

Definition at line 76 of file bpf_jit_32.h.

#define ARM_INST_LDRB_I   0x05d00000

Definition at line 73 of file bpf_jit_32.h.

#define ARM_INST_LDRB_R   0x07d00000

Definition at line 74 of file bpf_jit_32.h.

#define ARM_INST_LDRH_I   0x01d000b0

Definition at line 75 of file bpf_jit_32.h.

#define ARM_INST_LSL_I   0x01a00000

Definition at line 80 of file bpf_jit_32.h.

#define ARM_INST_LSL_R   0x01a00010

Definition at line 81 of file bpf_jit_32.h.

#define ARM_INST_LSR_I   0x01a00020

Definition at line 83 of file bpf_jit_32.h.

#define ARM_INST_LSR_R   0x01a00030

Definition at line 84 of file bpf_jit_32.h.

#define ARM_INST_MOV_I   0x03a00000

Definition at line 87 of file bpf_jit_32.h.

#define ARM_INST_MOV_R   0x01a00000

Definition at line 86 of file bpf_jit_32.h.

#define ARM_INST_MOVT   0x03400000

Definition at line 89 of file bpf_jit_32.h.

#define ARM_INST_MOVW   0x03000000

Definition at line 88 of file bpf_jit_32.h.

#define ARM_INST_MUL   0x00000090

Definition at line 91 of file bpf_jit_32.h.

#define ARM_INST_ORR_I   0x03800000

Definition at line 97 of file bpf_jit_32.h.

#define ARM_INST_ORR_R   0x01800000

Definition at line 96 of file bpf_jit_32.h.

#define ARM_INST_POP   0x08bd0000

Definition at line 93 of file bpf_jit_32.h.

#define ARM_INST_PUSH   0x092d0000

Definition at line 94 of file bpf_jit_32.h.

#define ARM_INST_REV   0x06bf0f30

Definition at line 99 of file bpf_jit_32.h.

#define ARM_INST_REV16   0x06bf0fb0

Definition at line 100 of file bpf_jit_32.h.

#define ARM_INST_RSB_I   0x02600000

Definition at line 102 of file bpf_jit_32.h.

#define ARM_INST_STR_I   0x05800000

Definition at line 107 of file bpf_jit_32.h.

#define ARM_INST_SUB_I   0x02400000

Definition at line 105 of file bpf_jit_32.h.

#define ARM_INST_SUB_R   0x00400000

Definition at line 104 of file bpf_jit_32.h.

#define ARM_INST_TST_I   0x03100000

Definition at line 110 of file bpf_jit_32.h.

#define ARM_INST_TST_R   0x01100000

Definition at line 109 of file bpf_jit_32.h.

#define ARM_INST_UDIV   0x0730f010

Definition at line 112 of file bpf_jit_32.h.

#define ARM_INST_UMULL   0x00800090

Definition at line 114 of file bpf_jit_32.h.

#define ARM_IP   12

Definition at line 26 of file bpf_jit_32.h.

#define ARM_LDM (   rn,
  regs 
)    (ARM_INST_LDM | (rn) << 16 | (regs))

Definition at line 148 of file bpf_jit_32.h.

#define ARM_LDR_I (   rt,
  rn,
  off 
)
Value:
(ARM_INST_LDR_I | (rt) << 12 | (rn) << 16 \
| (off))

Definition at line 139 of file bpf_jit_32.h.

#define ARM_LDRB_I (   rt,
  rn,
  off 
)
Value:
(ARM_INST_LDRB_I | (rt) << 12 | (rn) << 16 \
| (off))

Definition at line 141 of file bpf_jit_32.h.

#define ARM_LDRB_R (   rt,
  rn,
  rm 
)
Value:
(ARM_INST_LDRB_R | (rt) << 12 | (rn) << 16 \
| (rm))

Definition at line 143 of file bpf_jit_32.h.

#define ARM_LDRH_I (   rt,
  rn,
  off 
)
Value:
(ARM_INST_LDRH_I | (rt) << 12 | (rn) << 16 \
| (((off) & 0xf0) << 4) | ((off) & 0xf))

Definition at line 145 of file bpf_jit_32.h.

#define ARM_LR   14

Definition at line 28 of file bpf_jit_32.h.

#define ARM_LSL_I (   rd,
  rn,
  imm 
)    (_AL3_I(ARM_INST_LSL, rd, 0, rn) | (imm) << 7)

Definition at line 151 of file bpf_jit_32.h.

#define ARM_LSL_R (   rd,
  rn,
  rm 
)    (_AL3_R(ARM_INST_LSL, rd, 0, rn) | (rm) << 8)

Definition at line 150 of file bpf_jit_32.h.

#define ARM_LSR_I (   rd,
  rn,
  imm 
)    (_AL3_I(ARM_INST_LSR, rd, 0, rn) | (imm) << 7)

Definition at line 154 of file bpf_jit_32.h.

#define ARM_LSR_R (   rd,
  rn,
  rm 
)    (_AL3_R(ARM_INST_LSR, rd, 0, rn) | (rm) << 8)

Definition at line 153 of file bpf_jit_32.h.

#define ARM_MOV_I (   rd,
  imm 
)    _AL3_I(ARM_INST_MOV, rd, 0, imm)

Definition at line 157 of file bpf_jit_32.h.

#define ARM_MOV_R (   rd,
  rm 
)    _AL3_R(ARM_INST_MOV, rd, 0, rm)

Definition at line 156 of file bpf_jit_32.h.

#define ARM_MOVT (   rd,
  imm 
)    (ARM_INST_MOVT | ((imm) >> 12) << 16 | (rd) << 12 | ((imm) & 0x0fff))

Definition at line 162 of file bpf_jit_32.h.

#define ARM_MOVW (   rd,
  imm 
)    (ARM_INST_MOVW | ((imm) >> 12) << 16 | (rd) << 12 | ((imm) & 0x0fff))

Definition at line 159 of file bpf_jit_32.h.

#define ARM_MUL (   rd,
  rm,
  rn 
)    (ARM_INST_MUL | (rd) << 16 | (rm) << 8 | (rn))

Definition at line 165 of file bpf_jit_32.h.

#define ARM_ORR_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_ORR, rd, rn, imm)

Definition at line 171 of file bpf_jit_32.h.

#define ARM_ORR_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_ORR, rd, rn, rm)

Definition at line 170 of file bpf_jit_32.h.

#define ARM_ORR_S (   rd,
  rn,
  rm,
  type,
  rs 
)    (ARM_ORR_R(rd, rn, rm) | (type) << 5 | (rs) << 7)

Definition at line 172 of file bpf_jit_32.h.

#define ARM_PC   15

Definition at line 29 of file bpf_jit_32.h.

#define ARM_POP (   regs)    (ARM_INST_POP | (regs))

Definition at line 167 of file bpf_jit_32.h.

#define ARM_PUSH (   regs)    (ARM_INST_PUSH | (regs))

Definition at line 168 of file bpf_jit_32.h.

#define ARM_R0   0

Definition at line 14 of file bpf_jit_32.h.

#define ARM_R1   1

Definition at line 15 of file bpf_jit_32.h.

#define ARM_R10   10

Definition at line 24 of file bpf_jit_32.h.

#define ARM_R2   2

Definition at line 16 of file bpf_jit_32.h.

#define ARM_R3   3

Definition at line 17 of file bpf_jit_32.h.

#define ARM_R4   4

Definition at line 18 of file bpf_jit_32.h.

#define ARM_R5   5

Definition at line 19 of file bpf_jit_32.h.

#define ARM_R6   6

Definition at line 20 of file bpf_jit_32.h.

#define ARM_R7   7

Definition at line 21 of file bpf_jit_32.h.

#define ARM_R8   8

Definition at line 22 of file bpf_jit_32.h.

#define ARM_R9   9

Definition at line 23 of file bpf_jit_32.h.

#define ARM_REV (   rd,
  rm 
)    (ARM_INST_REV | (rd) << 12 | (rm))

Definition at line 175 of file bpf_jit_32.h.

#define ARM_REV16 (   rd,
  rm 
)    (ARM_INST_REV16 | (rd) << 12 | (rm))

Definition at line 176 of file bpf_jit_32.h.

#define ARM_RSB_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_RSB, rd, rn, imm)

Definition at line 178 of file bpf_jit_32.h.

#define ARM_SP   13

Definition at line 27 of file bpf_jit_32.h.

#define ARM_STR_I (   rt,
  rn,
  off 
)
Value:
(ARM_INST_STR_I | (rt) << 12 | (rn) << 16 \
| (off))

Definition at line 183 of file bpf_jit_32.h.

#define ARM_SUB_I (   rd,
  rn,
  imm 
)    _AL3_I(ARM_INST_SUB, rd, rn, imm)

Definition at line 181 of file bpf_jit_32.h.

#define ARM_SUB_R (   rd,
  rn,
  rm 
)    _AL3_R(ARM_INST_SUB, rd, rn, rm)

Definition at line 180 of file bpf_jit_32.h.

#define ARM_TST_I (   rn,
  imm 
)    _AL3_I(ARM_INST_TST, 0, rn, imm)

Definition at line 187 of file bpf_jit_32.h.

#define ARM_TST_R (   rn,
  rm 
)    _AL3_R(ARM_INST_TST, 0, rn, rm)

Definition at line 186 of file bpf_jit_32.h.

#define ARM_UDIV (   rd,
  rn,
  rm 
)    (ARM_INST_UDIV | (rd) << 16 | (rn) | (rm) << 8)

Definition at line 189 of file bpf_jit_32.h.

#define ARM_UMULL (   rd_lo,
  rd_hi,
  rn,
  rm 
)
Value:
(ARM_INST_UMULL | (rd_hi) << 16 \
| (rd_lo) << 12 | (rm) << 8 | rn)

Definition at line 191 of file bpf_jit_32.h.

#define SRTYPE_ASR   2

Definition at line 52 of file bpf_jit_32.h.

#define SRTYPE_LSL   0

Definition at line 50 of file bpf_jit_32.h.

#define SRTYPE_LSR   1

Definition at line 51 of file bpf_jit_32.h.

#define SRTYPE_ROR   3

Definition at line 53 of file bpf_jit_32.h.