diff options
author | Björn Gustavsson <[email protected]> | 2011-09-13 10:03:45 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-09-13 10:03:45 +0200 |
commit | e63392eac334e253824b430bc4edbbbd94b65be8 (patch) | |
tree | 607d77ae610e9737507cd3a3a99a4f2e2a0b7544 /erts/emulator/beam/erl_process.c | |
parent | 51e05033c1c563966f22a7200574554e62257f5d (diff) | |
parent | 9dda912e8d10ca98ced3fc79cf89f2e95a8a2382 (diff) | |
download | otp-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.c | 11 |
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 |