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

Side by Side Diff: src/arm/code-stubs-arm.h

Issue 144023009: Get rid of the unused native code StringAddStub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove obsolete StringHelper methods. Created 6 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 | « no previous file | src/arm/code-stubs-arm.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 private: 50 private:
51 SaveFPRegsMode save_doubles_; 51 SaveFPRegsMode save_doubles_;
52 52
53 Major MajorKey() { return StoreBufferOverflow; } 53 Major MajorKey() { return StoreBufferOverflow; }
54 int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; } 54 int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
55 }; 55 };
56 56
57 57
58 class StringHelper : public AllStatic { 58 class StringHelper : public AllStatic {
59 public: 59 public:
60 // Generate code for copying characters using a simple loop. This should only
61 // be used in places where the number of characters is small and the
62 // additional setup and checking in GenerateCopyCharactersLong adds too much
63 // overhead. Copying of overlapping regions is not supported.
64 // Dest register ends at the position after the last character written.
65 static void GenerateCopyCharacters(MacroAssembler* masm,
66 Register dest,
67 Register src,
68 Register count,
69 Register scratch,
70 bool ascii);
71
72 // Generate code for copying a large number of characters. This function 60 // Generate code for copying a large number of characters. This function
73 // is allowed to spend extra time setting up conditions to make copying 61 // is allowed to spend extra time setting up conditions to make copying
74 // faster. Copying of overlapping regions is not supported. 62 // faster. Copying of overlapping regions is not supported.
75 // Dest register ends at the position after the last character written. 63 // Dest register ends at the position after the last character written.
76 static void GenerateCopyCharactersLong(MacroAssembler* masm, 64 static void GenerateCopyCharactersLong(MacroAssembler* masm,
77 Register dest, 65 Register dest,
78 Register src, 66 Register src,
79 Register count, 67 Register count,
80 Register scratch1, 68 Register scratch1,
81 Register scratch2, 69 Register scratch2,
82 Register scratch3, 70 Register scratch3,
83 Register scratch4, 71 Register scratch4,
84 int flags); 72 int flags);
85 73
86 74
87 // Probe the string table for a two character string. If the string is
88 // not found by probing a jump to the label not_found is performed. This jump
89 // does not guarantee that the string is not in the string table. If the
90 // string is found the code falls through with the string in register r0.
91 // Contents of both c1 and c2 registers are modified. At the exit c1 is
92 // guaranteed to contain halfword with low and high bytes equal to
93 // initial contents of c1 and c2 respectively.
94 static void GenerateTwoCharacterStringTableProbe(MacroAssembler* masm,
95 Register c1,
96 Register c2,
97 Register scratch1,
98 Register scratch2,
99 Register scratch3,
100 Register scratch4,
101 Register scratch5,
102 Label* not_found);
103
104 // Generate string hash. 75 // Generate string hash.
105 static void GenerateHashInit(MacroAssembler* masm, 76 static void GenerateHashInit(MacroAssembler* masm,
106 Register hash, 77 Register hash,
107 Register character); 78 Register character);
108 79
109 static void GenerateHashAddCharacter(MacroAssembler* masm, 80 static void GenerateHashAddCharacter(MacroAssembler* masm,
110 Register hash, 81 Register hash,
111 Register character); 82 Register character);
112 83
113 static void GenerateHashGetHash(MacroAssembler* masm, 84 static void GenerateHashGetHash(MacroAssembler* masm,
114 Register hash); 85 Register hash);
115 86
116 private: 87 private:
117 DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper); 88 DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper);
118 }; 89 };
119 90
120 91
121 class StringAddStub: public PlatformCodeStub {
122 public:
123 explicit StringAddStub(StringAddFlags flags) : flags_(flags) {}
124
125 private:
126 Major MajorKey() { return StringAdd; }
127 int MinorKey() { return flags_; }
128
129 void Generate(MacroAssembler* masm);
130
131 void GenerateConvertArgument(MacroAssembler* masm,
132 int stack_offset,
133 Register arg,
134 Register scratch1,
135 Register scratch2,
136 Register scratch3,
137 Register scratch4,
138 Label* slow);
139
140 void GenerateRegisterArgsPush(MacroAssembler* masm);
141 void GenerateRegisterArgsPop(MacroAssembler* masm);
142
143 const StringAddFlags flags_;
144 };
145
146
147 class SubStringStub: public PlatformCodeStub { 92 class SubStringStub: public PlatformCodeStub {
148 public: 93 public:
149 SubStringStub() {} 94 SubStringStub() {}
150 95
151 private: 96 private:
152 Major MajorKey() { return SubString; } 97 Major MajorKey() { return SubString; }
153 int MinorKey() { return 0; } 98 int MinorKey() { return 0; }
154 99
155 void Generate(MacroAssembler* masm); 100 void Generate(MacroAssembler* masm);
156 }; 101 };
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 TargetAddressStorageMode storage_mode() { return storage_mode_; } 433 TargetAddressStorageMode storage_mode() { return storage_mode_; }
489 434
490 private: 435 private:
491 TargetAddressStorageMode storage_mode_; 436 TargetAddressStorageMode storage_mode_;
492 }; 437 };
493 438
494 439
495 } } // namespace v8::internal 440 } } // namespace v8::internal
496 441
497 #endif // V8_ARM_CODE_STUBS_ARM_H_ 442 #endif // V8_ARM_CODE_STUBS_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/code-stubs-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698