Statistics
| Branch: | Revision:

root / target-i386 @ 8115f117

Name Size
Makefile.objs 394 Bytes
TODO 1 kB
arch_dump.c 12 kB
arch_memory_mapping.c 7.9 kB
cc_helper.c 8.9 kB
cc_helper_template.h 7 kB
cpu-qom.h 1.9 kB
cpu.c 75.2 kB
cpu.h 38 kB
excp_helper.c 4.1 kB
fpu_helper.c 29.8 kB
helper.c 40.8 kB
helper.h 7.2 kB
hyperv.c 1.2 kB
hyperv.h 1.2 kB
int_helper.c 10.4 kB
ioport-user.c 1.6 kB
kvm-stub.c 375 Bytes
kvm.c 66 kB
kvm_i386.h 1.3 kB
machine.c 15.2 kB
mem_helper.c 3.6 kB
misc_helper.c 15.1 kB
ops_sse.h 70.9 kB
ops_sse_header.h 12.5 kB
seg_helper.c 79.2 kB
shift_helper_template.h 2.8 kB
smm_helper.c 10.1 kB
svm.h 5.7 kB
svm_helper.c 26.7 kB
topology.h 4.8 kB
translate.c 261.7 kB

Latest revisions

# Date Author Comment
086c4077 02/19/2013 01:03 am Richard Henderson

target-i386: do not call helper to compute ZF/SF

ZF, SF and PF can always be computed from CC_DST except in the
CC_OP_EFLAGS case (and CC_OP_DYNAMIC, which just resolves to CC_OP_EFLAGS
in gen_compute_eflags). Use setcond to compute ZF and SF.

We could also use a table lookup to compute PF....

8115f117 02/19/2013 01:03 am Richard Henderson

target-i386: use inverted setcond when computing NS or NZ

Make gen_compute_eflags_z and gen_compute_eflags_s able to compute the
inverted condition, and use this in gen_setcc_slow_T0. We cannot do it
yet in gen_compute_eflags_c, but prepare the code for it anyway. It is...

fee71888 02/19/2013 01:03 am Richard Henderson

target-i386: Name the cc_op enumeration

Signed-off-by: Richard Henderson <>

3ca51d07 02/19/2013 01:03 am Richard Henderson

target-i386: Introduce set_cc_op

This will provide a good hook into which we can consolidate
all of the cc variable discards.

Signed-off-by: Richard Henderson <>

e207582f 02/19/2013 01:03 am Richard Henderson

target-i386: Don't clobber s->cc_op in gen_update_cc_op

Use a dirty flag to know whether env->cc_op is up to date,
rather than forcing s->cc_op to DYNAMIC and losing info.

Signed-off-by: Richard Henderson <>

773cdfcc 02/19/2013 01:03 am Richard Henderson

target-i386: Use gen_update_cc_op everywhere

All of the conditional calls to gen_op_set_cc_op go away, and
gen_op_set_cc_op itself gets inlined into its only remaining caller.

Signed-off-by: Richard Henderson <>

1608ecca 02/19/2013 01:03 am Paolo Bonzini

target-i386: add helper functions to get other flags

Introduce new functions to extract PF, SF, OF, ZF in addition to CF.
These provide single entry points for optimizing accesses to a single
flag.

Reviewed-by: Blue Swirl <>
Signed-off-by: Paolo Bonzini <>...

d229edce 02/19/2013 01:03 am Richard Henderson

target-i386: do not compute eflags multiple times consecutively

After calling gen_compute_eflags, leave the computed value in cc_reg_src
and set cc_op to CC_OP_EFLAGS. The next few patches will remove anyway
most calls to gen_compute_eflags.

As a result of this change it is more natural to remove the register...

ccfcdd09 02/19/2013 01:03 am Richard Henderson

target-i386: no need to flush out cc_op before gen_eob

This makes code more similar to the other callers of gen_eob, especially
loopz/loopnz/jcxz.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Richard Henderson <>

b666265b 02/19/2013 01:03 am Richard Henderson

target-i386: Move CC discards to set_cc_op

This gets us universal coverage, rather than scattering discards
around at various places. As a bonus, we do not emit redundant
discards e.g. between sequential logic insns.

Signed-off-by: Richard Henderson <>

View revisions

Also available in: Atom