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

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

Issue 12093089: Support pass-through of stub caller arguments (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: ARM port Created 7 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
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 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 245
246 protected: 246 protected:
247 // Generates the assembler code for the stub. 247 // Generates the assembler code for the stub.
248 virtual void Generate(MacroAssembler* masm) = 0; 248 virtual void Generate(MacroAssembler* masm) = 0;
249 }; 249 };
250 250
251 251
252 struct CodeStubInterfaceDescriptor { 252 struct CodeStubInterfaceDescriptor {
253 CodeStubInterfaceDescriptor() 253 CodeStubInterfaceDescriptor()
254 : register_param_count_(-1), 254 : register_param_count_(-1),
255 register_params_(NULL) { } 255 stack_parameter_count_(NULL),
256 extra_expression_stack_count_(0),
257 register_params_(NULL)
258 { }
256 int register_param_count_; 259 int register_param_count_;
260 const Register* stack_parameter_count_;
261 int extra_expression_stack_count_;
257 Register* register_params_; 262 Register* register_params_;
258 Address deoptimization_handler_; 263 Address deoptimization_handler_;
259 }; 264 };
260 265
261 266
262 class HGraph; 267 class HGraph;
263 struct Register; 268 struct Register;
264 class HydrogenCodeStub : public CodeStub { 269 class HydrogenCodeStub : public CodeStub {
265 public: 270 public:
266 // Retrieve the code for the stub. Generate the code if needed. 271 // Retrieve the code for the stub. Generate the code if needed.
(...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 void Generate(MacroAssembler* masm); 1383 void Generate(MacroAssembler* masm);
1379 1384
1380 bool fp_registers_; 1385 bool fp_registers_;
1381 1386
1382 DISALLOW_COPY_AND_ASSIGN(StoreArrayLiteralElementStub); 1387 DISALLOW_COPY_AND_ASSIGN(StoreArrayLiteralElementStub);
1383 }; 1388 };
1384 1389
1385 1390
1386 class StubFailureTrampolineStub : public PlatformCodeStub { 1391 class StubFailureTrampolineStub : public PlatformCodeStub {
1387 public: 1392 public:
1388 StubFailureTrampolineStub() {} 1393 explicit StubFailureTrampolineStub(int extra_expression_stack_count)
1394 : extra_expression_stack_count_(extra_expression_stack_count) {}
1389 1395
1390 private: 1396 private:
1391 Major MajorKey() { return StubFailureTrampoline; } 1397 Major MajorKey() { return StubFailureTrampoline; }
1392 int MinorKey() { return 0; } 1398 int MinorKey() { return extra_expression_stack_count_; }
1393 1399
1394 void Generate(MacroAssembler* masm); 1400 void Generate(MacroAssembler* masm);
1395 1401
1402 int extra_expression_stack_count_;
1403
1396 DISALLOW_COPY_AND_ASSIGN(StubFailureTrampolineStub); 1404 DISALLOW_COPY_AND_ASSIGN(StubFailureTrampolineStub);
1397 }; 1405 };
1398 1406
1399 1407
1400 class ProfileEntryHookStub : public PlatformCodeStub { 1408 class ProfileEntryHookStub : public PlatformCodeStub {
1401 public: 1409 public:
1402 explicit ProfileEntryHookStub() {} 1410 explicit ProfileEntryHookStub() {}
1403 1411
1404 // The profile entry hook function is not allowed to cause a GC. 1412 // The profile entry hook function is not allowed to cause a GC.
1405 virtual bool SometimesSetsUpAFrame() { return false; } 1413 virtual bool SometimesSetsUpAFrame() { return false; }
(...skipping 19 matching lines...) Expand all
1425 1433
1426 // The current function entry hook. 1434 // The current function entry hook.
1427 static FunctionEntryHook entry_hook_; 1435 static FunctionEntryHook entry_hook_;
1428 1436
1429 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub); 1437 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub);
1430 }; 1438 };
1431 1439
1432 } } // namespace v8::internal 1440 } } // namespace v8::internal
1433 1441
1434 #endif // V8_CODE_STUBS_H_ 1442 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-arm.cc ('k') | src/code-stubs-hydrogen.cc » ('j') | src/frames.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698