xref: /aosp_15_r20/external/libvpx/vpx_ports/asmdefs_mmi.h (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker /*
2*fb1b10abSAndroid Build Coastguard Worker  *  Copyright (c) 2017 The WebM project authors. All Rights Reserved.
3*fb1b10abSAndroid Build Coastguard Worker  *
4*fb1b10abSAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*fb1b10abSAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*fb1b10abSAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*fb1b10abSAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*fb1b10abSAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*fb1b10abSAndroid Build Coastguard Worker  */
10*fb1b10abSAndroid Build Coastguard Worker 
11*fb1b10abSAndroid Build Coastguard Worker #ifndef VPX_VPX_PORTS_ASMDEFS_MMI_H_
12*fb1b10abSAndroid Build Coastguard Worker #define VPX_VPX_PORTS_ASMDEFS_MMI_H_
13*fb1b10abSAndroid Build Coastguard Worker 
14*fb1b10abSAndroid Build Coastguard Worker #include "./vpx_config.h"
15*fb1b10abSAndroid Build Coastguard Worker #include "vpx/vpx_integer.h"
16*fb1b10abSAndroid Build Coastguard Worker 
17*fb1b10abSAndroid Build Coastguard Worker #if HAVE_MMI
18*fb1b10abSAndroid Build Coastguard Worker 
19*fb1b10abSAndroid Build Coastguard Worker #if HAVE_MIPS64
20*fb1b10abSAndroid Build Coastguard Worker #define mips_reg int64_t
21*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDU(reg1, reg2, reg3) \
22*fb1b10abSAndroid Build Coastguard Worker   "daddu       " #reg1 ",       " #reg2 ",       " #reg3 "         \n\t"
23*fb1b10abSAndroid Build Coastguard Worker 
24*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDIU(reg1, reg2, immediate) \
25*fb1b10abSAndroid Build Coastguard Worker   "daddiu      " #reg1 ",       " #reg2 ",       " #immediate "    \n\t"
26*fb1b10abSAndroid Build Coastguard Worker 
27*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDI(reg1, reg2, immediate) \
28*fb1b10abSAndroid Build Coastguard Worker   "daddi       " #reg1 ",       " #reg2 ",       " #immediate "    \n\t"
29*fb1b10abSAndroid Build Coastguard Worker 
30*fb1b10abSAndroid Build Coastguard Worker #define MMI_SUBU(reg1, reg2, reg3) \
31*fb1b10abSAndroid Build Coastguard Worker   "dsubu       " #reg1 ",       " #reg2 ",       " #reg3 "         \n\t"
32*fb1b10abSAndroid Build Coastguard Worker 
33*fb1b10abSAndroid Build Coastguard Worker #define MMI_L(reg, addr, bias) \
34*fb1b10abSAndroid Build Coastguard Worker   "ld          " #reg ",        " #bias "(" #addr ")               \n\t"
35*fb1b10abSAndroid Build Coastguard Worker 
36*fb1b10abSAndroid Build Coastguard Worker #define MMI_SRL(reg1, reg2, shift) \
37*fb1b10abSAndroid Build Coastguard Worker   "ssrld       " #reg1 ",       " #reg2 ",       " #shift "        \n\t"
38*fb1b10abSAndroid Build Coastguard Worker 
39*fb1b10abSAndroid Build Coastguard Worker #define MMI_SLL(reg1, reg2, shift) \
40*fb1b10abSAndroid Build Coastguard Worker   "dsll        " #reg1 ",       " #reg2 ",       " #shift "        \n\t"
41*fb1b10abSAndroid Build Coastguard Worker 
42*fb1b10abSAndroid Build Coastguard Worker #define MMI_MTC1(reg, fp) \
43*fb1b10abSAndroid Build Coastguard Worker   "dmtc1       " #reg ",        " #fp "                            \n\t"
44*fb1b10abSAndroid Build Coastguard Worker 
45*fb1b10abSAndroid Build Coastguard Worker #define MMI_LI(reg, immediate) \
46*fb1b10abSAndroid Build Coastguard Worker   "dli         " #reg ",        " #immediate "                     \n\t"
47*fb1b10abSAndroid Build Coastguard Worker 
48*fb1b10abSAndroid Build Coastguard Worker #else
49*fb1b10abSAndroid Build Coastguard Worker #define mips_reg int32_t
50*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDU(reg1, reg2, reg3) \
51*fb1b10abSAndroid Build Coastguard Worker   "addu        " #reg1 ",       " #reg2 ",       " #reg3 "         \n\t"
52*fb1b10abSAndroid Build Coastguard Worker 
53*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDIU(reg1, reg2, immediate) \
54*fb1b10abSAndroid Build Coastguard Worker   "addiu       " #reg1 ",       " #reg2 ",       " #immediate "    \n\t"
55*fb1b10abSAndroid Build Coastguard Worker 
56*fb1b10abSAndroid Build Coastguard Worker #define MMI_ADDI(reg1, reg2, immediate) \
57*fb1b10abSAndroid Build Coastguard Worker   "addi        " #reg1 ",       " #reg2 ",       " #immediate "    \n\t"
58*fb1b10abSAndroid Build Coastguard Worker 
59*fb1b10abSAndroid Build Coastguard Worker #define MMI_SUBU(reg1, reg2, reg3) \
60*fb1b10abSAndroid Build Coastguard Worker   "subu        " #reg1 ",       " #reg2 ",       " #reg3 "         \n\t"
61*fb1b10abSAndroid Build Coastguard Worker 
62*fb1b10abSAndroid Build Coastguard Worker #define MMI_L(reg, addr, bias) \
63*fb1b10abSAndroid Build Coastguard Worker   "lw          " #reg ",        " #bias "(" #addr ")               \n\t"
64*fb1b10abSAndroid Build Coastguard Worker 
65*fb1b10abSAndroid Build Coastguard Worker #define MMI_SRL(reg1, reg2, shift) \
66*fb1b10abSAndroid Build Coastguard Worker   "ssrlw       " #reg1 ",       " #reg2 ",       " #shift "        \n\t"
67*fb1b10abSAndroid Build Coastguard Worker 
68*fb1b10abSAndroid Build Coastguard Worker #define MMI_SLL(reg1, reg2, shift) \
69*fb1b10abSAndroid Build Coastguard Worker   "sll         " #reg1 ",       " #reg2 ",       " #shift "        \n\t"
70*fb1b10abSAndroid Build Coastguard Worker 
71*fb1b10abSAndroid Build Coastguard Worker #define MMI_MTC1(reg, fp) \
72*fb1b10abSAndroid Build Coastguard Worker   "mtc1        " #reg ",        " #fp "                            \n\t"
73*fb1b10abSAndroid Build Coastguard Worker 
74*fb1b10abSAndroid Build Coastguard Worker #define MMI_LI(reg, immediate) \
75*fb1b10abSAndroid Build Coastguard Worker   "li          " #reg ",        " #immediate "                     \n\t"
76*fb1b10abSAndroid Build Coastguard Worker 
77*fb1b10abSAndroid Build Coastguard Worker #endif /* HAVE_MIPS64 */
78*fb1b10abSAndroid Build Coastguard Worker 
79*fb1b10abSAndroid Build Coastguard Worker #endif /* HAVE_MMI */
80*fb1b10abSAndroid Build Coastguard Worker 
81*fb1b10abSAndroid Build Coastguard Worker #endif  // VPX_VPX_PORTS_ASMDEFS_MMI_H_
82