On 09/24/2017 21:06, [email protected] wrote: >> Alternatively, one can try changing 'r14' to 'rbp' in definition >>> of "AREG0" for amd64 at src/recompiler/dyngen-exec.h:81. This is >>> the only place where gcc is needed, as clang cannot handle r14 >>> for now [0]. >>> >>> I recompiled kBuild with clang, and succeeded compiling virtualbox-ose >>> with 'r14' to 'rbp' change. It seems to work normally, but I don't >>> know what are the performance implications of using up rbp. >>> >>> [0] clang/lib/Basic/Targets/X86.h: >>> 860 bool validateGlobalRegisterVariable(StringRef RegName, >>> unsigned RegSize, 861 bool >>> &HasSizeMismatch) const override { 862 // rsp and rbp are the >>> only 64-bit registers the x86 backend can currently 863 // handle. >>> 864 if (RegName.equals("rsp") || RegName.equals("rbp")) { >>> 865 // Check that the register size is 64-bit. >>> 866 HasSizeMismatch = RegSize != 64; >>> 867 return true; >>> 868 } >> >> Please try the attached patch. > > Thanks for the patch! I gave it a quick try (not an extensive test), > and VirtualBox, compiled fully with clang, seems to work as usual.
Committed (r450636), thanks! For more detailed information, please read the commit log. https://svnweb.freebsd.org/changeset/ports/450636 Jung-uk Kim
signature.asc
Description: OpenPGP digital signature
