ARM64: use direct conditional branches for regexp

R=ulan@chromium.org, bmeurer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/370553002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 144c1722
......@@ -1461,12 +1461,7 @@ void RegExpMacroAssemblerARM64::BranchOrBacktrack(Condition condition,
if (to == NULL) {
to = &backtrack_label_;
}
// TODO(ulan): do direct jump when jump distance is known and fits in imm19.
Condition inverted_condition = NegateCondition(condition);
Label no_branch;
__ B(inverted_condition, &no_branch);
__ B(to);
__ Bind(&no_branch);
__ B(condition, to);
}
void RegExpMacroAssemblerARM64::CompareAndBranchOrBacktrack(Register reg,
......@@ -1477,15 +1472,11 @@ void RegExpMacroAssemblerARM64::CompareAndBranchOrBacktrack(Register reg,
if (to == NULL) {
to = &backtrack_label_;
}
// TODO(ulan): do direct jump when jump distance is known and fits in imm19.
Label no_branch;
if (condition == eq) {
__ Cbnz(reg, &no_branch);
__ Cbz(reg, to);
} else {
__ Cbz(reg, &no_branch);
__ Cbnz(reg, to);
}
__ B(to);
__ Bind(&no_branch);
} else {
__ Cmp(reg, immediate);
BranchOrBacktrack(condition, to);
......
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