Commit 7b046d04 authored by Junliang Yan's avatar Junliang Yan Committed by Commit Bot

Reland "PPC/s390: [interpreter] correctly advance over debug scaling prefixes."

This is a reland of dfdc3135

Original change's description:
> PPC/s390: [interpreter] correctly advance over debug scaling prefixes.
> 
> Port 7a07d74b
> 
> R=yangguo@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
> BUG=
> LOG=N
> 
> Change-Id: I99553fde819cbdc8a12df5b82d9d7230ba4ef8b3
> Reviewed-on: https://chromium-review.googlesource.com/1042355
> Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
> Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#52970}

Change-Id: I012e79ef5fbff37a8ded8c8cf5d4aaf324cd6ccb
Reviewed-on: https://chromium-review.googlesource.com/1043026Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52972}
parent 5919d34e
......@@ -859,9 +859,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
Label process_bytecode, extra_wide;
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
__ cmpi(bytecode, Operand(0x1));
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
STATIC_ASSERT(3 ==
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
__ cmpi(bytecode, Operand(0x3));
__ bgt(&process_bytecode);
__ beq(&extra_wide);
__ andi(r0, bytecode, Operand(0x1));
__ bne(&extra_wide, cr0);
// Load the next bytecode and update table to the wide scaled table.
__ addi(bytecode_offset, bytecode_offset, Operand(1));
......
......@@ -869,9 +869,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
Label process_bytecode, extra_wide;
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
__ CmpP(bytecode, Operand(0x1));
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
STATIC_ASSERT(3 ==
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
__ CmpP(bytecode, Operand(0x3));
__ bgt(&process_bytecode);
__ beq(&extra_wide);
__ tmll(bytecode, Operand(0x1));
__ bne(&extra_wide);
// Load the next bytecode and update table to the wide scaled table.
__ AddP(bytecode_offset, bytecode_offset, Operand(1));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment