xref: /aosp_15_r20/external/libmpeg2/common/armv8/impeg2_neon_macros.s (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
1*a97c2a1fSXin Li//******************************************************************************
2*a97c2a1fSXin Li//*
3*a97c2a1fSXin Li//* Copyright (C) 2015 The Android Open Source Project
4*a97c2a1fSXin Li//*
5*a97c2a1fSXin Li//* Licensed under the Apache License, Version 2.0 (the "License");
6*a97c2a1fSXin Li//* you may not use this file except in compliance with the License.
7*a97c2a1fSXin Li//* You may obtain a copy of the License at:
8*a97c2a1fSXin Li//*
9*a97c2a1fSXin Li//* http://www.apache.org/licenses/LICENSE-2.0
10*a97c2a1fSXin Li//*
11*a97c2a1fSXin Li//* Unless required by applicable law or agreed to in writing, software
12*a97c2a1fSXin Li//* distributed under the License is distributed on an "AS IS" BASIS,
13*a97c2a1fSXin Li//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*a97c2a1fSXin Li//* See the License for the specific language governing permissions and
15*a97c2a1fSXin Li//* limitations under the License.
16*a97c2a1fSXin Li//*
17*a97c2a1fSXin Li//*****************************************************************************
18*a97c2a1fSXin Li//* Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*a97c2a1fSXin Li//*/
20*a97c2a1fSXin Li///**
21*a97c2a1fSXin Li//*******************************************************************************
22*a97c2a1fSXin Li//* @file
23*a97c2a1fSXin Li//*  impeg2_neon_macros.s
24*a97c2a1fSXin Li//*
25*a97c2a1fSXin Li//* @brief
26*a97c2a1fSXin Li//*  Contains assembly macros
27*a97c2a1fSXin Li//*
28*a97c2a1fSXin Li//* @author
29*a97c2a1fSXin Li//*  Naveen SR
30*a97c2a1fSXin Li//*
31*a97c2a1fSXin Li//* @par List of Functions:
32*a97c2a1fSXin Li//*
33*a97c2a1fSXin Li//*
34*a97c2a1fSXin Li//* @remarks
35*a97c2a1fSXin Li//*  None
36*a97c2a1fSXin Li//*
37*a97c2a1fSXin Li//*******************************************************************************
38*a97c2a1fSXin Li
39*a97c2a1fSXin Li
40*a97c2a1fSXin Li.macro push_v_regs
41*a97c2a1fSXin Li    stp             d8, d9, [sp, #-16]!
42*a97c2a1fSXin Li    stp             d10, d11, [sp, #-16]!
43*a97c2a1fSXin Li    stp             d12, d13, [sp, #-16]!
44*a97c2a1fSXin Li    stp             d14, d15, [sp, #-16]!
45*a97c2a1fSXin Li.endm
46*a97c2a1fSXin Li.macro pop_v_regs
47*a97c2a1fSXin Li    ldp             d14, d15, [sp], #16
48*a97c2a1fSXin Li    ldp             d12, d13, [sp], #16
49*a97c2a1fSXin Li    ldp             d10, d11, [sp], #16
50*a97c2a1fSXin Li    ldp             d8, d9, [sp], #16
51*a97c2a1fSXin Li.endm
52*a97c2a1fSXin Li
53*a97c2a1fSXin Li.macro swp reg1, reg2
54*a97c2a1fSXin Li    eor             \reg1, \reg1, \reg2
55*a97c2a1fSXin Li    eor             \reg2, \reg1, \reg2
56*a97c2a1fSXin Li    eor             \reg1, \reg1, \reg2
57*a97c2a1fSXin Li.endm
58*a97c2a1fSXin Li
59