diff --git a/.pick_status.json b/.pick_status.json index e709fc9d05b..d4031bae5f0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1154,7 +1154,7 @@ "description": "llvmpipe: Set \"+64bit\" for X86_64", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f92cadccc65128fdaa54e59ba40dcf75e90a25dd", "notes": null diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index a5e84d708f2..9cb213bb9e4 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -416,6 +416,13 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, * so we do not use llvm::sys::getHostCPUFeatures to detect cpu features * but using util_get_cpu_caps() instead. */ +#if DETECT_ARCH_X86_64 + /* + * Without this, on some "buggy" qemu cpu setup, LLVM could crash + * if LLVM detects the wrong CPU type. + */ + MAttrs.push_back("+64bit"); +#endif MAttrs.push_back(util_get_cpu_caps()->has_sse ? "+sse" : "-sse" ); MAttrs.push_back(util_get_cpu_caps()->has_sse2 ? "+sse2" : "-sse2" ); MAttrs.push_back(util_get_cpu_caps()->has_sse3 ? "+sse3" : "-sse3" );