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

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

Issue 6374002: X64 Crank: Implemented DoBranch and all *AndBranch comparisons. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge/build-x64
Patch Set: Removed unnecessary temporary. Created 9 years, 11 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/x64/lithium-x64.cc ('k') | src/x64/macro-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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 // Compare the int32 in src register to the value of the smi stored at dst. 265 // Compare the int32 in src register to the value of the smi stored at dst.
266 void SmiCompareInteger32(const Operand& dst, Register src); 266 void SmiCompareInteger32(const Operand& dst, Register src);
267 // Sets sign and zero flags depending on value of smi in register. 267 // Sets sign and zero flags depending on value of smi in register.
268 void SmiTest(Register src); 268 void SmiTest(Register src);
269 269
270 // Functions performing a check on a known or potential smi. Returns 270 // Functions performing a check on a known or potential smi. Returns
271 // a condition that is satisfied if the check is successful. 271 // a condition that is satisfied if the check is successful.
272 272
273 // Is the value a tagged smi. 273 // Is the value a tagged smi.
274 Condition CheckSmi(Register src); 274 Condition CheckSmi(Register src);
275 Condition CheckSmi(const Operand& src);
275 276
276 // Is the value a non-negative tagged smi. 277 // Is the value a non-negative tagged smi.
277 Condition CheckNonNegativeSmi(Register src); 278 Condition CheckNonNegativeSmi(Register src);
278 279
279 // Are both values tagged smis. 280 // Are both values tagged smis.
280 Condition CheckBothSmi(Register first, Register second); 281 Condition CheckBothSmi(Register first, Register second);
281 282
282 // Are both values non-negative tagged smis. 283 // Are both values non-negative tagged smis.
283 Condition CheckBothNonNegativeSmi(Register first, Register second); 284 Condition CheckBothNonNegativeSmi(Register first, Register second);
284 285
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 584
584 // Control Flow 585 // Control Flow
585 void Jump(Address destination, RelocInfo::Mode rmode); 586 void Jump(Address destination, RelocInfo::Mode rmode);
586 void Jump(ExternalReference ext); 587 void Jump(ExternalReference ext);
587 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); 588 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode);
588 589
589 void Call(Address destination, RelocInfo::Mode rmode); 590 void Call(Address destination, RelocInfo::Mode rmode);
590 void Call(ExternalReference ext); 591 void Call(ExternalReference ext);
591 void Call(Handle<Code> code_object, RelocInfo::Mode rmode); 592 void Call(Handle<Code> code_object, RelocInfo::Mode rmode);
592 593
594 // Non-x64 instructions.
595 // Push/pop all general purpose registers.
596 // Does not push rsp/rbp nor any of the assembler's special purpose registers
597 // (kScratchRegister, kSmiConstantRegister, kRootRegister).
598 void Pushad();
599 void Popad();
600
593 // Compare object type for heap object. 601 // Compare object type for heap object.
594 // Always use unsigned comparisons: above and below, not less and greater. 602 // Always use unsigned comparisons: above and below, not less and greater.
595 // Incoming register is heap_object and outgoing register is map. 603 // Incoming register is heap_object and outgoing register is map.
596 // They may be the same register, and may be kScratchRegister. 604 // They may be the same register, and may be kScratchRegister.
597 void CmpObjectType(Register heap_object, InstanceType type, Register map); 605 void CmpObjectType(Register heap_object, InstanceType type, Register map);
598 606
599 // Compare instance type for map. 607 // Compare instance type for map.
600 // Always use unsigned comparisons: above and below, not less and greater. 608 // Always use unsigned comparisons: above and below, not less and greater.
601 void CmpInstanceType(Register map, InstanceType type); 609 void CmpInstanceType(Register map, InstanceType type);
602 610
(...skipping 1143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1746 Jump(adaptor, RelocInfo::CODE_TARGET); 1754 Jump(adaptor, RelocInfo::CODE_TARGET);
1747 } 1755 }
1748 bind(&invoke); 1756 bind(&invoke);
1749 } 1757 }
1750 } 1758 }
1751 1759
1752 1760
1753 } } // namespace v8::internal 1761 } } // namespace v8::internal
1754 1762
1755 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1763 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/x64/lithium-x64.cc ('k') | src/x64/macro-assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698