2137af76becfb31e1162d3b79ddcd7efb9386327
This diff fixes a bug in shuffleArgs when there are three register arguments in a cycle, and one of them needs a zero extend. Assume the shuffle that needs to be performed is rdi -> rsi, rsi -> rdx, rdx -> rdi. doRegMoves() determines the sequence of moves to be: xchg rdx, rsi xchg rsi, rdi Assume also that the second dest reg (rsi) needs a zero extend. The current implementatin will spit out the code sequence: xchg %rdx, %rsi movzbl %sil, %esi xchg %rsi, %rdi movzbl %sil, $esi Basically, the problem is that if a move sequence uses two xchg's for a cycle of three registers, we should not perform the zero extending (and address-lea) till both the exchanges are done.
HipHop VM for PHP
HipHop VM (HHVM) is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized >5x increase in throughput for Facebook compared with Zend PHP 5.2.
Required Packages, and Installing and Running HipHop VM
The latest information is available on the wiki.
Contributing to HipHop VM
HipHop VM is licensed under the PHP and Zend licenses except as otherwise noted.
Before changes can be accepted a Contributors Licensing Agreement must be signed and returned.
Descrição
Linguagens
C++
59.4%
PHP
34.1%
C
4.1%
Hack
1.4%
CMake
0.3%
Outra
0.6%