avcodec: loongson add constant definition
author周晓勇 <zhouxiaoyong@loongson.cn>
Thu, 16 Jul 2015 07:06:27 +0000 (15:06 +0800)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 16 Jul 2015 12:27:49 +0000 (14:27 +0200)
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/mips/Makefile
libavcodec/mips/constants.c [new file with mode: 0644]
libavcodec/mips/constants.h [new file with mode: 0644]

index 9eb815a..93ac2dc 100644 (file)
@@ -56,6 +56,7 @@ MSA-OBJS-$(CONFIG_IDCTDSP)                += mips/idctdsp_msa.o           \
 MSA-OBJS-$(CONFIG_MPEGVIDEO)              += mips/mpegvideo_msa.o
 MSA-OBJS-$(CONFIG_MPEGVIDEOENC)           += mips/mpegvideoencdsp_msa.o
 MSA-OBJS-$(CONFIG_ME_CMP)                 += mips/me_cmp_msa.o
+MMI-OBJS                                  += mips/constants.o
 MMI-OBJS-$(CONFIG_H264DSP)                += mips/h264dsp_mmi.o
 MMI-OBJS-$(CONFIG_H264CHROMA)             += mips/h264chroma_mmi.o
 MMI-OBJS-$(CONFIG_H264PRED)               += mips/h264pred_mmi.o
diff --git a/libavcodec/mips/constants.c b/libavcodec/mips/constants.c
new file mode 100644 (file)
index 0000000..135b9d4
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2015 Loongson Technology Corporation Limited
+ * Copyright (c) 2015 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "config.h"
+#include "libavutil/mem.h"
+#include "constants.h"
+
+const uint64_t __attribute__ ((aligned(8))) ff_pw_1 =       {0x0001000100010001ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_4 =       {0x0004000400040004ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_5 =       {0x0005000500050005ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_3 =       {0x0003000300030003ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_8 =       {0x0008000800080008ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_9 =       {0x0009000900090009ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_16 =      {0x0010001000100010ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_18 =      {0x0012001200120012ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_28 =      {0x001C001C001C001CULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_32 =      {0x0020002000200020ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_53 =      {0x0035003500350035ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_64 =      {0x0040004000400040ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_128 =     {0x0080008000800080ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_m8tom5 =  {0xFFFBFFFAFFF9FFF8ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_m4tom1 =  {0xFFFFFFFEFFFDFFFCULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_1to4 =    {0x0004000300020001ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_5to8 =    {0x0008000700060005ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_0to3 =    {0x0003000200010000ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_4to7 =    {0x0007000600050004ULL};
+
+const uint64_t __attribute__ ((aligned(8))) ff_pb_1 =       {0x0101010101010101ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_3 =       {0x0303030303030303ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_80 =      {0x8080808080808080ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_A1 =      {0xA1A1A1A1A1A1A1A1ULL};
+
+const uint64_t __attribute__ ((aligned(8))) ff_rnd =        {0x0004000400040004ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_rnd2 =       {0x0040004000400040ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_rnd3 =       {0x0020002000200020ULL};
diff --git a/libavcodec/mips/constants.h b/libavcodec/mips/constants.h
new file mode 100644 (file)
index 0000000..26b19f0
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2015 Loongson Technology Corporation Limited
+ * Copyright (c) 2015 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_MIPS_CONSTANTS_H
+#define AVCODEC_MIPS_CONSTANTS_H
+
+#include <stdint.h>
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_4;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_5;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_8;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_9;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_16;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_18;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_28;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_32;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_53;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_64;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_128;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_m8tom5;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_m4tom1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_1to4;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_5to8;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_0to3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_4to7;
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_80;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_A1;
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd;
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd2;
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd3;
+
+#endif /* AVCODEC_MIPS_CONSTANTS_H */