1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp avidemux_2.4.1/avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp 2008-03-12 07:47:59.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp 2008-03-13 04:43:33.000000000 +0300
@@ -150,7 +150,7 @@
return df;
}
#if defined( ARCH_X86 ) || defined (ARCH_X86_64)
-static uint64_t noise64;
+static uint64_t noise64 asm("noise64");
static uint32_t computeDiffMMX(uint8_t *s1,uint8_t *s2,uint32_t noise,uint32_t l)
{
uint32_t df=0;
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_video/ADM_interlaced.cpp avidemux_2.4.1/avidemux/ADM_video/ADM_interlaced.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_video/ADM_interlaced.cpp 2008-03-12 07:48:00.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_video/ADM_interlaced.cpp 2008-03-13 04:59:01.000000000 +0300
@@ -73,13 +73,13 @@
#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING)
static uint32_t ADMVideo_interlaceCount_MMX( uint8_t *src ,uint32_t w, uint32_t h);
-static uint8_t *_l_p=NULL;
-static uint8_t *_l_c=NULL;
-static uint8_t *_l_n=NULL;
+static uint8_t *_l_p asm("_l_p") =NULL;
+static uint8_t *_l_c asm("_l_c") =NULL;
+static uint8_t *_l_n asm("_l_n") =NULL;
-static int64_t _l_h;
+static int64_t _l_h asm("_l_h");
-static mmx_t _lthresh,_added,_total,_lwrd;
+static mmx_t _lthresh, _added, _total asm("_total"), _lwrd;
static mmx_t _l255;
static mmx_t _l0;
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidBlend.cpp avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidBlend.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidBlend.cpp 2008-03-12 07:48:00.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidBlend.cpp 2008-03-13 05:02:49.000000000 +0300
@@ -40,15 +40,15 @@
#include "admmangle.h"
#ifdef ARCH_X86_64
-static int64_t _l_w,_l_h;
+static int64_t _l_w asm("_l_w"), _l_h asm("_l_h");
#else
- static int32_t _l_w,_l_h;
+ static int32_t _l_w asm("_l_w"), _l_h asm("_l_h");
#endif
- static uint8_t *_l_p,*_l_c,*_l_n;
- static uint8_t *_l_e,*_l_e2;
+ static uint8_t *_l_p asm("_l_p"), *_l_c asm("_l_c"), *_l_n asm("_l_n");
+ static uint8_t *_l_e asm("_l_e"), *_l_e2 asm("_l_e2");
#define EXPAND(x) (x)+((x)<<16)+((x)<<32) +((x)<<48)
-static uint64_t __attribute__((used)) _mmTHRESH1=EXPAND((uint64_t )THRES1);
-static uint64_t __attribute__((used)) full_ones=0xFFFFFFFFFFFFFFFFLL;
+static uint64_t __attribute__((used)) _mmTHRESH1 asm("_mmTHRESH1") =EXPAND((uint64_t )THRES1);
+static uint64_t __attribute__((used)) full_ones asm("full_ones") =0xFFFFFFFFFFFFFFFFLL;
static void myBlendASM(void);
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp 2008-03-12 07:48:00.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp 2008-03-13 04:38:50.000000000 +0300
@@ -45,9 +45,9 @@
void myDeintASM(void);
- static int32_t _l_w,_l_h,_l_all;
- static uint8_t *_l_p,*_l_c,*_l_n;
- static uint8_t *_l_e,*_l_e2;
+ static int32_t _l_w,_l_h, _l_all asm("_l_all");
+ static uint8_t *_l_p asm("_l_p"), *_l_c asm("_l_c"), *_l_n asm("_l_n");
+ static uint8_t *_l_e asm("_l_e"), *_l_e2 asm("_l_e2");
#define EXPAND(x) (x)+((x)<<16)+((x)<<32) +((x)<<48)
static mmx_t _mmTHRESH1;
static mmx_t _mmTHRESH2;
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidFlux.cpp avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidFlux.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidFlux.cpp 2008-03-12 07:48:00.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidFlux.cpp 2008-03-13 06:06:57.000000000 +0300
@@ -44,8 +44,8 @@
#include "ADM_assert.h"
-static int16_t scaletab[16];
-static uint64_t scaletab_MMX[65536];
+static int16_t scaletab[16] asm("scaletab");
+static uint64_t scaletab_MMX[65536] asm("scaletab_MMX");
void initScaleTab( void )
{
@@ -72,18 +72,20 @@
//#define ASM_FLUX
BUILD_CREATE(fluxsmooth_create,ADMVideoFlux);
-static uint64_t spat_thresh ASM_CONST =0LL;
-static uint64_t temp_thresh ASM_CONST =0LL;
-static uint64_t ASM_CONST _l_counter_init,_l_indexer,_l_prev_pels,_l_next_pels;
-static long int _l_src_pitch ASM_CONST =0;
-static long int _l_dst_pitch ASM_CONST =0;
-static int _l_xmax ASM_CONST=0;
+static uint64_t spat_thresh asm("spat_thresh") ASM_CONST =0LL;
+static uint64_t temp_thresh asm("temp_thresh") ASM_CONST =0LL;
+static uint64_t ASM_CONST _l_counter_init asm("_l_counter_init"),
+ _l_indexer asm("_l_indexer"), _l_prev_pels asm("_l_prev_pels"),
+ _l_next_pels asm("_l_next_pels");
+static long int _l_src_pitch asm("_l_src_pitch") ASM_CONST =0;
+static long int _l_dst_pitch asm("_l_dst_pitch") ASM_CONST =0;
+static int _l_xmax asm("_l_xmax") ASM_CONST=0;
-static int ycnt;
-static uint8_t * _l_currp;
-static uint8_t * _l_prevp;
-static uint8_t * _l_nextp;
-static uint8_t * _l_destp;
+static int ycnt asm("ycnt");
+static uint8_t * _l_currp asm("_l_currp");
+static uint8_t * _l_prevp asm("_l_prevp");
+static uint8_t * _l_nextp asm("_l_nextp");
+static uint8_t * _l_destp asm("_l_destp");
static uint32_t size;
diff -urdH avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp
--- avidemux_2.4.1-gcc43-inlines/avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp 2008-03-12 07:48:00.000000000 +0300
+++ avidemux_2.4.1/avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp 2008-03-13 04:45:37.000000000 +0300
@@ -174,7 +174,7 @@
return 1;
}
#if (defined( ARCH_X86) || defined(ARCH_X86_64))
-static uint64_t low,high;
+static uint64_t low asm("low"), high asm("high");
static void blendMMX(uint8_t *src, uint8_t *src2, uint8_t *dst, uint8_t alpha, uint8_t beta,uint32_t count)
{
uint32_t left=count&3;
|