- } else if(strncmp(opt, "fpu=", 4) == 0) {
- GET_ARG_AFTER(opt, "-mfpu=");
- snprintf(arch_opt, sizeof(arch_opt), "%s-fpunit=%s", cpu_arch, opt);
+ } else if(strncmp(opt, "fpmath=", 7) == 0) {
+ GET_ARG_AFTER(opt, "-mfpmath=");
+ if(strcmp(opt, "387") == 0)
+ opt = "x87";
+ else if(strcmp(opt, "sse") == 0)
+ opt = "sse2";
+ else {
+ fprintf(stderr, "error: option -mfpumath supports only 387 or sse\n");
+ argument_errors = true;
+ }
+ if(!argument_errors) {
+ snprintf(arch_opt, sizeof(arch_opt), "%s-fpunit=%s", cpu_arch, opt);
+ int res = firm_be_option(arch_opt);
+ if (res == 0)
+ argument_errors = true;
+ }
+ } else if(strncmp(opt, "preferred-stack-boundary=", 25) == 0) {
+ GET_ARG_AFTER(opt, "-mpreferred-stack-boundary=");
+ snprintf(arch_opt, sizeof(arch_opt), "%s-stackalign=%s", cpu_arch, opt);