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

Side by Side Diff: src/compiler/x64/code-generator-x64.cc

Issue 2221473002: Revert of [x64] Zero/sign-extend loads to 64-bit registers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « no previous file | src/compiler/x64/instruction-codes-x64.h » ('j') | 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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 6
7 #include "src/ast/scopes.h" 7 #include "src/ast/scopes.h"
8 #include "src/compiler/code-generator-impl.h" 8 #include "src/compiler/code-generator-impl.h"
9 #include "src/compiler/gap-resolver.h" 9 #include "src/compiler/gap-resolver.h"
10 #include "src/compiler/node-matchers.h" 10 #include "src/compiler/node-matchers.h"
(...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after
1730 __ Subsd(i.InputDoubleRegister(0), kScratchDoubleReg); 1730 __ Subsd(i.InputDoubleRegister(0), kScratchDoubleReg);
1731 break; 1731 break;
1732 case kX64Movsxbl: 1732 case kX64Movsxbl:
1733 ASSEMBLE_MOVX(movsxbl); 1733 ASSEMBLE_MOVX(movsxbl);
1734 __ AssertZeroExtended(i.OutputRegister()); 1734 __ AssertZeroExtended(i.OutputRegister());
1735 break; 1735 break;
1736 case kX64Movzxbl: 1736 case kX64Movzxbl:
1737 ASSEMBLE_MOVX(movzxbl); 1737 ASSEMBLE_MOVX(movzxbl);
1738 __ AssertZeroExtended(i.OutputRegister()); 1738 __ AssertZeroExtended(i.OutputRegister());
1739 break; 1739 break;
1740 case kX64Movsxbq:
1741 ASSEMBLE_MOVX(movsxbq);
1742 __ AssertZeroExtended(i.OutputRegister());
1743 break;
1744 case kX64Movzxbq:
1745 ASSEMBLE_MOVX(movzxbq);
1746 __ AssertZeroExtended(i.OutputRegister());
1747 break;
1748 case kX64Movb: { 1740 case kX64Movb: {
1749 size_t index = 0; 1741 size_t index = 0;
1750 Operand operand = i.MemoryOperand(&index); 1742 Operand operand = i.MemoryOperand(&index);
1751 if (HasImmediateInput(instr, index)) { 1743 if (HasImmediateInput(instr, index)) {
1752 __ movb(operand, Immediate(i.InputInt8(index))); 1744 __ movb(operand, Immediate(i.InputInt8(index)));
1753 } else { 1745 } else {
1754 __ movb(operand, i.InputRegister(index)); 1746 __ movb(operand, i.InputRegister(index));
1755 } 1747 }
1756 break; 1748 break;
1757 } 1749 }
1758 case kX64Movsxwl: 1750 case kX64Movsxwl:
1759 ASSEMBLE_MOVX(movsxwl); 1751 ASSEMBLE_MOVX(movsxwl);
1760 __ AssertZeroExtended(i.OutputRegister()); 1752 __ AssertZeroExtended(i.OutputRegister());
1761 break; 1753 break;
1762 case kX64Movzxwl: 1754 case kX64Movzxwl:
1763 ASSEMBLE_MOVX(movzxwl); 1755 ASSEMBLE_MOVX(movzxwl);
1764 __ AssertZeroExtended(i.OutputRegister()); 1756 __ AssertZeroExtended(i.OutputRegister());
1765 break; 1757 break;
1766 case kX64Movsxwq:
1767 ASSEMBLE_MOVX(movsxwq);
1768 __ AssertZeroExtended(i.OutputRegister());
1769 break;
1770 case kX64Movzxwq:
1771 ASSEMBLE_MOVX(movzxwq);
1772 __ AssertZeroExtended(i.OutputRegister());
1773 break;
1774 case kX64Movw: { 1758 case kX64Movw: {
1775 size_t index = 0; 1759 size_t index = 0;
1776 Operand operand = i.MemoryOperand(&index); 1760 Operand operand = i.MemoryOperand(&index);
1777 if (HasImmediateInput(instr, index)) { 1761 if (HasImmediateInput(instr, index)) {
1778 __ movw(operand, Immediate(i.InputInt16(index))); 1762 __ movw(operand, Immediate(i.InputInt16(index)));
1779 } else { 1763 } else {
1780 __ movw(operand, i.InputRegister(index)); 1764 __ movw(operand, i.InputRegister(index));
1781 } 1765 }
1782 break; 1766 break;
1783 } 1767 }
(...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after
2591 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; 2575 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc;
2592 __ Nop(padding_size); 2576 __ Nop(padding_size);
2593 } 2577 }
2594 } 2578 }
2595 2579
2596 #undef __ 2580 #undef __
2597 2581
2598 } // namespace compiler 2582 } // namespace compiler
2599 } // namespace internal 2583 } // namespace internal
2600 } // namespace v8 2584 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/x64/instruction-codes-x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698