Port changes from x64 deoptimizer to ia32 and remove commented out code from last patch.
Review URL: http://codereview.chromium.org/6368013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
d69ef26f7d
commit
cadb9cb635
@ -534,26 +534,25 @@ void Deoptimizer::EntryGenerator::Generate() {
|
||||
__ mov(ebx, Operand(eax, Deoptimizer::input_offset()));
|
||||
|
||||
// Fill in the input registers.
|
||||
for (int i = 0; i < kNumberOfRegisters; i++) {
|
||||
for (int i = kNumberOfRegisters - 1; i >= 0; i--) {
|
||||
int offset = (i * kPointerSize) + FrameDescription::registers_offset();
|
||||
__ mov(ecx, Operand(esp, (kNumberOfRegisters - 1 - i) * kPointerSize));
|
||||
__ mov(Operand(ebx, offset), ecx);
|
||||
__ pop(Operand(ebx, offset));
|
||||
}
|
||||
|
||||
// Fill in the double input registers.
|
||||
int double_regs_offset = FrameDescription::double_registers_offset();
|
||||
for (int i = 0; i < XMMRegister::kNumAllocatableRegisters; ++i) {
|
||||
int dst_offset = i * kDoubleSize + double_regs_offset;
|
||||
int src_offset = i * kDoubleSize + kNumberOfRegisters * kPointerSize;
|
||||
int src_offset = i * kDoubleSize;
|
||||
__ movdbl(xmm0, Operand(esp, src_offset));
|
||||
__ movdbl(Operand(ebx, dst_offset), xmm0);
|
||||
}
|
||||
|
||||
// Remove the bailout id and the general purpose registers from the stack.
|
||||
// Remove the bailout id and the double registers from the stack.
|
||||
if (type() == EAGER) {
|
||||
__ add(Operand(esp), Immediate(kSavedRegistersAreaSize + kPointerSize));
|
||||
__ add(Operand(esp), Immediate(kDoubleRegsSize + kPointerSize));
|
||||
} else {
|
||||
__ add(Operand(esp), Immediate(kSavedRegistersAreaSize + 2 * kPointerSize));
|
||||
__ add(Operand(esp), Immediate(kDoubleRegsSize + 2 * kPointerSize));
|
||||
}
|
||||
|
||||
// Compute a pointer to the unwinding limit in register ecx; that is
|
||||
|
@ -381,8 +381,6 @@ void Deoptimizer::EntryGenerator::Generate() {
|
||||
for (int i = kNumberOfRegisters -1; i >= 0; i--) {
|
||||
int offset = (i * kPointerSize) + FrameDescription::registers_offset();
|
||||
__ pop(Operand(rbx, offset));
|
||||
// __ movq(rcx, Operand(rsp, (kNumberOfRegisters - 1 - i) * kPointerSize));
|
||||
// __ movq(Operand(rbx, offset), rcx);
|
||||
}
|
||||
|
||||
// Fill in the double input registers.
|
||||
@ -392,7 +390,7 @@ void Deoptimizer::EntryGenerator::Generate() {
|
||||
__ pop(Operand(rbx, dst_offset));
|
||||
}
|
||||
|
||||
// Remove the bailout id and the general purpose registers from the stack.
|
||||
// Remove the bailout id from the stack.
|
||||
if (type() == EAGER) {
|
||||
__ addq(rsp, Immediate(kPointerSize));
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user