diff options
author | bhuztez <[email protected]> | 2017-12-31 14:07:49 +0800 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-01-29 16:39:21 +0100 |
commit | 38a99af36f044459db40b76be2cc72c638eb6d98 (patch) | |
tree | e8c656436ed0d934aab93daa5c3bc8ef33a05cd4 /lib/hipe/x86/hipe_x86_assemble.erl | |
parent | b73e87f5de895860337c0d30473edd1e59667baa (diff) | |
download | otp-38a99af36f044459db40b76be2cc72c638eb6d98.tar.gz otp-38a99af36f044459db40b76be2cc72c638eb6d98.tar.bz2 otp-38a99af36f044459db40b76be2cc72c638eb6d98.zip |
make HiPE work on x86_64 when PIE is enabled
Currently HiPE amd64 assumes the runtime system code is loaded into
the low 2G of the address space. However, this is not the case when
PIE is enabled, it is loaded into a random location. So trampolines
are required to call BIFs, and also we have first to load the address
of sse2_fnegate_mask to a regisiter before xorpd in fchs.
Diffstat (limited to 'lib/hipe/x86/hipe_x86_assemble.erl')
-rw-r--r-- | lib/hipe/x86/hipe_x86_assemble.erl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/hipe/x86/hipe_x86_assemble.erl b/lib/hipe/x86/hipe_x86_assemble.erl index 50919bdf4e..9d2586a14d 100644 --- a/lib/hipe/x86/hipe_x86_assemble.erl +++ b/lib/hipe/x86/hipe_x86_assemble.erl @@ -735,6 +735,7 @@ resolve_sse2_op(Op) -> fdiv -> divsd; fmul -> mulsd; fsub -> subsd; + xorpd -> xorpd; _ -> exit({?MODULE, unknown_sse2_operator, Op}) end. |