1948c090dSVarun Wadekar/* 2948c090dSVarun Wadekar * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3948c090dSVarun Wadekar * 4*82cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 5948c090dSVarun Wadekar */ 6948c090dSVarun Wadekar 7948c090dSVarun Wadekar#include <asm_macros.S> 8948c090dSVarun Wadekar 9948c090dSVarun Wadekar.macro push ra, rb, sp=sp 10948c090dSVarun Wadekar stp \ra, \rb, [\sp,#-16]! 11948c090dSVarun Wadekar.endm 12948c090dSVarun Wadekar 13948c090dSVarun Wadekar.macro pop ra, rb, sp=sp 14948c090dSVarun Wadekar ldp \ra, \rb, [\sp], #16 15948c090dSVarun Wadekar.endm 16948c090dSVarun Wadekar 17948c090dSVarun Wadekar .global trusty_context_switch_helper 18948c090dSVarun Wadekarfunc trusty_context_switch_helper 19948c090dSVarun Wadekar push x8, xzr 20948c090dSVarun Wadekar push x19, x20 21948c090dSVarun Wadekar push x21, x22 22948c090dSVarun Wadekar push x23, x24 23948c090dSVarun Wadekar push x25, x26 24948c090dSVarun Wadekar push x27, x28 25948c090dSVarun Wadekar push x29, x30 26948c090dSVarun Wadekar 27948c090dSVarun Wadekar mov x9, sp 28948c090dSVarun Wadekar ldr x10, [x0] 29948c090dSVarun Wadekar mov sp, x10 30948c090dSVarun Wadekar str x9, [x0] 31948c090dSVarun Wadekar 32948c090dSVarun Wadekar pop x29, x30 33948c090dSVarun Wadekar pop x27, x28 34948c090dSVarun Wadekar pop x25, x26 35948c090dSVarun Wadekar pop x23, x24 36948c090dSVarun Wadekar pop x21, x22 37948c090dSVarun Wadekar pop x19, x20 38948c090dSVarun Wadekar pop x8, xzr 39dae374bfSAnthony Zhou 40dae374bfSAnthony Zhou ldr x2, [x1] 41dae374bfSAnthony Zhou ldr x3, [x1, #0x08] 42dae374bfSAnthony Zhou ldr x4, [x1, #0x10] 43dae374bfSAnthony Zhou ldr x5, [x1, #0x18] 44dae374bfSAnthony Zhou ldr x6, [x1, #0x20] 45dae374bfSAnthony Zhou ldr x7, [x1, #0x28] 46dae374bfSAnthony Zhou ldr x10, [x1, #0x30] 47dae374bfSAnthony Zhou ldr x11, [x1, #0x38] 48dae374bfSAnthony Zhou 49dae374bfSAnthony Zhou stp x2, x3, [x8] 50dae374bfSAnthony Zhou stp x4, x5, [x8, #16] 51dae374bfSAnthony Zhou stp x6, x7, [x8, #32] 52dae374bfSAnthony Zhou stp x10, x11, [x8, #48] 53948c090dSVarun Wadekar 54948c090dSVarun Wadekar ret 55948c090dSVarun Wadekarendfunc trusty_context_switch_helper 56948c090dSVarun Wadekar 57948c090dSVarun Wadekar .global trusty_init_context_stack 58948c090dSVarun Wadekarfunc trusty_init_context_stack 59948c090dSVarun Wadekar push x8, xzr, x1 60948c090dSVarun Wadekar push xzr, xzr, x1 61948c090dSVarun Wadekar push xzr, xzr, x1 62948c090dSVarun Wadekar push xzr, xzr, x1 63948c090dSVarun Wadekar push xzr, xzr, x1 64948c090dSVarun Wadekar push xzr, xzr, x1 65948c090dSVarun Wadekar adr x9, el3_exit 66948c090dSVarun Wadekar push xzr, x9, x1 67948c090dSVarun Wadekar str x1, [x0] 68948c090dSVarun Wadekar ret 69948c090dSVarun Wadekarendfunc trusty_init_context_stack 70