src/hotspot/cpu/aarch64/aarch64_linkage.S
changeset 57565 01bca26734bb
parent 57564 0a8436eda2fa
child 57566 ad84ae073248
--- a/src/hotspot/cpu/aarch64/aarch64_linkage.S	Fri Jul 26 10:52:47 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-#
-# Copyright (c) 2012, Red Hat. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-
-# Routines used to enable x86 VM C++ code to invoke JIT-compiled ARM code
-# -- either Java methods or generated stub -- and to allow JIT-compiled
-# ARM code to invoke x86 VM C++ code
-#
-# the code for aarch64_stub_prolog below can be copied into the start
-# of the ARM code buffer and patched with a link to the
-# C++ routine which starts execution on the simulator. the ARM
-# code can be generated immediately following the copied code.
-
-#ifdef BUILTIN_SIM
-
-	.data
-        .globl setup_arm_sim,
-	.type  setup_arm_sim,@function
-        .globl get_alt_stack,
-	.type  get_alt_stack,@function
-        .globl aarch64_stub_prolog
-        .p2align  4
-aarch64_stub_prolog:
-	// entry point
-4:	lea 1f(%rip), %r11
-	mov (%r11), %r10
-	mov (%r10), %r10
-	jmp *%r10
-	.p2align 4
-1:
-	.set entry_offset, . - 1b
-	.quad aarch64_prolog_ptr
-	// 64 bit int used to idenitfy called fn arg/return types
-	.set calltype_offset, . - 1b
-	.quad 0
-	// arm JIT code follows the stub
-	.set arm_code_offset, . - 1b
-	.size aarch64_stub_prolog, .-aarch64_stub_prolog
-aarch64_stub_prolog_end:
-
-	.text
-aarch64_prolog_ptr:
-	.quad aarch64_prolog
-
-        .globl aarch64_prolog
-aarch64_prolog:
-	.cfi_startproc
-	pushq	%rbp
-	.cfi_def_cfa_offset 16
-	.cfi_offset 6, -16
-	movq	%rsp, %rbp
-	.cfi_def_cfa_register 6
-	// save all registers used to pass args
-	sub $8, %rsp
-	movd %xmm7, (%rsp)
-	sub $8, %rsp
-	movd %xmm6, (%rsp)
-	sub $8, %rsp
-	movd %xmm5, (%rsp)
-	sub $8, %rsp
-	movd %xmm4, (%rsp)
-	sub $8, %rsp
-	movd %xmm3, (%rsp)
-	sub $8, %rsp
-	movd %xmm2, (%rsp)
-	sub $8, %rsp
-	movd %xmm1, (%rsp)
-	sub $8, %rsp
-	movd %xmm0, (%rsp)
-	push %r9
-	push %r8
-	push %rcx
-	push %rdx
-	push %rsi
-	push %rdi
-	// save rax -- this stack slot will be rewritten with a
-	// return value if needed
-	push %rax
-	// temporarily save r11 while we find the other stack
-	push %r11
-	// retrieve alt stack
-	call get_alt_stack@PLT
-	pop %r11
-	// push start of arm code
-	lea (arm_code_offset)(%r11), %rsi
-	push %rsi
-	// load call type code in arg reg 1
-	mov (calltype_offset)(%r11), %rsi
-	// load current stack pointer in arg reg 0
-	mov %rsp, %rdi
-	// switch to alt stack
-	mov %rax, %rsp
-	// save previous stack pointer on new stack
-	push %rdi
-	// 16-align the new stack pointer
-	push %rdi
-	// call sim setup routine
-	call setup_arm_sim@PLT
-	// switch back to old stack
-	pop %rsp
-	// pop start of arm code
-	pop %rdi
-	// pop rax -- either restores old value or installs return value
-	pop %rax
-	// pop arg registers
-	pop %rdi
-	pop %rsi
-	pop %rdx
-	pop %rcx
-	pop %r8
-	pop %r9
-	movd (%rsp), %xmm0
-	add $8, %rsp
-	movd (%rsp), %xmm1
-	add $8, %rsp
-	movd (%rsp), %xmm2
-	add $8, %rsp
-	movd (%rsp), %xmm3
-	add $8, %rsp
-	movd (%rsp), %xmm4
-	add $8, %rsp
-	movd (%rsp), %xmm5
-	add $8, %rsp
-	movd (%rsp), %xmm6
-	add $8, %rsp
-	movd (%rsp), %xmm7
-	add $8, %rsp
-	leave
-	.cfi_def_cfa 7, 8
-	ret
-	.cfi_endproc
-
-
-        .p2align  4
-get_pc:
-	// get return pc in rdi and then push it back
-	pop %rdi
-	push %rdi
-	ret
-
-	.p2align 4
-	.long
-	.globl aarch64_stub_prolog_size
-	.type  aarch64_stub_prolog_size,@function
-aarch64_stub_prolog_size:
-	leaq  aarch64_stub_prolog_end - aarch64_stub_prolog, %rax
-	ret
-
-#endif