Commit 03696ca7 authored by yangguo@chromium.org's avatar yangguo@chromium.org

Porting r10221 to x64 (avoid bailing out to runtime for short substrings).

Review URL: http://codereview.chromium.org/8894001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 33a9e768
...@@ -6181,7 +6181,7 @@ void SubStringStub::Generate(MacroAssembler* masm) { ...@@ -6181,7 +6181,7 @@ void SubStringStub::Generate(MacroAssembler* masm) {
if (FLAG_string_slices) { if (FLAG_string_slices) {
Label copy_routine; Label copy_routine;
// edi: underlying subject string // edi: underlying subject string
// ebx: instance type of original subject string // ebx: instance type of underlying subject string
// edx: adjusted start index (smi) // edx: adjusted start index (smi)
// ecx: length (smi) // ecx: length (smi)
__ cmp(ecx, Immediate(Smi::FromInt(SlicedString::kMinLength))); __ cmp(ecx, Immediate(Smi::FromInt(SlicedString::kMinLength)));
...@@ -6214,7 +6214,7 @@ void SubStringStub::Generate(MacroAssembler* masm) { ...@@ -6214,7 +6214,7 @@ void SubStringStub::Generate(MacroAssembler* masm) {
} }
// edi: underlying subject string // edi: underlying subject string
// ebx: instance type of original subject string // ebx: instance type of underlying subject string
// edx: adjusted start index (smi) // edx: adjusted start index (smi)
// ecx: length (smi) // ecx: length (smi)
// The subject string can only be external or sequential string of either // The subject string can only be external or sequential string of either
...@@ -6226,7 +6226,6 @@ void SubStringStub::Generate(MacroAssembler* masm) { ...@@ -6226,7 +6226,6 @@ void SubStringStub::Generate(MacroAssembler* masm) {
__ j(zero, &sequential_string); __ j(zero, &sequential_string);
// Handle external string. // Handle external string.
Label ascii_external, done;
// Rule out short external strings. // Rule out short external strings.
STATIC_CHECK(kShortExternalStringTag != 0); STATIC_CHECK(kShortExternalStringTag != 0);
__ test_b(ebx, kShortExternalStringMask); __ test_b(ebx, kShortExternalStringMask);
......
This diff is collapsed.
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