Reland "PPC/s390: [interpreter] correctly advance over debug scaling prefixes."
This is a reland ofdfdc31355d
Original change's description: > PPC/s390: [interpreter] correctly advance over debug scaling prefixes. > > Port7a07d74b09
> > 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/1043026 Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52972}
This commit is contained in:
parent
5919d34e90
commit
7b046d047a
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user