diff options
author | Magnus Lång <[email protected]> | 2016-04-12 15:26:07 +0200 |
---|---|---|
committer | Magnus Lång <[email protected]> | 2016-06-30 12:30:04 +0200 |
commit | 520654d49d9f1c1548dc2a5800c7330001cd3064 (patch) | |
tree | 0e72981d83f8f9404d9dec71504b8a1d92282d1e /erts/emulator/beam/elib_memmove.c | |
parent | 1dd81185dfb2fd6ac30b6eb44c905128c8958cb4 (diff) | |
download | otp-520654d49d9f1c1548dc2a5800c7330001cd3064.tar.gz otp-520654d49d9f1c1548dc2a5800c7330001cd3064.tar.bz2 otp-520654d49d9f1c1548dc2a5800c7330001cd3064.zip |
hipe: Fix bug in trap frame allocation wrappers
The trap frame allocation wrappers occasionally call the garbage
collector, even though built-in functions are not supposed to.
On non-{x86,amd64} platforms, HiPE was optimising the BIF wrapper
interface on the basis that BIFs do not GC. So, when
hipe_reserve_beam_trap_frame called the garbage collector, the state in
the PCB was stale and corruption happened.
Now, these particular BIFs are reclassified as GC BIFs.
Unfortunately, in order to do that we needed to introduce a
gc_bif_interface_3 macro in every hipe_$ARCH_bifs.m4 file.
Diffstat (limited to 'erts/emulator/beam/elib_memmove.c')
0 files changed, 0 insertions, 0 deletions