equal
deleted
inserted
replaced
28 static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { |
28 static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { |
29 #ifdef AMD64 |
29 #ifdef AMD64 |
30 (void)memmove(to, from, count * HeapWordSize); |
30 (void)memmove(to, from, count * HeapWordSize); |
31 #else |
31 #else |
32 // Includes a zero-count check. |
32 // Includes a zero-count check. |
33 intx temp; |
33 intx temp = 0; |
34 __asm__ volatile(" testl %6,%6 ;" |
34 __asm__ volatile(" testl %6,%6 ;" |
35 " jz 7f ;" |
35 " jz 7f ;" |
36 " cmpl %4,%5 ;" |
36 " cmpl %4,%5 ;" |
37 " leal -4(%4,%6,4),%3;" |
37 " leal -4(%4,%6,4),%3;" |
38 " jbe 1f ;" |
38 " jbe 1f ;" |
86 (void)memcpy(to, from, count * HeapWordSize); |
86 (void)memcpy(to, from, count * HeapWordSize); |
87 break; |
87 break; |
88 } |
88 } |
89 #else |
89 #else |
90 // Includes a zero-count check. |
90 // Includes a zero-count check. |
91 intx temp; |
91 intx temp = 0; |
92 __asm__ volatile(" testl %6,%6 ;" |
92 __asm__ volatile(" testl %6,%6 ;" |
93 " jz 3f ;" |
93 " jz 3f ;" |
94 " cmpl $32,%6 ;" |
94 " cmpl $32,%6 ;" |
95 " ja 2f ;" |
95 " ja 2f ;" |
96 " subl %4,%1 ;" |
96 " subl %4,%1 ;" |
143 static void pd_conjoint_bytes(void* from, void* to, size_t count) { |
143 static void pd_conjoint_bytes(void* from, void* to, size_t count) { |
144 #ifdef AMD64 |
144 #ifdef AMD64 |
145 (void)memmove(to, from, count); |
145 (void)memmove(to, from, count); |
146 #else |
146 #else |
147 // Includes a zero-count check. |
147 // Includes a zero-count check. |
148 intx temp; |
148 intx temp = 0; |
149 __asm__ volatile(" testl %6,%6 ;" |
149 __asm__ volatile(" testl %6,%6 ;" |
150 " jz 13f ;" |
150 " jz 13f ;" |
151 " cmpl %4,%5 ;" |
151 " cmpl %4,%5 ;" |
152 " leal -1(%4,%6),%3 ;" |
152 " leal -1(%4,%6),%3 ;" |
153 " jbe 1f ;" |
153 " jbe 1f ;" |