Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pow problem (from Phalanger test suite) #156

Closed
chrisgraham opened this issue Jul 18, 2010 · 1 comment
Closed

pow problem (from Phalanger test suite) #156

chrisgraham opened this issue Jul 18, 2010 · 1 comment

Comments

@chrisgraham
Copy link

echo pow(0,-2);

Apparently this is meant to return inf, but in hphpi returns 0.

@scottmac
Copy link
Contributor

Fixed in cbea3f5

hhvm-bot pushed a commit that referenced this issue Jan 25, 2018
Summary:
This adds the Aarch64 equivalent code that was seen at the bottom of  commit 1c338be.
This takes advantage of the assert to save 2 instructions per instance.

The standard regression tests were run with 6 option sets.  No new problems were observed.
The generated assembly code was as expected.

Before
=====
0000000005e8b574 <_ZN4HPHP5ffs64Em>:
...
 5e8b5e4:       52801382        mov     w2, #0x9c                       // #156
 5e8b5e8:       97dc48c9        bl      559d90c <_ZN4HPHP11assert_failEPKcS1_jS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE>
 5e8b5ec:       f94017a0        ldr     x0, [x29,#40]
 5e8b5f0:       f100001f        cmp     x0, #0x0        //<<---
 5e8b5f4:       dac00000        rbit    x0, x0          //<<---
 5e8b5f8:       dac01000        clz     x0, x0          //<<---
 5e8b5fc:       9a8007e0        csinc   x0, xzr, x0, eq //<<---
 5e8b600:       51000400        sub     w0, w0, #0x1

After
====
0000000005e8b574 <_ZN4HPHP5ffs64Em>:
...
 5e8b5e4:       52801382        mov     w2, #0x9c                       // #156
 5e8b5e8:       97dc48c9        bl      559d90c <_ZN4HPHP11assert_failEPKcS1_jS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE>
 5e8b5ec:       f94017a0        ldr     x0, [x29,#40]
 5e8b5f0:       dac00000        rbit    x0, x0          //<<---
 5e8b5f4:       dac01000        clz     x0, x0          //<<---
 5e8b5f8:       f90023a0        str     x0, [x29,#64]
 5e8b5fc:       f94023a0        ldr     x0, [x29,#64]
Closes #8077

Reviewed By: edwinsmith

Differential Revision: D6766056

Pulled By: mxw

fbshipit-source-id: 65242fbf90ed8fbc39e2f3776e251e248ff3cab2
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants