freebsd x86 patch as simple as I can get it.

use `cc -c` for preprocessed assembly and it will map to either clang or
gcc depending on the platform.

stick with `as` for general assembly as that seems to fit better with
the other targets