Victory? (was Re: Mac Intel)
Joel Reymont
joelr1@REDACTED
Tue Aug 15 12:30:26 CEST 2006
It's crashing on this apparently.
0x000a4702 <hipe_bifs_get_hrvtime_0+74>: movapd %xmm0,-56(%ebp)
According to the movapd description:
66 0F 28 /r MOVAPD xmm1, xmm2/m128
Move packed double-precision floating-point values from xmm2/m128 to
xmm1.
66 0F 29 /r MOVAPD xmm2/m128, xmm1
Move packed double-precision floating-point values from xmm1 to xmm2/
m128.
So unless I'm mistaken, movapd shouldn't have been used with -56(%
ebp), correct?
Is there something wrong with HiPE code generation?
---
Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/
operand.
0x000a4702 in hipe_bifs_get_hrvtime_0 (A__p=0x12dbc94) at hipe/
hipe_bif1.c:893
893 f.fd = get_hrvtime();
(gdb) disas
Dump of assembler code for function hipe_bifs_get_hrvtime_0:
0x000a46b8 <hipe_bifs_get_hrvtime_0+0>: push %ebp
0x000a46b9 <hipe_bifs_get_hrvtime_0+1>: mov %esp,%ebp
0x000a46bb <hipe_bifs_get_hrvtime_0+3>: push %ebx
0x000a46bc <hipe_bifs_get_hrvtime_0+4>: sub $0x44,%esp
0x000a46bf <hipe_bifs_get_hrvtime_0+7>: mov 8(%ebp),%ebx
0x000a46c2 <hipe_bifs_get_hrvtime_0+10>: movl $0x0,12(%esp)
0x000a46ca <hipe_bifs_get_hrvtime_0+18>: movl $0x0,8(%esp)
0x000a46d2 <hipe_bifs_get_hrvtime_0+26>: movl $0x0,4(%esp)
0x000a46da <hipe_bifs_get_hrvtime_0+34>: lea -12(%ebp),%eax
0x000a46dd <hipe_bifs_get_hrvtime_0+37>: mov %eax,(%esp)
0x000a46e0 <hipe_bifs_get_hrvtime_0+40>: call 0x45669
<elapsed_time_both>
0x000a46e5 <hipe_bifs_get_hrvtime_0+45>: movd -12(%ebp),%xmm1
0x000a46ea <hipe_bifs_get_hrvtime_0+50>: pxor %xmm0,%xmm0
0x000a46ee <hipe_bifs_get_hrvtime_0+54>: punpckldq %xmm1,%xmm0
0x000a46f2 <hipe_bifs_get_hrvtime_0+58>: punpckldq 903040,%xmm0
0x000a46fa <hipe_bifs_get_hrvtime_0+66>: subpd 903056,%xmm0
0x000a4702 <hipe_bifs_get_hrvtime_0+74>: movapd %xmm0,-56(%ebp)
--
http://wagerlabs.com/
More information about the erlang-questions
mailing list