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

Side by Side Diff: src/x64/assembler-x64.h

Issue 6460038: Version 3.1.3.... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 9 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 | « src/version.cc ('k') | src/x64/assembler-x64.cc » ('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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 static const int kJumpInstructionLength = 13; 558 static const int kJumpInstructionLength = 13;
559 static const int kCallInstructionLength = 13; 559 static const int kCallInstructionLength = 13;
560 static const int kJSReturnSequenceLength = 13; 560 static const int kJSReturnSequenceLength = 13;
561 static const int kShortCallInstructionLength = 5; 561 static const int kShortCallInstructionLength = 5;
562 562
563 // The debug break slot must be able to contain a call instruction. 563 // The debug break slot must be able to contain a call instruction.
564 static const int kDebugBreakSlotLength = kCallInstructionLength; 564 static const int kDebugBreakSlotLength = kCallInstructionLength;
565 565
566 // One byte opcode for test eax,0xXXXXXXXX. 566 // One byte opcode for test eax,0xXXXXXXXX.
567 static const byte kTestEaxByte = 0xA9; 567 static const byte kTestEaxByte = 0xA9;
568 // One byte opcode for test al, 0xXX.
569 static const byte kTestAlByte = 0xA8;
568 570
569 // --------------------------------------------------------------------------- 571 // ---------------------------------------------------------------------------
570 // Code generation 572 // Code generation
571 // 573 //
572 // Function names correspond one-to-one to x64 instruction mnemonics. 574 // Function names correspond one-to-one to x64 instruction mnemonics.
573 // Unless specified otherwise, instructions operate on 64-bit operands. 575 // Unless specified otherwise, instructions operate on 64-bit operands.
574 // 576 //
575 // If we need versions of an assembly instruction that operate on different 577 // If we need versions of an assembly instruction that operate on different
576 // width arguments, we add a single-letter suffix specifying the width. 578 // width arguments, we add a single-letter suffix specifying the width.
577 // This is done for the following instructions: mov, cmp, inc, dec, 579 // This is done for the following instructions: mov, cmp, inc, dec,
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 // Divide edx:eax by lower 32 bits of src. Quotient in eax, rem. in edx. 858 // Divide edx:eax by lower 32 bits of src. Quotient in eax, rem. in edx.
857 void idivl(Register src); 859 void idivl(Register src);
858 860
859 // Signed multiply instructions. 861 // Signed multiply instructions.
860 void imul(Register src); // rdx:rax = rax * src. 862 void imul(Register src); // rdx:rax = rax * src.
861 void imul(Register dst, Register src); // dst = dst * src. 863 void imul(Register dst, Register src); // dst = dst * src.
862 void imul(Register dst, const Operand& src); // dst = dst * src. 864 void imul(Register dst, const Operand& src); // dst = dst * src.
863 void imul(Register dst, Register src, Immediate imm); // dst = src * imm. 865 void imul(Register dst, Register src, Immediate imm); // dst = src * imm.
864 // Signed 32-bit multiply instructions. 866 // Signed 32-bit multiply instructions.
865 void imull(Register dst, Register src); // dst = dst * src. 867 void imull(Register dst, Register src); // dst = dst * src.
868 void imull(Register dst, const Operand& src); // dst = dst * src.
866 void imull(Register dst, Register src, Immediate imm); // dst = src * imm. 869 void imull(Register dst, Register src, Immediate imm); // dst = src * imm.
867 870
868 void incq(Register dst); 871 void incq(Register dst);
869 void incq(const Operand& dst); 872 void incq(const Operand& dst);
870 void incl(Register dst); 873 void incl(Register dst);
871 void incl(const Operand& dst); 874 void incl(const Operand& dst);
872 875
873 void lea(Register dst, const Operand& src); 876 void lea(Register dst, const Operand& src);
874 void leal(Register dst, const Operand& src); 877 void leal(Register dst, const Operand& src);
875 878
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1561 private: 1564 private:
1562 Assembler* assembler_; 1565 Assembler* assembler_;
1563 #ifdef DEBUG 1566 #ifdef DEBUG
1564 int space_before_; 1567 int space_before_;
1565 #endif 1568 #endif
1566 }; 1569 };
1567 1570
1568 } } // namespace v8::internal 1571 } } // namespace v8::internal
1569 1572
1570 #endif // V8_X64_ASSEMBLER_X64_H_ 1573 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/version.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698