diff options
author | jkim <jkim@FreeBSD.org> | 2005-12-06 06:45:39 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2005-12-06 06:45:39 +0000 |
commit | 3bd9b70058745a5d299211ad4d016ee9e258a026 (patch) | |
tree | 85f5aacc8df917bf0c3b9dc7a02ab1e02cbe4d23 /sys/i386 | |
parent | 34bbe012ae7c4e2b43853c9436502ce7ac2bb33e (diff) | |
download | FreeBSD-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.c | 6 | ||||
-rw-r--r-- | sys/i386/i386/bpf_jit_machdep.h | 6 |
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_ */ |