diff options
author | jkim <jkim@FreeBSD.org> | 2008-08-12 20:12:59 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2008-08-12 20:12:59 +0000 |
commit | 6872e8fc85deae982056048a9c87659bd50c3f83 (patch) | |
tree | f228997f79d0db57b7d0f8312fb8a7eb6dcc5232 /sys/i386 | |
parent | 5bf34e3e87fc944decb9cd18e97fe744117ac2f0 (diff) | |
download | FreeBSD-src-6872e8fc85deae982056048a9c87659bd50c3f83.zip FreeBSD-src-6872e8fc85deae982056048a9c87659bd50c3f83.tar.gz |
Reduce number of stack usages with unused %edi.
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/bpf_jit_machdep.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/i386/i386/bpf_jit_machdep.c b/sys/i386/i386/bpf_jit_machdep.c index 8d3142d..4a33464 100644 --- a/sys/i386/i386/bpf_jit_machdep.c +++ b/sys/i386/i386/bpf_jit_machdep.c @@ -137,6 +137,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) PUSH(ESI); PUSH(EBX); MOVodd(8, EBP, EBX); + MOVodd(16, EBP, EDI); for (i = 0; i < nins; i++) { stream.bpf_pc++; @@ -164,7 +165,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) MOVid(ins->k, ECX); MOVrd(ECX, ESI); ADDib(sizeof(int), ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(7); ZEROrd(EAX); POP(EBX); @@ -180,7 +181,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) MOVid(ins->k, ECX); MOVrd(ECX, ESI); ADDib(sizeof(short), ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(5); POP(EBX); POP(ESI); @@ -193,7 +194,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) case BPF_LD|BPF_B|BPF_ABS: ZEROrd(EAX); MOVid(ins->k, ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(5); POP(EBX); POP(ESI); @@ -215,7 +216,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) ADDrd(EDX, ECX); MOVrd(ECX, ESI); ADDib(sizeof(int), ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(7); ZEROrd(EAX); POP(EBX); @@ -232,7 +233,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) ADDrd(EDX, ECX); MOVrd(ECX, ESI); ADDib(sizeof(short), ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(5); POP(EBX); POP(ESI); @@ -246,7 +247,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) ZEROrd(EAX); MOVid(ins->k, ECX); ADDrd(EDX, ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(5); POP(EBX); POP(ESI); @@ -257,7 +258,7 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) case BPF_LDX|BPF_MSH|BPF_B: MOVid(ins->k, ECX); - CMPodd(0x10, EBP, ECX); + CMPrd(EDI, ECX); JLEb(7); ZEROrd(EAX); POP(EBX); |