34 .globl _Copy_conjoint_jshorts_atomic
35 .globl _Copy_arrayof_conjoint_jshorts
36 .globl _Copy_conjoint_jints_atomic
37 .globl _Copy_arrayof_conjoint_jints
38 .globl _Copy_conjoint_jlongs_atomic
39 .globl _Copy_arrayof_conjoint_jlongs
40
41 .section .text,"ax"
42
43 / Fast thread accessors, used by threadLS_solaris_amd64.cpp
44 .align 16
45 fs_load:
46 movq %fs:(%rdi),%rax
47 ret
48
49 .align 16
50 fs_thread:
51 movq %fs:0x0,%rax
52 ret
53
54 .globl SpinPause
55 .align 16
56 SpinPause:
57 rep
58 nop
59 movq $1, %rax
60 ret
61
62
63 / Support for void Copy::arrayof_conjoint_bytes(void* from,
64 / void* to,
65 / size_t count)
66 / rdi - from
67 / rsi - to
68 / rdx - count, treated as ssize_t
69 /
70 .align 16
71 _Copy_arrayof_conjoint_bytes:
72 movq %rdx,%r8 / byte count
73 shrq $3,%rdx / qword count
74 cmpq %rdi,%rsi
75 leaq -1(%rdi,%r8,1),%rax / from + bcount*1 - 1
76 jbe acb_CopyRight
77 cmpq %rax,%rsi
78 jbe acb_CopyLeft
79 acb_CopyRight:
80 leaq -8(%rdi,%rdx,8),%rax / from + qcount*8 - 8
81 leaq -8(%rsi,%rdx,8),%rcx / to + qcount*8 - 8
82 negq %rdx
|
34 .globl _Copy_conjoint_jshorts_atomic
35 .globl _Copy_arrayof_conjoint_jshorts
36 .globl _Copy_conjoint_jints_atomic
37 .globl _Copy_arrayof_conjoint_jints
38 .globl _Copy_conjoint_jlongs_atomic
39 .globl _Copy_arrayof_conjoint_jlongs
40
41 .section .text,"ax"
42
43 / Fast thread accessors, used by threadLS_solaris_amd64.cpp
44 .align 16
45 fs_load:
46 movq %fs:(%rdi),%rax
47 ret
48
49 .align 16
50 fs_thread:
51 movq %fs:0x0,%rax
52 ret
53
54 / Support for void Copy::arrayof_conjoint_bytes(void* from,
55 / void* to,
56 / size_t count)
57 / rdi - from
58 / rsi - to
59 / rdx - count, treated as ssize_t
60 /
61 .align 16
62 _Copy_arrayof_conjoint_bytes:
63 movq %rdx,%r8 / byte count
64 shrq $3,%rdx / qword count
65 cmpq %rdi,%rsi
66 leaq -1(%rdi,%r8,1),%rax / from + bcount*1 - 1
67 jbe acb_CopyRight
68 cmpq %rax,%rsi
69 jbe acb_CopyLeft
70 acb_CopyRight:
71 leaq -8(%rdi,%rdx,8),%rax / from + qcount*8 - 8
72 leaq -8(%rsi,%rdx,8),%rcx / to + qcount*8 - 8
73 negq %rdx
|