Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: src/a64/stub-cache-a64.cc

Issue 129773006: A64: Fix result in CompileStringCharAtCall and CompileStringCharCodeAtCall. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2031 matching lines...) Expand 10 before | Expand all | Expand 10 after
2042 generator.GenerateFast(masm()); 2042 generator.GenerateFast(masm());
2043 __ Drop(argc + 1); 2043 __ Drop(argc + 1);
2044 __ Mov(x0, result); 2044 __ Mov(x0, result);
2045 __ Ret(); 2045 __ Ret();
2046 2046
2047 StubRuntimeCallHelper call_helper; 2047 StubRuntimeCallHelper call_helper;
2048 generator.GenerateSlow(masm(), call_helper); 2048 generator.GenerateSlow(masm(), call_helper);
2049 2049
2050 if (index_out_of_range.is_linked()) { 2050 if (index_out_of_range.is_linked()) {
2051 __ Bind(&index_out_of_range); 2051 __ Bind(&index_out_of_range);
2052 __ LoadRoot(result, Heap::kNanValueRootIndex); 2052 __ LoadRoot(x0, Heap::kNanValueRootIndex);
2053 __ Drop(argc + 1); 2053 __ Drop(argc + 1);
2054 __ Ret(); 2054 __ Ret();
2055 } 2055 }
2056 2056
2057 __ Bind(&miss); 2057 __ Bind(&miss);
2058 // Restore function name in x2. 2058 // Restore function name in x2.
2059 __ Mov(x2, Operand(name)); 2059 __ Mov(x2, Operand(name));
2060 __ Bind(&name_miss); 2060 __ Bind(&name_miss);
2061 GenerateMissBranch(); 2061 GenerateMissBranch();
2062 2062
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2111 generator.GenerateFast(masm()); 2111 generator.GenerateFast(masm());
2112 __ Drop(argc + 1); 2112 __ Drop(argc + 1);
2113 __ Mov(x0, result); 2113 __ Mov(x0, result);
2114 __ Ret(); 2114 __ Ret();
2115 2115
2116 StubRuntimeCallHelper call_helper; 2116 StubRuntimeCallHelper call_helper;
2117 generator.GenerateSlow(masm(), call_helper); 2117 generator.GenerateSlow(masm(), call_helper);
2118 2118
2119 if (index_out_of_range.is_linked()) { 2119 if (index_out_of_range.is_linked()) {
2120 __ Bind(&index_out_of_range); 2120 __ Bind(&index_out_of_range);
2121 __ LoadRoot(result, Heap::kempty_stringRootIndex); 2121 __ LoadRoot(x0, Heap::kempty_stringRootIndex);
2122 __ Drop(argc + 1); 2122 __ Drop(argc + 1);
2123 __ Ret(); 2123 __ Ret();
2124 } 2124 }
2125 2125
2126 __ Bind(&miss); 2126 __ Bind(&miss);
2127 // Restore function name in x2. 2127 // Restore function name in x2.
2128 __ Mov(x2, Operand(name)); 2128 __ Mov(x2, Operand(name));
2129 __ Bind(&name_miss); 2129 __ Bind(&name_miss);
2130 GenerateMissBranch(); 2130 GenerateMissBranch();
2131 2131
(...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after
3006 3006
3007 // Miss case, call the runtime. 3007 // Miss case, call the runtime.
3008 __ Bind(&miss); 3008 __ Bind(&miss);
3009 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); 3009 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss);
3010 } 3010 }
3011 3011
3012 3012
3013 } } // namespace v8::internal 3013 } } // namespace v8::internal
3014 3014
3015 #endif // V8_TARGET_ARCH_A64 3015 #endif // V8_TARGET_ARCH_A64
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698