diff options
-rw-r--r-- | volk/gen/archs.xml | 8 | ||||
-rw-r--r-- | volk/gen/machines.xml | 4 | ||||
-rw-r--r-- | volk/gen/volk_machine_defs.py | 2 | ||||
-rw-r--r-- | volk/lib/CMakeLists.txt | 12 | ||||
-rw-r--r-- | volk/tmpl/volk_machine_xxx.tmpl.c | 18 |
5 files changed, 20 insertions, 24 deletions
diff --git a/volk/gen/archs.xml b/volk/gen/archs.xml index 59cc81cc5..2b0e8e508 100644 --- a/volk/gen/archs.xml +++ b/volk/gen/archs.xml @@ -89,7 +89,13 @@ </arch> <arch name="orc" type="all"> - <flag>lorc-0.4</flag> + <flag>none</flag> + <overrule>LV_HAVE_ORC</overrule> + <overrule_val>no</overrule_val> +</arch> + +<arch name="norc" type="all"> + <flag>none</flag> <overrule>LV_HAVE_ORC</overrule> <overrule_val>no</overrule_val> </arch> diff --git a/volk/gen/machines.xml b/volk/gen/machines.xml index 04ffef22b..6ce077e3c 100644 --- a/volk/gen/machines.xml +++ b/volk/gen/machines.xml @@ -48,10 +48,6 @@ <archs>generic 32|64| mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx</archs> </machine> -<machine name="avx_only"> -<archs>generic mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx</archs> -</machine> - <machine name="altivec"> <archs>generic altivec</archs> </machine> diff --git a/volk/gen/volk_machine_defs.py b/volk/gen/volk_machine_defs.py index b30a480ba..77ebe64f0 100644 --- a/volk/gen/volk_machine_defs.py +++ b/volk/gen/volk_machine_defs.py @@ -69,7 +69,7 @@ for machine_xml in machines_xml: val = machine_xml.getElementsByTagName(name)[0].firstChild.data kwargs[name] = val except: pass - kwargs['archs'] = kwargs['archs'].split() + kwargs['archs'] = kwargs['archs'].split() + ['orc|norc'] register_machine(**kwargs) if __name__ == '__main__': diff --git a/volk/lib/CMakeLists.txt b/volk/lib/CMakeLists.txt index b45f89d02..6e80e99e8 100644 --- a/volk/lib/CMakeLists.txt +++ b/volk/lib/CMakeLists.txt @@ -72,6 +72,18 @@ foreach(line ${arch_flag_lines}) endforeach(line) ######################################################################## +# implement overruling in the ORC case, +# since ORC always passes flag detection +######################################################################## +if(ORC_FOUND) + message(STATUS "Overruled arch not orc") + list(REMOVE_ITEM available_archs norc) +else() + message(STATUS "Overruled arch orc") + list(REMOVE_ITEM available_archs orc) +endif() + +######################################################################## # implement overruling in the non-multilib case # this makes things work when both -m32 and -m64 pass ######################################################################## diff --git a/volk/tmpl/volk_machine_xxx.tmpl.c b/volk/tmpl/volk_machine_xxx.tmpl.c index 023eea502..1f6a77501 100644 --- a/volk/tmpl/volk_machine_xxx.tmpl.c +++ b/volk/tmpl/volk_machine_xxx.tmpl.c @@ -58,22 +58,6 @@ $(' | '.join(['(1 << LV_%s)'%a.name.upper() for a in $archs]))#slurp {$(', '.join(['%s_%s'%($name, a) for a in $tags]))}#slurp #end def -#ifdef LV_HAVE_ORC -struct volk_machine volk_machine_$(this_machine.name) = { - $make_arch_have_list($this_machine.archs) | (1 << LV_ORC), - "$this_machine.name", - $this_machine.alignment, - #for $kern in $kernels - #set $taglist, $tagdeps = $kern.get_tags($arch_names + ["orc"]) - "$kern.name", - $make_tag_str_list($taglist), - $make_tag_have_list($tagdeps), - $make_tag_kern_list($kern.name, $taglist), - $(len($taglist)), - #end for -}; - -#else struct volk_machine volk_machine_$(this_machine.name) = { $make_arch_have_list($this_machine.archs), "$this_machine.name", @@ -87,5 +71,3 @@ struct volk_machine volk_machine_$(this_machine.name) = { $(len($taglist)), #end for }; - -#endif |