[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] 64-bit target
From: |
Johan Rydberg |
Subject: |
Re: [Qemu-devel] 64-bit target |
Date: |
Sun, 29 Jun 2003 23:28:02 +0200 |
Fabrice Bellard <address@hidden> wrote:
: You can just use two parameters and load two 32 bit values.
Declaring T0 as a long long, and trying to set it to an immediate
value results in the following code: Which is a bit of an overhead
I think :)
void OPPROTO
op_movdi_t0_uimm (void)
{
34: 83 ec 14 sub $0x14,%esp
T0 = (unsigned long long) (PARAM1 << 32 | PARAM2);
37: b8 00 00 00 00 mov $0x0,%eax
38: R_386_32 __op_param1
3c: 89 04 24 mov %eax,(%esp,1)
3f: 99 cltd
40: 8b 04 24 mov (%esp,1),%eax
43: 89 54 24 04 mov %edx,0x4(%esp,1)
47: 89 c2 mov %eax,%edx
49: 31 c0 xor %eax,%eax
4b: 89 04 24 mov %eax,(%esp,1)
4e: b8 00 00 00 00 mov $0x0,%eax
4f: R_386_32 __op_param2
53: 89 54 24 04 mov %edx,0x4(%esp,1)
57: 99 cltd
58: 89 44 24 08 mov %eax,0x8(%esp,1)
5c: 89 54 24 0c mov %edx,0xc(%esp,1)
60: 8b 04 24 mov (%esp,1),%eax
63: 8b 54 24 04 mov 0x4(%esp,1),%edx
67: 0b 44 24 08 or 0x8(%esp,1),%eax
6b: 0b 54 24 0c or 0xc(%esp,1),%edx
6f: 89 c6 mov %eax,%esi
71: 89 d7 mov %edx,%edi
}
73: 83 c4 14 add $0x14,%esp
76: c3 ret
77: 90 nop
--
Johan Rydberg, Free Software Developer, Sweden
http://rtmk.sf.net | http://www.nongnu.org/guss/
Playing Track No03