- 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:
Timo Kreuzer 2010-11-02 00:06:33 +00:00
parent 0d7a1c46a0
commit a3623f23de
49 changed files with 912 additions and 918 deletions

View file

@ -2,33 +2,36 @@
*/
#include "tchar.h"
#include <reactos/asm.h>
.globl _tcsncpy
PUBLIC _tcsncpy
.code
_tcsncpy:
push %esi
push %edi
mov 0x0C(%esp), %edi /* s1 */
mov 0x10(%esp), %esi /* s2 */
mov 0x14(%esp), %ecx /* n */
push esi
push edi
mov edi, [esp + 12] /* s1 */
mov esi, [esp + 16] /* s2 */
mov ecx, [esp + 20] /* n */
xor %eax, %eax
cld
xor eax, eax
cld
.L1:
dec %ecx
js .L2
_tlods
_tstos
test %_treg(a), %_treg(a)
jnz .L1
rep _tstos
dec ecx
js .L2
_tlods
_tstos
test _treg(a), _treg(a)
jnz .L1
rep _tstos
.L2:
mov 0x0C(%esp), %eax
mov eax, [esp + 12]
pop %edi
pop %esi
ret
pop edi
pop esi
ret
END
/* EOF */