FFmpeg
4.0
libavcodec
mips
mathops.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 Mans Rullgard <mans@mansr.com>
3
* Copyright (c) 2015 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#ifndef AVCODEC_MIPS_MATHOPS_H
23
#define AVCODEC_MIPS_MATHOPS_H
24
25
#include <stdint.h>
26
#include "config.h"
27
#include "
libavutil/common.h
"
28
29
#if HAVE_INLINE_ASM
30
31
#if HAVE_LOONGSON3
32
33
#define MULH MULH
34
static
inline
av_const
int
MULH
(
int
a
,
int
b
)
35
{
36
int
c
;
37
__asm__ (
"dmult %1, %2 \n\t"
38
"mflo %0 \n\t"
39
"dsrl %0, %0, 32 \n\t"
40
:
"=r"
(c)
41
:
"r"
(a),
"r"
(b)
42
:
"hi"
,
"lo"
);
43
return
c
;
44
}
45
46
#define mid_pred mid_pred
47
static
inline
av_const
int
mid_pred
(
int
a,
int
b,
int
c)
48
{
49
int
t =
b
;
50
__asm__ (
"sgt $8, %1, %2 \n\t"
51
"movn %0, %1, $8 \n\t"
52
"movn %1, %2, $8 \n\t"
53
"sgt $8, %1, %3 \n\t"
54
"movz %1, %3, $8 \n\t"
55
"sgt $8, %0, %1 \n\t"
56
"movn %0, %1, $8 \n\t"
57
:
"+&r"
(t),
"+&r"
(a)
58
:
"r"
(b),
"r"
(c)
59
:
"$8"
);
60
return
t;
61
}
62
63
#endif
/* HAVE_LOONGSON3 */
64
65
#endif
/* HAVE_INLINE_ASM */
66
67
#endif
/* AVCODEC_MIPS_MATHOPS_H */
av_const
#define av_const
Definition:
attributes.h:76
b
const char * b
Definition:
vf_curves.c:113
mid_pred
#define mid_pred
Definition:
mathops.h:97
common.h
common internal and external API header
c
static double c[64]
Definition:
vsrc_mptestsrc.c:87
a
a
Definition:
h264pred_template.c:468
MULH
#define MULH
Definition:
mathops.h:42
Generated on Tue May 22 2018 07:06:28 for FFmpeg by
1.8.13