[Mono-dev] Building Mono on Linux/Alpha

Sergey Tikhonov tsv at solvo.ru
Thu Sep 7 07:29:21 EDT 2006


I have some questions about mono_local_regalloc. Is it possible to tell 
its logic right now not to reuse the same
physical register in the same instruction? Alpha has "a lot" of 
registers and experience some penalty if the same
register is used in the same or next instruction when results of 
previous instruction are not needed for next. For example:
1. op_loadmembase dest_reg1,  offset1(basereg)
2. op_storemembase  src_reg (= dest_reg1), offset2(basereg)
3. op_loadmembase dest_reg1,  offset3(basereg)
4. op_storemembase  src_reg (= dest_reg1), offset4(basereg)

I would like for 3rd and 4th instruction the different temp 
(dest_reg1/src_reg1) to be used.
The better schedulling will be if the instructions are arranged in 
following sequence - 1,3,2,4, but I am not asking for that. :)

Another question: is the "reg: OP_LCONV_TO_I4 (reg)" operation correctly 
expected to be implemented by OP_LSHR_IMM (long right shift) opcode? The 
next unsigned version uses OP_ISHR_UN_IMM (integer shift).

Thank you,
PS: My failed tests down to 7 and most of them pinvokes with valuetypes 
(pinvoke with simple types work).

Sergey Tikhonov

Solvo Ltd.
Saint-Petersburg, Russia
tsv at solvo.ru

More information about the Mono-devel-list mailing list