Add Chromium-only Blender WebEngine parity work
This commit is contained in:
83
blender-5.2.0/extern/gmp-source/tests/arm32call.asm
vendored
Normal file
83
blender-5.2.0/extern/gmp-source/tests/arm32call.asm
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
dnl ARM32 calling conventions checking.
|
||||
|
||||
dnl Copyright 2000, 2003, 2004, 2006, 2007, 2010, 2013, 2016 Free Software
|
||||
dnl Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library test suite.
|
||||
|
||||
dnl The GNU MP Library test suite is free software; you can redistribute it
|
||||
dnl and/or modify it under the terms of the GNU General Public License as
|
||||
dnl published by the Free Software Foundation; either version 3 of the
|
||||
dnl License, or (at your option) any later version.
|
||||
|
||||
dnl The GNU MP Library test suite is distributed in the hope that it will be
|
||||
dnl useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
dnl Public License for more details.
|
||||
|
||||
dnl You should have received a copy of the GNU General Public License along
|
||||
dnl with the GNU MP Library test suite. If not, see
|
||||
dnl https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
dnl The current version of the code attempts to keep the call/return
|
||||
dnl prediction stack valid, but matching calls and returns.
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
|
||||
C int calling_conventions (...);
|
||||
C
|
||||
C The global variable "calling_conventions_function" is the function to
|
||||
C call, with the arguments as passed here.
|
||||
|
||||
define(`WANT_CALLEE_SAVES', eval(4*0))
|
||||
define(`SAVE_CALLEE_SAVES', eval(4*8))
|
||||
define(`RETADDR', eval(4*16))
|
||||
define(`GOT_CALLEE_SAVES', eval(4*17))
|
||||
define(`JUNK_PARAMS', eval(4*25))
|
||||
|
||||
TEXT
|
||||
ALIGN(32)
|
||||
PROLOGUE(calling_conventions)
|
||||
LEA( r12, calling_conventions_values)
|
||||
|
||||
C Preserve callee-saves registers, including the link register r14
|
||||
add r12, r12, #SAVE_CALLEE_SAVES
|
||||
stm r12, {r4-r11,r14}
|
||||
sub r12, r12, #SAVE_CALLEE_SAVES
|
||||
|
||||
C Put chosen junk into callee-saves registers
|
||||
add r12, r12, #WANT_CALLEE_SAVES
|
||||
ldm r12, {r4-r11}
|
||||
sub r12, r12, #WANT_CALLEE_SAVES
|
||||
|
||||
C No callee-saves registers on arm except r12 and parameter registers
|
||||
C
|
||||
|
||||
C Make the actual call
|
||||
LEA( r12, calling_conventions_function)
|
||||
ldr r12, [r12]
|
||||
mov r14, pc
|
||||
return r12
|
||||
|
||||
LEA( r12, calling_conventions_values)
|
||||
|
||||
C Save callee-saves registers after call
|
||||
add r12, r12, #GOT_CALLEE_SAVES
|
||||
stm r12, {r4-r11}
|
||||
sub r12, r12, #GOT_CALLEE_SAVES
|
||||
|
||||
C Restore callee-saves registers, including the link register r14
|
||||
add r12, r12, #SAVE_CALLEE_SAVES
|
||||
ldm r12, {r4-r11,r14}
|
||||
sub r12, r12, #SAVE_CALLEE_SAVES
|
||||
|
||||
C Overwrite parameter registers. Note that we overwrite r1, which
|
||||
C could hold one half of a 64-bit return value, since we don't use that
|
||||
C in GMP.
|
||||
add r12, r12, #JUNK_PARAMS
|
||||
ldm r12, {r1-r3}
|
||||
|
||||
return r14
|
||||
EPILOGUE()
|
||||
Reference in New Issue
Block a user