]> git.tdb.fi Git - builder.git/blobdiff - source/gnucompiler.cpp
Add support for SSE3 and SSE4.1 FPUs
[builder.git] / source / gnucompiler.cpp
index fe1d735db197c6acff4512fe08721ec94b2ffaf5..2752ff4ed969db58745094d0d38249c752fa976b 100644 (file)
@@ -210,9 +210,9 @@ Task *GnuCompiler::run(const Target &target) const
 
        string tag_for_std = (tag=="OBJC" ? "CC" : tag);
        if(binfo.standards.count(tag_for_std))
-               argv.push_back("-std="+get_item(binfo.standards, tag_for_std));
+               argv.push_back("-std="+get_item(binfo.standards, tag_for_std).str());
        if(tag=="OBJC" && binfo.standards.count(tag))
-               argv.push_back("-fobjc-std="+get_item(binfo.standards, tag));
+               argv.push_back("-fobjc-std="+get_item(binfo.standards, tag).str());
 
        if(binfo.warning_level>=1)
        {
@@ -305,9 +305,17 @@ Task *GnuCompiler::run(const Target &target) const
        {
                if(architecture->get_type()=="x86")
                {
-                       argv.push_back("-mfpmath="+architecture->get_fpu());
+                       if(architecture->get_fpu()=="387")
+                               argv.push_back("-mfpmath=387");
+                       else if(!architecture->get_fpu().compare(0, 3, "sse"))
+                               argv.push_back("-mfpmath=sse");
+
                        if(architecture->get_fpu()=="sse")
                                argv.push_back("-msse2");
+                       else if(architecture->get_fpu()=="sse3")
+                               argv.push_back("-msse3");
+                       else if(architecture->get_fpu()=="sse4.1")
+                               argv.push_back("-msse4.1");
                }
                else if(architecture->get_type()=="arm")
                {