aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-09-13 10:03:45 +0200
committerBjörn Gustavsson <[email protected]>2011-09-13 10:03:45 +0200
commite63392eac334e253824b430bc4edbbbd94b65be8 (patch)
tree607d77ae610e9737507cd3a3a99a4f2e2a0b7544 /erts/emulator/beam/erl_process.c
parent51e05033c1c563966f22a7200574554e62257f5d (diff)
parent9dda912e8d10ca98ced3fc79cf89f2e95a8a2382 (diff)
downloadotp-e63392eac334e253824b430bc4edbbbd94b65be8.tar.gz
otp-e63392eac334e253824b430bc4edbbbd94b65be8.tar.bz2
otp-e63392eac334e253824b430bc4edbbbd94b65be8.zip
Merge branch 'bjorn/erts/unify-register-allocation' into major
* bjorn/erts/unify-register-allocation: BEAM: Unify allocation of X and float registers
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index bbdcf79d00..3a6fe5784a 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -2723,11 +2723,14 @@ erts_init_scheduling(int mrq, int no_schedulers, int no_schedulers_online)
esdp->match_pseudo_process = NULL;
esdp->ssi = ERTS_SCHED_SLEEP_INFO_IX(ix);
esdp->free_process = NULL;
-#if HALFWORD_HEAP
- /* Registers need to be heap allocated (correct memory range) for tracing to work */
- esdp->save_reg = erts_alloc(ERTS_ALC_T_BEAM_REGISTER, ERTS_X_REGS_ALLOCATED * sizeof(Eterm));
-#endif
#endif
+ esdp->x_reg_array =
+ erts_alloc_permanent_cache_aligned(ERTS_ALC_T_BEAM_REGISTER,
+ ERTS_X_REGS_ALLOCATED *
+ sizeof(Eterm));
+ esdp->f_reg_array =
+ erts_alloc_permanent_cache_aligned(ERTS_ALC_T_BEAM_REGISTER,
+ MAX_REG * sizeof(FloatDef));
#if !HEAP_ON_C_STACK
esdp->num_tmp_heap_used = 0;
#endif