# stack32 out_stack # stack32 u_stack # int32 eax # int32 ebx # int32 esi # int32 edi # int32 ebp # int32 out # int32 u # int32 word0 # int32 word1 # int32 word2 # int32 word3 # int32 word4 # float80 out0 # float80 out1 # float80 out2 # float80 out3 # float80 out4 # float80 carry0 # float80 carry1 # float80 carry2 # float80 carry3 # float80 carry4 # stack64 d0 # stack64 d1 # stack64 d2 # stack64 d3 # stack64 d4 # enter gaudry_pm_todouble .text .p2align 5 .globl _gaudry_pm_todouble .globl gaudry_pm_todouble _gaudry_pm_todouble: gaudry_pm_todouble: mov %esp,%eax and $31,%eax add $64,%eax sub %eax,%esp # input out_stack # input u_stack # caller eax # caller ebx # caller esi # caller edi # caller ebp # u = u_stack # movl u=int32#2 # movl u=%ecx movl 8(%esp,%eax),%ecx # word0 = *(uint32 *) (u + 0) # movl 0(word0=int32#3 # movl 0(word0=%edx movl 0(%ecx),%edx # d0 top = 0x43300000 # movl $0x43300000,>d0=stack64#1 # movl $0x43300000,>d0=4(%esp) movl $0x43300000,4(%esp) # inplace d0 bottom = word0 # movl word1=int32#3 # movl 4(word1=%edx movl 4(%ecx),%edx # word1 &= 0xffffff # and $0xffffff,d1=stack64#2 # movl $0x45300000,>d1=12(%esp) movl $0x45300000,12(%esp) # inplace d1 bottom = word1 # movl word2=int32#3 # movl 7(word2=%edx movl 7(%ecx),%edx # word2 &= 0xffffff # and $0xffffff,d2=stack64#3 # movl $0x46b00000,>d2=20(%esp) movl $0x46b00000,20(%esp) # inplace d2 bottom = word2 # movl word3=int32#3 # movl 10(word3=%edx movl 10(%ecx),%edx # word3 &= 0xffffff # and $0xffffff,d3=stack64#4 # movl $0x48300000,>d3=28(%esp) movl $0x48300000,28(%esp) # inplace d3 bottom = word3 # movl word4=int32#2 # movl 12(word4=%ecx movl 12(%ecx),%ecx # (uint32) word4 >>= 8 # shr $8,d4=stack64#5 # movl $0x49b00000,>d4=36(%esp) movl $0x49b00000,36(%esp) # inplace d4 bottom = word4 # movl out=int32#2 # movl out=%ecx movl 4(%esp,%eax),%ecx # out4 = *(float64 *) &d4 # fldl