diff --git a/libswscale/internal_bfin.S b/libswscale/internal_bfin.S index 475d704529c313a97305878d70d0e02da0714734..2d5c61a14acd7fc07f3fbf6a6cb75cae8c57a8e0 100644 --- a/libswscale/internal_bfin.S +++ b/libswscale/internal_bfin.S @@ -94,8 +94,12 @@ */ -#define mL1 .l1.text #define mL3 .text +#ifdef __FDPIC__ +#define mL1 .l1.text +#else +#define mL1 mL3 +#endif #define MEM mL1 #define DEFUN(fname,where,interface) \ diff --git a/libswscale/swscale_bfin.c b/libswscale/swscale_bfin.c index 763a005d90eb048d5b08d1e3273fd4eb77dcaf0f..bbc304dfe35616878405d40dfceabf6c8d1e8022 100644 --- a/libswscale/swscale_bfin.c +++ b/libswscale/swscale_bfin.c @@ -34,14 +34,19 @@ #include "swscale.h" #include "swscale_internal.h" +#ifdef __FDPIC__ +#define L1CODE __attribute__ ((l1_text)) +#else +#define L1CODE +#endif extern int ff_bfin_uyvytoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, - long lumStride, long chromStride, long srcStride) __attribute__ ((l1_text)); + long lumStride, long chromStride, long srcStride) L1CODE; extern int ff_bfin_yuyvtoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, - long lumStride, long chromStride, long srcStride) __attribute__ ((l1_text)); + long lumStride, long chromStride, long srcStride) L1CODE; static int uyvytoyv12_unscaled (SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t* dst[], int dstStride[]) diff --git a/libswscale/yuv2rgb_bfin.c b/libswscale/yuv2rgb_bfin.c index e35d49efbdcf5bb5daf5224a79c4af056d0f7b0e..d2770793bcd7485458b7bf4c10e9e369950a30a1 100644 --- a/libswscale/yuv2rgb_bfin.c +++ b/libswscale/yuv2rgb_bfin.c @@ -36,8 +36,11 @@ #include "swscale.h" #include "swscale_internal.h" - +#ifdef __FDPIC__ #define L1CODE __attribute__ ((l1_text)) +#else +#define L1CODE +#endif extern void ff_bfin_yuv2rgb555_line (uint8_t *Y, uint8_t *U, uint8_t *V, uint8_t *out, int w, uint32_t *coeffs) L1CODE;