mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:16:18 +00:00
[CRT]
- Make all x86assembly ML compatible - Remove memcpy, it was duplicated from memmove, copy the label instead - Guard some code against compilation on msvc, as these functions are intrinsics on MSVC and cannot be implemented - Fix some x64 assembly (don't modify stack below rsp) svn path=/branches/cmake-bringup/; revision=49421
This commit is contained in:
parent
0d7a1c46a0
commit
a3623f23de
49 changed files with 912 additions and 918 deletions
|
@ -33,12 +33,13 @@
|
|||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
.globl __aullshr
|
||||
|
||||
.intel_syntax noprefix
|
||||
|
||||
#include <reactos/asm.h>
|
||||
|
||||
PUBLIC __aullshr
|
||||
|
||||
/* FUNCTIONS ***************************************************************/
|
||||
.code
|
||||
|
||||
//
|
||||
// ullshr - long shift right
|
||||
|
@ -65,13 +66,13 @@ __aullshr:
|
|||
// depends only on the high order bit of edx).
|
||||
//
|
||||
cmp cl,64
|
||||
jae short ..RETZERO
|
||||
jae short .RETZERO
|
||||
|
||||
//
|
||||
// Handle shifts of between 0 and 31 bits
|
||||
//
|
||||
cmp cl, 32
|
||||
jae short ..MORE32
|
||||
jae short .MORE32
|
||||
shrd eax,edx,cl
|
||||
shr edx,cl
|
||||
ret
|
||||
|
@ -79,7 +80,7 @@ __aullshr:
|
|||
//
|
||||
// Handle shifts of between 32 and 63 bits
|
||||
//
|
||||
..MORE32:
|
||||
.MORE32:
|
||||
mov eax,edx
|
||||
xor edx,edx
|
||||
and cl,31
|
||||
|
@ -89,7 +90,9 @@ __aullshr:
|
|||
//
|
||||
// return 0 in edx:eax
|
||||
//
|
||||
..RETZERO:
|
||||
.RETZERO:
|
||||
xor eax,eax
|
||||
xor edx,edx
|
||||
ret
|
||||
|
||||
END
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue