OLD | NEW |
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 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 // If we didn't bailout, the result (in fact, both inputs too) is known to | 172 // If we didn't bailout, the result (in fact, both inputs too) is known to |
173 // be a smi. | 173 // be a smi. |
174 set_as_smi(accumulator0()); | 174 set_as_smi(accumulator0()); |
175 set_as_smi(accumulator1()); | 175 set_as_smi(accumulator1()); |
176 } | 176 } |
177 | 177 |
178 | 178 |
179 void FastCodeGenerator::Generate(CompilationInfo* compilation_info) { | 179 void FastCodeGenerator::Generate(CompilationInfo* compilation_info) { |
180 ASSERT(info_ == NULL); | 180 ASSERT(info_ == NULL); |
181 info_ = compilation_info; | 181 info_ = compilation_info; |
| 182 Comment cmnt(masm_, "[ function compiled by fast code generator"); |
182 | 183 |
183 // Save the caller's frame pointer and set up our own. | 184 // Save the caller's frame pointer and set up our own. |
184 Comment prologue_cmnt(masm(), ";; Prologue"); | 185 Comment prologue_cmnt(masm(), ";; Prologue"); |
185 __ stm(db_w, sp, r1.bit() | cp.bit() | fp.bit() | lr.bit()); | 186 __ stm(db_w, sp, r1.bit() | cp.bit() | fp.bit() | lr.bit()); |
186 __ add(fp, sp, Operand(2 * kPointerSize)); | 187 __ add(fp, sp, Operand(2 * kPointerSize)); |
187 // Note that we keep a live register reference to cp (context) at | 188 // Note that we keep a live register reference to cp (context) at |
188 // this point. | 189 // this point. |
189 | 190 |
190 Label* bailout_to_beginning = info()->AddBailout(); | 191 Label* bailout_to_beginning = info()->AddBailout(); |
191 // Receiver (this) is allocated to a fixed register. | 192 // Receiver (this) is allocated to a fixed register. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 int32_t sp_delta = (scope()->num_parameters() + 1) * kPointerSize; | 227 int32_t sp_delta = (scope()->num_parameters() + 1) * kPointerSize; |
227 __ add(sp, sp, Operand(sp_delta)); | 228 __ add(sp, sp, Operand(sp_delta)); |
228 __ Jump(lr); | 229 __ Jump(lr); |
229 } | 230 } |
230 | 231 |
231 | 232 |
232 #undef __ | 233 #undef __ |
233 | 234 |
234 | 235 |
235 } } // namespace v8::internal | 236 } } // namespace v8::internal |
OLD | NEW |