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

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

Issue 10977051: Support for SDIV and MLS ARM instructions, and implement DoModI using them (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 2 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 | src/arm/assembler-arm.cc » ('j') | src/v8globals.h » ('J')
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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 public: 504 public:
505 // Detect features of the target CPU. Set safe defaults if the serializer 505 // Detect features of the target CPU. Set safe defaults if the serializer
506 // is enabled (snapshots must be portable). 506 // is enabled (snapshots must be portable).
507 static void Probe(); 507 static void Probe();
508 508
509 // Check whether a feature is supported by the target CPU. 509 // Check whether a feature is supported by the target CPU.
510 static bool IsSupported(CpuFeature f) { 510 static bool IsSupported(CpuFeature f) {
511 ASSERT(initialized_); 511 ASSERT(initialized_);
512 if (f == VFP3 && !FLAG_enable_vfp3) return false; 512 if (f == VFP3 && !FLAG_enable_vfp3) return false;
513 if (f == VFP2 && !FLAG_enable_vfp2) return false; 513 if (f == VFP2 && !FLAG_enable_vfp2) return false;
514 if (f == SUDIV && !FLAG_enable_sudiv) return false;
514 return (supported_ & (1u << f)) != 0; 515 return (supported_ & (1u << f)) != 0;
515 } 516 }
516 517
517 #ifdef DEBUG 518 #ifdef DEBUG
518 // Check whether a feature is currently enabled. 519 // Check whether a feature is currently enabled.
519 static bool IsEnabled(CpuFeature f) { 520 static bool IsEnabled(CpuFeature f) {
520 ASSERT(initialized_); 521 ASSERT(initialized_);
521 Isolate* isolate = Isolate::UncheckedCurrent(); 522 Isolate* isolate = Isolate::UncheckedCurrent();
522 if (isolate == NULL) { 523 if (isolate == NULL) {
523 // When no isolate is available, work as if we're running in 524 // When no isolate is available, work as if we're running in
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 SBit s = LeaveCC, Condition cond = al); 863 SBit s = LeaveCC, Condition cond = al);
863 864
864 void mvn(Register dst, const Operand& src, 865 void mvn(Register dst, const Operand& src,
865 SBit s = LeaveCC, Condition cond = al); 866 SBit s = LeaveCC, Condition cond = al);
866 867
867 // Multiply instructions 868 // Multiply instructions
868 869
869 void mla(Register dst, Register src1, Register src2, Register srcA, 870 void mla(Register dst, Register src1, Register src2, Register srcA,
870 SBit s = LeaveCC, Condition cond = al); 871 SBit s = LeaveCC, Condition cond = al);
871 872
873 void mls(Register dst, Register src1, Register src2, Register srcA,
874 Condition cond = al);
875
876 void sdiv(Register dst, Register src1, Register src2,
877 Condition cond = al);
878
872 void mul(Register dst, Register src1, Register src2, 879 void mul(Register dst, Register src1, Register src2,
873 SBit s = LeaveCC, Condition cond = al); 880 SBit s = LeaveCC, Condition cond = al);
874 881
875 void smlal(Register dstL, Register dstH, Register src1, Register src2, 882 void smlal(Register dstL, Register dstH, Register src1, Register src2,
876 SBit s = LeaveCC, Condition cond = al); 883 SBit s = LeaveCC, Condition cond = al);
877 884
878 void smull(Register dstL, Register dstH, Register src1, Register src2, 885 void smull(Register dstL, Register dstH, Register src1, Register src2,
879 SBit s = LeaveCC, Condition cond = al); 886 SBit s = LeaveCC, Condition cond = al);
880 887
881 void umlal(Register dstL, Register dstH, Register src1, Register src2, 888 void umlal(Register dstL, Register dstH, Register src1, Register src2,
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
1467 public: 1474 public:
1468 explicit EnsureSpace(Assembler* assembler) { 1475 explicit EnsureSpace(Assembler* assembler) {
1469 assembler->CheckBuffer(); 1476 assembler->CheckBuffer();
1470 } 1477 }
1471 }; 1478 };
1472 1479
1473 1480
1474 } } // namespace v8::internal 1481 } } // namespace v8::internal
1475 1482
1476 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1483 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/v8globals.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698