mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-23 16:01:42 +00:00
Redude code for conditional jumps.
This commit is contained in:
parent
99e3ae6839
commit
730b3be34f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=307705
@ -425,75 +425,58 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, size_t *size)
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
TESTid(ins->k, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
TESTrd(EDX, EAX);
|
||||
JCC(JNE, JE);
|
||||
switch (ins->code) {
|
||||
case BPF_JMP|BPF_JGT|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_K:
|
||||
TESTid(ins->k, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_X:
|
||||
TESTrd(EDX, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case BPF_ALU|BPF_ADD|BPF_X:
|
||||
|
@ -446,75 +446,58 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, size_t *size)
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_K:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
TESTid(ins->k, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_X:
|
||||
if (ins->jt == ins->jf) {
|
||||
JUMP(ins->jt);
|
||||
break;
|
||||
}
|
||||
TESTrd(EDX, EAX);
|
||||
JCC(JNE, JE);
|
||||
switch (ins->code) {
|
||||
case BPF_JMP|BPF_JGT|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_K:
|
||||
CMPid(ins->k, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_K:
|
||||
TESTid(ins->k, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGT|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JA, JBE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JGE|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JAE, JB);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JEQ|BPF_X:
|
||||
CMPrd(EDX, EAX);
|
||||
JCC(JE, JNE);
|
||||
break;
|
||||
|
||||
case BPF_JMP|BPF_JSET|BPF_X:
|
||||
TESTrd(EDX, EAX);
|
||||
JCC(JNE, JE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case BPF_ALU|BPF_ADD|BPF_X:
|
||||
|
Loading…
Reference in New Issue
Block a user