summaryrefslogtreecommitdiff
path: root/src/vm/arm64/crthelpers.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/arm64/crthelpers.S')
-rw-r--r--src/vm/arm64/crthelpers.S27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/vm/arm64/crthelpers.S b/src/vm/arm64/crthelpers.S
index 2c677e0a31..36eb4ee7a3 100644
--- a/src/vm/arm64/crthelpers.S
+++ b/src/vm/arm64/crthelpers.S
@@ -18,7 +18,7 @@
//
//void JIT_MemSet(void *dst, int val, SIZE_T count)
//
-// uintptr_t valEx = (char)val;
+// uintptr_t valEx = (unsigned char)val;
// valEx = valEx | valEx << 8;
// valEx = valEx | valEx << 16;
// valEx = valEx | valEx << 32;
@@ -52,7 +52,7 @@
// }
// }
//
-// while(count > 8)
+// while(count >= 8)
// {
// *(uintptr_t*)dst = valEx;
// dst = (uintptr_t*)dst + 1;
@@ -85,7 +85,7 @@
// as C++ method.
LEAF_ENTRY JIT_MemSet, _TEXT
- sxtb w8,w1
+ uxtb w8,w1
sxtw x8,w8
orr x8,x8,x8, lsl #8
orr x8,x8,x8, lsl #0x10
@@ -121,11 +121,9 @@ LOCAL_LABEL(JIT_MemSet_0x60):
cbnz x2,LOCAL_LABEL(JIT_MemSet_0x60)
LOCAL_LABEL(JIT_MemSet_0x7c):
cmp x2,#8
- bls LOCAL_LABEL(JIT_MemSet_0xb8)
- mov x8,#-9
- add x8,x2,x8
- lsr x8,x8,#3
- add x11,x8,#1
+ blo LOCAL_LABEL(JIT_MemSet_0xb8)
+ lsr x8,x2,#3
+ mov x11,x8
mov x10,x0
add x8,x10,x11, lsl #3
LOCAL_LABEL(JIT_MemSet_0x9c):
@@ -150,7 +148,7 @@ LOCAL_LABEL(JIT_MemSet_0xd0):
strb w9,[x0]
LOCAL_LABEL(JIT_MemSet_0xd8):
ret lr
-LEAF_END JIT_MemSet, _TEXT
+LEAF_END_MARKED JIT_MemSet, _TEXT
// See comments above for JIT_MemSet
@@ -188,7 +186,7 @@ LEAF_END JIT_MemSet, _TEXT
// }
// }
//
-// while(count > 8)
+// while(count >= 8)
// {
// *(uintptr_t*)dst = *(uintptr_t*)src;
// dst = (uintptr_t*)dst + 1;
@@ -257,11 +255,8 @@ LOCAL_LABEL(JIT_MemCpy_0x5c):
cbnz x2,LOCAL_LABEL(JIT_MemCpy_0x5c)
LOCAL_LABEL(JIT_MemCpy_0x80):
cmp x2,#8
- bls LOCAL_LABEL(JIT_MemCpy_0xb4)
- mov x8,#-9
- add x8,x2,x8
- lsr x8,x8,#3
- add x9,x8,#1
+ blo LOCAL_LABEL(JIT_MemCpy_0xb4)
+ lsr x9,x2,#3
mov x8,#-8
madd x2,x9,x8,x2
LOCAL_LABEL(JIT_MemCpy_0xa0):
@@ -288,4 +283,4 @@ LOCAL_LABEL(JIT_MemCpy_0xdc):
strb w8,[x0]
LOCAL_LABEL(JIT_MemCpy_0xe8):
ret lr
-LEAF_END JIT_MemCpy, _TEXT
+LEAF_END_MARKED JIT_MemCpy, _TEXT