From: yangguo@chromium.org Date: Thu, 10 Nov 2011 17:01:32 +0000 (+0000) Subject: Fixing crash of StringHash test. X-Git-Tag: upstream/4.7.83~17935 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b4d75f84ebaa6c4db0d62126c54573d3cd173d4;p=platform%2Fupstream%2Fv8.git Fixing crash of StringHash test. Review URL: http://codereview.chromium.org/8520010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/test/cctest/test-hashing.cc b/test/cctest/test-hashing.cc index b91ac1f..9c342a9 100644 --- a/test/cctest/test-hashing.cc +++ b/test/cctest/test-hashing.cc @@ -51,6 +51,8 @@ static v8::Persistent env; void generate(MacroAssembler* assm, i::Vector string) { #ifdef V8_TARGET_ARCH_IA32 + __ push(ebx); + __ push(ecx); __ mov(eax, Immediate(0)); if (string.length() > 0) { __ mov(ebx, Immediate(string.at(0))); @@ -61,8 +63,12 @@ void generate(MacroAssembler* assm, i::Vector string) { StringHelper::GenerateHashAddCharacter(assm, eax, ebx, ecx); } StringHelper::GenerateHashGetHash(assm, eax, ecx); + __ pop(ecx); + __ pop(ebx); __ Ret(); #elif V8_TARGET_ARCH_X64 + __ push(rbx); + __ push(rcx); __ movq(rax, Immediate(0)); if (string.length() > 0) { __ movq(rbx, Immediate(string.at(0))); @@ -73,28 +79,30 @@ void generate(MacroAssembler* assm, i::Vector string) { StringHelper::GenerateHashAddCharacter(assm, rax, rbx, rcx); } StringHelper::GenerateHashGetHash(assm, rax, rcx); + __ pop(rcx); + __ pop(rbx); __ Ret(); #elif V8_TARGET_ARCH_ARM __ mov(r0, Operand(0)); if (string.length() > 0) { - __ mov(r1, Operand(string.at(0))); - StringHelper::GenerateHashInit(assm, r0, r1); + __ mov(ip, Operand(string.at(0))); + StringHelper::GenerateHashInit(assm, r0, ip); } for (int i = 1; i < string.length(); i++) { - __ mov(r1, Operand(string.at(i))); - StringHelper::GenerateHashAddCharacter(assm, r0, r1); + __ mov(ip, Operand(string.at(i))); + StringHelper::GenerateHashAddCharacter(assm, r0, ip); } StringHelper::GenerateHashGetHash(assm, r0); __ mov(pc, Operand(lr)); #elif V8_TARGET_ARCH_MIPS __ li(v0, Operand(0)); if (string.length() > 0) { - __ li(v1, Operand(string.at(0))); - StringHelper::GenerateHashInit(assm, v0, v1); + __ li(t1, Operand(string.at(0))); + StringHelper::GenerateHashInit(assm, v0, t1); } for (int i = 1; i < string.length(); i++) { - __ li(v1, Operand(string.at(i))); - StringHelper::GenerateHashAddCharacter(assm, v0, v1); + __ li(t1, Operand(string.at(i))); + StringHelper::GenerateHashAddCharacter(assm, v0, t1); } StringHelper::GenerateHashGetHash(assm, v0); __ jr(ra);