This checks which assembler syntax is supported and defines macros for register names accordingly. Originally committed as revision 23952 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
| @@ -989,6 +989,7 @@ HAVE_LIST=" | |||||
| GetProcessTimes | GetProcessTimes | ||||
| getrusage | getrusage | ||||
| struct_rusage_ru_maxrss | struct_rusage_ru_maxrss | ||||
| ibm_asm | |||||
| inet_aton | inet_aton | ||||
| inline_asm | inline_asm | ||||
| isatty | isatty | ||||
| @@ -2340,6 +2341,7 @@ elif enabled ppc; then | |||||
| enable local_aligned_8 local_aligned_16 | enable local_aligned_8 local_aligned_16 | ||||
| check_asm dcbzl '"dcbzl 0, 1"' | check_asm dcbzl '"dcbzl 0, 1"' | ||||
| check_asm ibm_asm '"add 0, 0, 0"' | |||||
| check_asm ppc4xx '"maclhw r10, r11, r12"' | check_asm ppc4xx '"maclhw r10, r11, r12"' | ||||
| check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' | check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' | ||||
| @@ -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 */ | |||||
| @@ -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 */ | |||||