[FFmpeg-cvslog] r23952 - in trunk: configure libavcodec/ppc/asm.S libavcodec/ppc/regs.h
mru
subversion
Fri Jul 2 01:21:27 CEST 2010
Author: mru
Date: Fri Jul 2 01:21:27 2010
New Revision: 23952
Log:
Check whether IBM or Apple PPC assembler syntax is used
This checks which assembler syntax is supported and defines macros
for register names accordingly.
Added:
trunk/libavcodec/ppc/asm.S
trunk/libavcodec/ppc/regs.h
Modified:
trunk/configure
Modified: trunk/configure
==============================================================================
--- trunk/configure Fri Jul 2 01:21:23 2010 (r23951)
+++ trunk/configure Fri Jul 2 01:21:27 2010 (r23952)
@@ -989,6 +989,7 @@ HAVE_LIST="
GetProcessTimes
getrusage
struct_rusage_ru_maxrss
+ ibm_asm
inet_aton
inline_asm
isatty
@@ -2340,6 +2341,7 @@ elif enabled ppc; then
enable local_aligned_8 local_aligned_16
check_asm dcbzl '"dcbzl 0, 1"'
+ check_asm ibm_asm '"add 0, 0, 0"'
check_asm ppc4xx '"maclhw r10, r11, r12"'
check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
Added: trunk/libavcodec/ppc/asm.S
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/libavcodec/ppc/asm.S Fri Jul 2 01:21:27 2010 (r23952)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2009 Loren Merritt
+ *
+ * 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"
+
+#if HAVE_IBM_ASM
+
+.macro DEFINE_REG n
+ .equiv r\n, \n
+ .equiv f\n, \n
+ .equiv v\n, \n
+.endm
+
+DEFINE_REG 0
+DEFINE_REG 1
+DEFINE_REG 2
+DEFINE_REG 3
+DEFINE_REG 4
+DEFINE_REG 5
+DEFINE_REG 6
+DEFINE_REG 7
+DEFINE_REG 8
+DEFINE_REG 9
+DEFINE_REG 10
+DEFINE_REG 11
+DEFINE_REG 12
+DEFINE_REG 13
+DEFINE_REG 14
+DEFINE_REG 15
+DEFINE_REG 16
+DEFINE_REG 17
+DEFINE_REG 18
+DEFINE_REG 19
+DEFINE_REG 20
+DEFINE_REG 21
+DEFINE_REG 22
+DEFINE_REG 23
+DEFINE_REG 24
+DEFINE_REG 25
+DEFINE_REG 26
+DEFINE_REG 27
+DEFINE_REG 28
+DEFINE_REG 29
+DEFINE_REG 30
+DEFINE_REG 31
+
+#endif /* HAVE_IBM_ASM */
Added: trunk/libavcodec/ppc/regs.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/libavcodec/ppc/regs.h Fri Jul 2 01:21:27 2010 (r23952)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2010 Mans Rullgard
+ *
+ * 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_PPC_REGS_H
+#define AVCODEC_PPC_REGS_H
+
+#include "libavutil/avutil.h"
+#include "config.h"
+
+#if HAVE_IBM_ASM
+# define r(n) AV_TOSTRING(n)
+# define f(n) AV_TOSTRING(n)
+# define v(n) AV_TOSTRING(n)
+#else
+# define r(n) AV_TOSTRING(r ## n)
+# define f(n) AV_TOSTRING(f ## n)
+# define v(n) AV_TOSTRING(v ## n)
+#endif
+
+#endif /* AVCODEC_PPC_REGS_H */
More information about the ffmpeg-cvslog
mailing list