logo       

Prederefed run cores: msg#00586

lang.perl.perl6.internals

Subject: Prederefed run cores

With the indirect register addressing all prederefed run cores (Prederefed, CGP, Switch) are currently not functional, as these run cores have absolute addresses in the prederefed code.

I see two ways to fix it:

1) use frame pointer relative addressing:
+ prederefed code is usable by different threads too
- ~4 times increase in code size of core_ops_*.{c,o} [1]

2) Re-prederef on function calls, if frame pointer differs
+ no impact on code size
- needs precise code length of functions
- threads need distinct prederefed code
- possibly slower then 1)

Comments welcome,
leo

[1] due to absolute addressing a constant argument and a register argument have the same code, set_i_ic and set_i_i are the same.




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise