summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2005-12-06 06:45:39 +0000
committerjkim <jkim@FreeBSD.org>2005-12-06 06:45:39 +0000
commit3bd9b70058745a5d299211ad4d016ee9e258a026 (patch)
tree85f5aacc8df917bf0c3b9dc7a02ab1e02cbe4d23 /sys/i386
parent34bbe012ae7c4e2b43853c9436502ce7ac2bb33e (diff)
downloadFreeBSD-src-3bd9b70058745a5d299211ad4d016ee9e258a026.zip
FreeBSD-src-3bd9b70058745a5d299211ad4d016ee9e258a026.tar.gz
- Micro-optimize `mov $0, %edx' -> `xor %edx, %edx'.
- Correct amd64 macro style (no functional change).
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/bpf_jit_machdep.c6
-rw-r--r--sys/i386/i386/bpf_jit_machdep.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/sys/i386/i386/bpf_jit_machdep.c b/sys/i386/i386/bpf_jit_machdep.c
index 0de6196..ea101aa 100644
--- a/sys/i386/i386/bpf_jit_machdep.c
+++ b/sys/i386/i386/bpf_jit_machdep.c
@@ -260,7 +260,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem)
POP(ESI);
POP(EDI);
LEAVE_RET();
- MOVid(EDX, 0);
+ ZERO_EDX();
MOVobb(DL, EBX, ECX);
ANDib(DL, 0xf);
SHLib(EDX, 2);
@@ -398,7 +398,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem)
POP(EDI);
LEAVE_RET();
MOVrd(ECX, EDX);
- MOVid(EDX, 0);
+ ZERO_EDX();
DIVrd(ECX);
MOVrd(EDX, ECX);
break;
@@ -438,7 +438,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem)
case BPF_ALU|BPF_DIV|BPF_K:
MOVrd(ECX, EDX);
- MOVid(EDX, 0);
+ ZERO_EDX();
MOVid(ESI, ins->k);
DIVrd(ESI);
MOVrd(EDX, ECX);
diff --git a/sys/i386/i386/bpf_jit_machdep.h b/sys/i386/i386/bpf_jit_machdep.h
index 5f51938..42d34d4 100644
--- a/sys/i386/i386/bpf_jit_machdep.h
+++ b/sys/i386/i386/bpf_jit_machdep.h
@@ -395,4 +395,10 @@ typedef void (*emit_func)(bpf_bin_stream *stream, u_int value, u_int n);
emitm(&stream, 0xc0, 1); \
} while (0)
+/* xor edx,edx */
+#define ZERO_EDX() do { \
+ emitm(&stream, 0x31, 1); \
+ emitm(&stream, 0xc9, 1); \
+} while (0)
+
#endif /* _BPF_JIT_MACHDEP_H_ */
OpenPOWER on IntegriCloud