aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2016-05-03 10:21:53 +0200
committerLukas Larsson <[email protected]>2016-05-03 10:21:53 +0200
commite7f15eeaaa60833cb69f6f9c9b8de53b6b254cfd (patch)
tree1fd4228b48e4a2092469e26a37839d952af204b4 /erts/emulator
parente36b604cb3fe58fcd7a8916d8498b5f2182ddcff (diff)
parente48518e4520146d4b8461689c2aab5882478339f (diff)
downloadotp-e7f15eeaaa60833cb69f6f9c9b8de53b6b254cfd.tar.gz
otp-e7f15eeaaa60833cb69f6f9c9b8de53b6b254cfd.tar.bz2
otp-e7f15eeaaa60833cb69f6f9c9b8de53b6b254cfd.zip
Merge branch 'margnus1/llvm-corruption-fix/PR-1038/OTP-13366'
* margnus1/llvm-corruption-fix/PR-1038/OTP-13366: erl_process: Restore R18 HiPE PCB offsets
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/erl_process.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h
index 61acf5924b..1c01d705a7 100644
--- a/erts/emulator/beam/erl_process.h
+++ b/erts/emulator/beam/erl_process.h
@@ -925,7 +925,6 @@ struct process {
Eterm* stop; /* Stack top */
Eterm* heap; /* Heap start */
Eterm* hend; /* Heap end */
- Eterm* abandoned_heap;
Uint heap_sz; /* Size of heap in words */
Uint min_heap_size; /* Minimum size of heap (in words). */
Uint min_vheap_size; /* Minimum size of virtual heap (in words). */
@@ -941,6 +940,16 @@ struct process {
#endif
/*
+ * Moved to after "struct hipe_process_state hipe", as a temporary fix for
+ * LLVM hard-coding offsetof(struct process, hipe.nstack) (sic!)
+ * (see void X86FrameLowering::adjustForHiPEPrologue(...) in
+ * lib/Target/X86/X86FrameLowering.cpp).
+ *
+ * Used to be below "Eterm* hend".
+ */
+ Eterm* abandoned_heap;
+
+ /*
* Saved x registers.
*/
Uint arity; /* Number of live argument registers (only valid