OLD | NEW |
---|---|
(Empty) | |
1 # Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 source_set("simd") { | |
6 if (cpu_arch == "ia32") { | |
brettw
2014/05/03 04:38:33
ia32 -> x86
ckocagil
2014/05/03 06:43:46
Done.
| |
7 sources = [ | |
8 "simd/jsimd_i386.c", | |
9 "simd/jccolmmx.asm", | |
10 "simd/jccolss2.asm", | |
11 "simd/jcgrammx.asm", | |
12 "simd/jcgrass2.asm", | |
13 "simd/jcqnt3dn.asm", | |
14 "simd/jcqntmmx.asm", | |
15 "simd/jcqnts2f.asm", | |
16 "simd/jcqnts2i.asm", | |
17 "simd/jcqntsse.asm", | |
18 "simd/jcsammmx.asm", | |
19 "simd/jcsamss2.asm", | |
20 "simd/jdcolmmx.asm", | |
21 "simd/jdcolss2.asm", | |
22 "simd/jdmermmx.asm", | |
23 "simd/jdmerss2.asm", | |
24 "simd/jdsammmx.asm", | |
25 "simd/jdsamss2.asm", | |
26 "simd/jf3dnflt.asm", | |
27 "simd/jfmmxfst.asm", | |
28 "simd/jfmmxint.asm", | |
29 "simd/jfss2fst.asm", | |
30 "simd/jfss2int.asm", | |
31 "simd/jfsseflt.asm", | |
32 "simd/ji3dnflt.asm", | |
33 "simd/jimmxfst.asm", | |
34 "simd/jimmxint.asm", | |
35 "simd/jimmxred.asm", | |
36 "simd/jiss2flt.asm", | |
37 "simd/jiss2fst.asm", | |
38 "simd/jiss2int.asm", | |
39 "simd/jiss2red.asm", | |
40 "simd/jisseflt.asm", | |
41 "simd/jsimdcpu.asm", | |
42 ] | |
43 } else if (cpu_arch == "x64" && !is_msan) { | |
44 sources = [ | |
45 "simd/jsimd_x86_64.c", | |
46 "simd/jccolss2-64.asm", | |
47 "simd/jcgrass2-64.asm", | |
48 "simd/jcqnts2f-64.asm", | |
49 "simd/jcqnts2i-64.asm", | |
50 "simd/jcsamss2-64.asm", | |
51 "simd/jdcolss2-64.asm", | |
52 "simd/jdmerss2-64.asm", | |
53 "simd/jdsamss2-64.asm", | |
54 "simd/jfss2fst-64.asm", | |
55 "simd/jfss2int-64.asm", | |
56 "simd/jfsseflt-64.asm", | |
57 "simd/jiss2flt-64.asm", | |
58 "simd/jiss2fst-64.asm", | |
59 "simd/jiss2int-64.asm", | |
60 "simd/jiss2red-64.asm", | |
61 ] | |
62 } else { | |
63 sources = [ "jsimd_none.c" ] | |
64 } | |
65 } | |
66 | |
67 config("libjpeg_config") { | |
68 include_dirs = [ "." ] | |
69 } | |
70 | |
71 source_set("libjpeg") { | |
72 sources = [ | |
73 "jcapimin.c", | |
74 "jcapistd.c", | |
75 "jccoefct.c", | |
76 "jccolor.c", | |
77 "jcdctmgr.c", | |
78 "jchuff.c", | |
79 "jchuff.h", | |
80 "jcinit.c", | |
81 "jcmainct.c", | |
82 "jcmarker.c", | |
83 "jcmaster.c", | |
84 "jcomapi.c", | |
85 "jconfig.h", | |
86 "jcparam.c", | |
87 "jcphuff.c", | |
88 "jcprepct.c", | |
89 "jcsample.c", | |
90 "jdapimin.c", | |
91 "jdapistd.c", | |
92 "jdatadst.c", | |
93 "jdatasrc.c", | |
94 "jdcoefct.c", | |
95 "jdcolor.c", | |
96 "jdct.h", | |
97 "jddctmgr.c", | |
98 "jdhuff.c", | |
99 "jdhuff.h", | |
100 "jdinput.c", | |
101 "jdmainct.c", | |
102 "jdmarker.c", | |
103 "jdmaster.c", | |
104 "jdmerge.c", | |
105 "jdphuff.c", | |
106 "jdpostct.c", | |
107 "jdsample.c", | |
108 "jerror.c", | |
109 "jerror.h", | |
110 "jfdctflt.c", | |
111 "jfdctfst.c", | |
112 "jfdctint.c", | |
113 "jidctflt.c", | |
114 "jidctfst.c", | |
115 "jidctint.c", | |
116 "jidctred.c", | |
117 "jinclude.h", | |
118 "jmemmgr.c", | |
119 "jmemnobs.c", | |
120 "jmemsys.h", | |
121 "jmorecfg.h", | |
122 "jpegint.h", | |
123 "jpeglib.h", | |
124 "jpeglibmangler.h", | |
125 "jquant1.c", | |
126 "jquant2.c", | |
127 "jutils.c", | |
128 "jversion.h", | |
129 ] | |
130 | |
131 defines = [ | |
132 "WITH_SIMD", | |
133 "MOTION_JPEG_SUPPORTED", | |
134 "NO_GETENV", | |
135 ] | |
136 | |
137 configs += [ ":libjpeg_config" ] | |
138 | |
139 direct_dependent_configs = [ ":libjpeg_config" ] | |
140 | |
141 deps = [] | |
142 | |
143 # MemorySanitizer doesn't support assembly code, so keep it disabled in | |
144 # MSan builds for now. | |
145 if (is_msan || cpu_arch == "arm64" || cpu_arch == "mipsel") { | |
146 sources += [ "jsimd_none.c" ] | |
147 } else { | |
148 deps += [ ":simd" ] | |
149 } | |
150 | |
151 # TODO: | |
152 # The ARM SIMD implementation can be used for devices that support | |
153 # the NEON instruction set. This can safely be done dynamically by | |
154 # probing CPU features at runtime, if you wish. | |
155 # [ 'target_arch=="arm"', { | |
brettw
2014/05/03 04:38:33
This should be pretty easy to finish now:
at the t
ckocagil
2014/05/03 06:43:46
Done.
| |
156 # 'conditions': [ | |
157 # [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { | |
158 # 'sources': [ | |
159 # 'simd/jsimd_arm.c', | |
160 # 'simd/jsimd_arm_neon.S', | |
161 # ], | |
162 # }, { | |
163 # 'sources': [ | |
164 # 'jsimd_none.c', | |
165 # ], | |
166 # }] | |
167 # ], | |
168 # }], | |
brettw
2014/05/03 04:38:33
Can you put a TODO here about Windows & Mac?
ckocagil
2014/05/03 06:43:46
About what exactly?
brettw
2014/05/05 18:09:04
It looks like there's a whole bunch of stuff in th
ckocagil
2014/05/05 23:29:42
Done.
| |
169 } | |
OLD | NEW |