Bug 490838 - TraceMonkey: Improve epilogue efficiency for ARM. r=vlad

This commit is contained in:
Jacob Bramley 2009-05-18 01:32:10 -04:00
Родитель 3925ec2b89
Коммит 585bedfb6a
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -164,10 +164,11 @@ Assembler::nFragExit(LInsp guard)
NIns*
Assembler::genEpilogue()
{
BX(LR); // return
RegisterMask savingMask = rmask(FP) | rmask(LR);
// On ARMv5+, loading directly to PC correctly handles interworking.
// Note that we don't support anything older than ARMv5.
NanoAssert(AvmCore::config.arch >= 5);
RegisterMask savingMask = rmask(FP) | rmask(PC);
if (!_thisfrag->lirbuf->explicitSavedRegs)
for (int i = 0; i < NumSavedRegs; ++i)
savingMask |= rmask(savedRegs[i]);