* [Qemu-devel] performance of qemu
@ 2003-06-03 18:12 Johan Rydberg
2003-06-04 8:20 ` Fabrice Bellard
0 siblings, 1 reply; 5+ messages in thread
From: Johan Rydberg @ 2003-06-03 18:12 UTC (permalink / raw)
To: qemu-devel
Hi,
has anyone of you guys (Fabrice et al) done any performance measurements of
QEMU? I'm particular intrested in the performance of functions that
set the condition codes.
If I'm not mistaken, the condition codes is simulated using two values and
an operator specifying what type of insn that generated the condition codes.
When is the full eflags register generated? In the epilogue of a translated
block, or when ever an insn/callback reads the eflag register?
Is any optmization done in the case that two insns that kill the condition
codes? (example: two insns that kills the condition codes, but no insn between
them that uses it).
brgds,
Johan.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] performance of qemu
2003-06-03 18:12 [Qemu-devel] performance of qemu Johan Rydberg
@ 2003-06-04 8:20 ` Fabrice Bellard
2003-06-04 14:16 ` Johan Rydberg
0 siblings, 1 reply; 5+ messages in thread
From: Fabrice Bellard @ 2003-06-04 8:20 UTC (permalink / raw)
To: qemu-devel
Johan Rydberg wrote:
> Hi,
>
> has anyone of you guys (Fabrice et al) done any performance measurements of
> QEMU? I'm particular intrested in the performance of functions that
> set the condition codes.
I plan to publish soon some benchmarks against bochs and native execution.
> If I'm not mistaken, the condition codes is simulated using two values and
> an operator specifying what type of insn that generated the condition codes.
OK.
> When is the full eflags register generated? In the epilogue of a translated
> block, or when ever an insn/callback reads the eflag register?
Only when an instruction really needs the full eflags register (such as
pushf).
> Is any optmization done in the case that two insns that kill the condition
> codes? (example: two insns that kills the condition codes, but no insn between
> them that uses it).
Yes.
Fabrice.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] performance of qemu
2003-06-04 8:20 ` Fabrice Bellard
@ 2003-06-04 14:16 ` Johan Rydberg
2003-06-04 16:01 ` Fabrice Bellard
0 siblings, 1 reply; 5+ messages in thread
From: Johan Rydberg @ 2003-06-04 14:16 UTC (permalink / raw)
To: qemu-devel
On Wed, 04 Jun 2003 10:20:24 +0200
Fabrice Bellard <fabrice.bellard@free.fr> wrote:
: I plan to publish soon some benchmarks against bochs and native execution.
:
: > If I'm not mistaken, the condition codes is simulated using two values and
: > an operator specifying what type of insn that generated the condition codes.
:
: OK.
Good.
: > When is the full eflags register generated? In the epilogue of a translated
: > block, or when ever an insn/callback reads the eflag register?
:
: Only when an instruction really needs the full eflags register (such as
: pushf).
And at the end of the translated block? Or does the CC_SRC, CC_DST and CC_OP
live between blocks?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] performance of qemu
2003-06-04 14:16 ` Johan Rydberg
@ 2003-06-04 16:01 ` Fabrice Bellard
2003-06-04 16:08 ` Johan Rydberg
0 siblings, 1 reply; 5+ messages in thread
From: Fabrice Bellard @ 2003-06-04 16:01 UTC (permalink / raw)
To: Johan Rydberg; +Cc: qemu-devel
Johan Rydberg wrote:
> : > When is the full eflags register generated? In the epilogue of a translated
> : > block, or when ever an insn/callback reads the eflag register?
> :
> : Only when an instruction really needs the full eflags register (such as
> : pushf).
>
> And at the end of the translated block? Or does the CC_SRC, CC_DST and CC_OP
> live between blocks?
CC_SRC, CC_DST and CC_OP live between blocks (I think computing the
eflags would be too expensive).
Fabrice.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] performance of qemu
2003-06-04 16:01 ` Fabrice Bellard
@ 2003-06-04 16:08 ` Johan Rydberg
0 siblings, 0 replies; 5+ messages in thread
From: Johan Rydberg @ 2003-06-04 16:08 UTC (permalink / raw)
To: Fabrice Bellard; +Cc: qemu-devel
On Wed, 04 Jun 2003 18:01:25 +0200
Fabrice Bellard <fabrice.bellard@free.fr> wrote:
: CC_SRC, CC_DST and CC_OP live between blocks (I think computing the
: eflags would be too expensive).
It most probably would. How do callbacks, say for example in the
signal handing code of QEMU, retreive the EFLAGS value from the CC_*
variables? Do it call some function that calculates the value, or
does the main loop calculate the full EFLAGS value whenever it breaks
out of a sequence of translated blocks to handle signals?
: Fabrice.
Johan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2003-06-04 16:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-03 18:12 [Qemu-devel] performance of qemu Johan Rydberg
2003-06-04 8:20 ` Fabrice Bellard
2003-06-04 14:16 ` Johan Rydberg
2003-06-04 16:01 ` Fabrice Bellard
2003-06-04 16:08 ` Johan Rydberg
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.