[Issue 6829] Unsigned rotate standard function in Phobos

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Jul 13 10:25:30 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #31 from hsteoh at quickfur.ath.cx 2013-07-13 10:25:27 PDT ---
I still can't get it to work. I copied Walter's code exactly, compiled with dmd
-O (from DMD git HEAD) and here's the disassembly:

0000000000416854 <_D4test4testFiZv>:
  416854:       55                      push   %rbp
  416855:       48 8b ec                mov    %rsp,%rbp
  416858:       48 83 ec 20             sub    $0x20,%rsp
  41685c:       53                      push   %rbx
  41685d:       41 54                   push   %r12
  41685f:       89 7d f8                mov    %edi,-0x8(%rbp)
  416862:       41 bc 07 00 00 00       mov    $0x7,%r12d
  416868:       48 89 f9                mov    %rdi,%rcx
  41686b:       41 d3 ec                shr    %cl,%r12d
  41686e:       b8 07 00 00 00          mov    $0x7,%eax
  416873:       48 ba 20 00 00 00 00    movabs $0x20,%rdx
  41687a:       00 00 00 
  41687d:       48 63 d9                movslq %ecx,%rbx
  416880:       48 2b d3                sub    %rbx,%rdx
  416883:       48 89 d1                mov    %rdx,%rcx
  416886:       d3 e0                   shl    %cl,%eax
  416888:       44 0b e0                or     %eax,%r12d
  41688b:       41 81 fc 03 00 00 80    cmp    $0x80000003,%r12d
  416892:       48 89 8d e8 ff ff ff    mov    %rcx,-0x18(%rbp)
  416899:       74 0a                   je     4168a5 <_D4test4testFiZv+0x51>
  41689b:       bf 06 00 00 00          mov    $0x6,%edi
  4168a0:       e8 37 00 00 00          callq  4168dc <_D4test8__assertFiZv>
  4168a5:       41 8b c4                mov    %r12d,%eax
  4168a8:       8b 4d f8                mov    -0x8(%rbp),%ecx
  4168ab:       d3 e0                   shl    %cl,%eax
  4168ad:       41 8b d4                mov    %r12d,%edx
  4168b0:       48 8b 8d e8 ff ff ff    mov    -0x18(%rbp),%rcx
  4168b7:       d3 ea                   shr    %cl,%edx
  4168b9:       0b c2                   or     %edx,%eax
  4168bb:       83 f8 07                cmp    $0x7,%eax
  4168be:       74 0a                   je     4168ca <_D4test4testFiZv+0x76>
  4168c0:       bf 08 00 00 00          mov    $0x8,%edi
  4168c5:       e8 12 00 00 00          callq  4168dc <_D4test8__assertFiZv>
  4168ca:       41 5c                   pop    %r12
  4168cc:       5b                      pop    %rbx
  4168cd:       48 8b e5                mov    %rbp,%rsp
  4168d0:       5d                      pop    %rbp
  4168d1:       c3                      retq   


I don't understand what I'm doing wrong. Is this a platform-specific issue? I'm
running Linux/x86_64.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list