On Thu, Aug 08, 2013 at 04:11:06PM +0200, David Kastrup wrote:
> I don't have a 64bit system available.  Can you send me a disassembly of
> the axis_aligned_side_helper routine?  I have the suspicion that the
> code generated for it may be fishy.

Here you are, hth.

Thanks,
Petr

(gdb) disassemble axis_aligned_side_helper
Dump of assembler code for function 
axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*):
   0x000000000049b560 <+0>:     push   %r15
   0x000000000049b562 <+2>:     mov    %edx,%r15d
   0x000000000049b565 <+5>:     push   %r14
   0x000000000049b567 <+7>:     mov    %r8d,%r14d
   0x000000000049b56a <+10>:    push   %r13
   0x000000000049b56c <+12>:    mov    %ecx,%r13d
   0x000000000049b56f <+15>:    push   %r12
   0x000000000049b571 <+17>:    mov    %rdi,%r12
   0x000000000049b574 <+20>:    mov    %r9,%rdi
   0x000000000049b577 <+23>:    push   %rbp
   0x000000000049b578 <+24>:    mov    %esi,%ebp
   0x000000000049b57a <+26>:    push   %rbx
   0x000000000049b57b <+27>:    mov    %r9,%rbx
   0x000000000049b57e <+30>:    sub    $0x28,%rsp
   0x000000000049b582 <+34>:    callq  0x4099a0 <scm_is_number@plt>
   0x000000000049b587 <+39>:    xor    %r9d,%r9d
   0x000000000049b58a <+42>:    test   %eax,%eax
   0x000000000049b58c <+44>:    jne    0x49b5d0 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+112>
   0x000000000049b58e <+46>:    xor    %ebx,%ebx
   0x000000000049b590 <+48>:    test   $0x6,%r12b
   0x000000000049b594 <+52>:    jne    0x49b5a3 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+67>
   0x000000000049b596 <+54>:    mov    0x55ba33(%rip),%rax        # 0x9f6fd0 
<_ZN4Grob9smob_tag_E>
   0x000000000049b59d <+61>:    cmp    %rax,(%r12)
   0x000000000049b5a1 <+65>:    je     0x49b5e8 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+136>
   0x000000000049b5a3 <+67>:    movzbl %r15b,%edx
   0x000000000049b5a7 <+71>:    mov    %r14d,%r8d
   0x000000000049b5aa <+74>:    mov    %r13d,%ecx
   0x000000000049b5ad <+77>:    mov    %ebp,%esi
   0x000000000049b5af <+79>:    mov    %rbx,%rdi
   0x000000000049b5b2 <+82>:    callq  0x499ef0 
<Side_position_interface::aligned_side(Grob*, Axis, bool, int, int, double*)>
   0x000000000049b5b7 <+87>:    add    $0x28,%rsp
   0x000000000049b5bb <+91>:    pop    %rbx
   0x000000000049b5bc <+92>:    pop    %rbp
   0x000000000049b5bd <+93>:    pop    %r12
   0x000000000049b5bf <+95>:    pop    %r13
   0x000000000049b5c1 <+97>:    pop    %r14
   0x000000000049b5c3 <+99>:    pop    %r15
   0x000000000049b5c5 <+101>:   retq   
   0x000000000049b5c6 <+102>:   nopw   %cs:0x0(%rax,%rax,1)
   0x000000000049b5d0 <+112>:   mov    %rbx,%rdi
   0x000000000049b5d3 <+115>:   callq  0x409540 <scm_to_double@plt>
   0x000000000049b5d8 <+120>:   lea    0x18(%rsp),%r9
   0x000000000049b5dd <+125>:   movsd  %xmm0,0x18(%rsp)
   0x000000000049b5e3 <+131>:   jmp    0x49b58e 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+46>
   0x000000000049b5e5 <+133>:   nopl   (%rax)
   0x000000000049b5e8 <+136>:   mov    0x8(%r12),%rbx
   0x000000000049b5ed <+141>:   test   %rbx,%rbx
   0x000000000049b5f0 <+144>:   je     0x49b5a3 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+67>
   0x000000000049b5f2 <+146>:   xor    %ecx,%ecx
   0x000000000049b5f4 <+148>:   mov    $0x7104b0,%edx
   0x000000000049b5f9 <+153>:   mov    $0x70d4a0,%esi
   0x000000000049b5fe <+158>:   mov    %rbx,%rdi
   0x000000000049b601 <+161>:   mov    %r9,0x8(%rsp)
   0x000000000049b606 <+166>:   callq  0x409f30 <__dynamic_cast@plt>
   0x000000000049b60b <+171>:   test   %rax,%rax
   0x000000000049b60e <+174>:   mov    0x8(%rsp),%r9
   0x000000000049b613 <+179>:   je     0x49b5a3 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+67>
   0x000000000049b615 <+181>:   xor    %edx,%edx
   0x000000000049b617 <+183>:   test   %ebp,%ebp
   0x000000000049b619 <+185>:   je     0x49b5a7 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+71>
   0x000000000049b61b <+187>:   jmp    0x49b5a3 
<axis_aligned_side_helper(scm_unused_struct*, Axis, bool, int, int, 
scm_unused_struct*)+67>
End of assembler dump.
(gdb) 

Attachment: signature.asc
Description: Digital signature

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to