diff options
author | Kostis Sagonas <[email protected]> | 2016-11-03 17:16:01 +0100 |
---|---|---|
committer | Kostis Sagonas <[email protected]> | 2016-11-03 17:16:01 +0100 |
commit | 1257cee4faf33cc69c9452ba54afe5d5dbd4ddf6 (patch) | |
tree | a367455fa28bf1b548debd8de49b1a3caa282fe4 /lib/hipe/prebuild.skip | |
parent | 0e8268be503ea53c100fef03d498ad7cc642c11b (diff) | |
download | otp-1257cee4faf33cc69c9452ba54afe5d5dbd4ddf6.tar.gz otp-1257cee4faf33cc69c9452ba54afe5d5dbd4ddf6.tar.bz2 otp-1257cee4faf33cc69c9452ba54afe5d5dbd4ddf6.zip |
Fix the native code translation of bs_match_string
This fixes a HiPE bug reported on erlang-questions on 2/11/2016.
The BEAM to ICode tranaslation of the bs_match_string instruction,
written long ago for binaries (i.e., with byte-sized strings), tried
to do a `clever' translation of even bit-sized strings using a HiPE
primop that took a `Size' argument expressed in *bytes*.
ICode is not really the place to do such a thing, and moreover there
is really no reason for the HiPE primop not to take a Size argument
expressed in *bits* instead. This commit changes the `Size' argument
to be in bits, postpones the translation of the bs_match_string primop
Fixed in a pair-programming/debugging session with @margnus1.
until RTL and does a proper translation using bit-sized quantities there.
Diffstat (limited to 'lib/hipe/prebuild.skip')
0 files changed, 0 insertions, 0 deletions