Bug 1417595 - [MIPS] Implement missing parts of Bug 1417398. r=jandem

--HG--
extra : rebase_source : e8ef79983ac2264c598ad8401a2effee58d497cb
This commit is contained in:
Dragan Mladjenovic 2017-11-22 12:08:14 -05:00
Родитель de1574c9ea
Коммит ed9b200c0d
3 изменённых файлов: 18 добавлений и 0 удалений

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

@ -59,6 +59,7 @@
#include "gc/Iteration-inl.h"
#include "jit/JitFrames-inl.h"
#include "jit/MacroAssembler-inl.h"
#include "jit/shared/Lowering-shared-inl.h"
#include "vm/Debugger-inl.h"
#include "vm/EnvironmentObject-inl.h"
@ -228,6 +229,7 @@ JitRuntime::startTrampolineCode(MacroAssembler& masm)
masm.assumeUnreachable("Shouldn't get here");
masm.flushBuffer();
masm.haltingAlign(CodeAlignment);
masm.setFramePushed(0);
return masm.currentOffset();
}

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

@ -310,6 +310,14 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS
ma_b(target);
}
void jump(TrampolinePtr code)
{
auto target = ImmPtr(code.value);
BufferOffset bo = m_buffer.nextOffset();
addPendingJump(bo, target, Relocation::HARDCODED);
ma_jump(target);
}
void negl(Register reg) {
ma_negu(reg, reg);
}

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

@ -339,6 +339,14 @@ class MacroAssemblerMIPS64Compat : public MacroAssemblerMIPS64
ma_b(target);
}
void jump(TrampolinePtr code)
{
auto target = ImmPtr(code.value);
BufferOffset bo = m_buffer.nextOffset();
addPendingJump(bo, target, Relocation::HARDCODED);
ma_jump(target);
}
void splitTag(Register src, Register dest) {
ma_dsrl(dest, src, Imm32(JSVAL_TAG_SHIFT));
}