qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] tci: Support deposit operations


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH] tci: Support deposit operations
Date: Fri, 14 Sep 2012 21:12:43 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120724 Iceowl/1.0b1 Icedove/3.0.11

Am 10.09.2012 16:08, schrieb Richard Henderson:
On Sat, 2012-09-08 at 16:12 +0200, Stefan Weil wrote:
+            tmp16 = *tb_ptr++;
+            tmp8 = *tb_ptr++;
+            tmp32 = (((1<<  tmp8) - 1)<<  tmp16);
+            tci_write_reg32(t0, (t1&  ~tmp32) | ((t2<<  tmp16)&
tmp32));

Use the deposit* functions from bitops.h?


r~


Well, that would justify their existence in bitops.h, wouldn't it?

When I wrote deposit for TCI (November 2011), there still
was no bitops.h, and I was just too lazy to modify and test the
code again.

Now I tested code with both my version (with a small correction for
the 64 bit variant) and with the deposit* functions.

Both variants give identical results. The deposit* variant
creates larger (and I expect also less efficient) code.
I doubt that the effect will be measurable in a system emulation.

Results with 64 bit Debian Linux:

my variant
6909 0 128 7037 1b7d bin/ndebug/x86-tci/i386-linux-user/tci.o 6975 0 128 7103 1bbf bin/ndebug/x86-tci/i386-softmmu/tci.o 6917 0 128 7045 1b85 bin/ndebug/x86-tci/x86_64-linux-user/tci.o 6972 0 128 7100 1bbc bin/ndebug/x86-tci/x86_64-softmmu/tci.o

deposit*
6935 0 128 7063 1b97 bin/ndebug/x86-tci/i386-linux-user/tci.o 7000 0 128 7128 1bd8 bin/ndebug/x86-tci/i386-softmmu/tci.o 6963 0 128 7091 1bb3 bin/ndebug/x86-tci/x86_64-linux-user/tci.o 6997 0 128 7125 1bd5 bin/ndebug/x86-tci/x86_64-softmmu/tci.o

Other emulation targets show similar differences.

On a Windows host, the difference was smaller, but still in favour of my code.

Regards,
Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]