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

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

Issue 8391045: Handlify the remaining CallStubCompiler functions. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 1 month 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 CallKind call_kind); 513 CallKind call_kind);
514 514
515 // Invoke the JavaScript function in the given register. Changes the 515 // Invoke the JavaScript function in the given register. Changes the
516 // current context to the context in the function before invoking. 516 // current context to the context in the function before invoking.
517 void InvokeFunction(Register function, 517 void InvokeFunction(Register function,
518 const ParameterCount& actual, 518 const ParameterCount& actual,
519 InvokeFlag flag, 519 InvokeFlag flag,
520 const CallWrapper& call_wrapper, 520 const CallWrapper& call_wrapper,
521 CallKind call_kind); 521 CallKind call_kind);
522 522
523 void InvokeFunction(JSFunction* function, 523 void InvokeFunction(Handle<JSFunction> function,
524 const ParameterCount& actual, 524 const ParameterCount& actual,
525 InvokeFlag flag, 525 InvokeFlag flag,
526 CallKind call_kind); 526 CallKind call_kind);
527 527
528 void IsObjectJSObjectType(Register heap_object, 528 void IsObjectJSObjectType(Register heap_object,
529 Register map, 529 Register map,
530 Register scratch, 530 Register scratch,
531 Label* fail); 531 Label* fail);
532 532
533 void IsInstanceJSObjectType(Register map, 533 void IsInstanceJSObjectType(Register map,
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 void CountLeadingZeros(Register zeros, 919 void CountLeadingZeros(Register zeros,
920 Register source, 920 Register source,
921 Register scratch); 921 Register scratch);
922 922
923 // --------------------------------------------------------------------------- 923 // ---------------------------------------------------------------------------
924 // Runtime calls 924 // Runtime calls
925 925
926 // Call a code stub. 926 // Call a code stub.
927 void CallStub(CodeStub* stub, Condition cond = al); 927 void CallStub(CodeStub* stub, Condition cond = al);
928 928
929 // Call a code stub and return the code object called. Try to generate
930 // the code if necessary. Do not perform a GC but instead return a retry
931 // after GC failure.
932 MUST_USE_RESULT MaybeObject* TryCallStub(CodeStub* stub, Condition cond = al);
933
934 // Call a code stub. 929 // Call a code stub.
935 void TailCallStub(CodeStub* stub, Condition cond = al); 930 void TailCallStub(CodeStub* stub, Condition cond = al);
936 931
937 // Tail call a code stub (jump) and return the code object called. Try to
938 // generate the code if necessary. Do not perform a GC but instead return
939 // a retry after GC failure.
940 MUST_USE_RESULT MaybeObject* TryTailCallStub(CodeStub* stub,
941 Condition cond = al);
942
943 // Call a runtime routine. 932 // Call a runtime routine.
944 void CallRuntime(const Runtime::Function* f, int num_arguments); 933 void CallRuntime(const Runtime::Function* f, int num_arguments);
945 void CallRuntimeSaveDoubles(Runtime::FunctionId id); 934 void CallRuntimeSaveDoubles(Runtime::FunctionId id);
946 935
947 // Convenience function: Same as above, but takes the fid instead. 936 // Convenience function: Same as above, but takes the fid instead.
948 void CallRuntime(Runtime::FunctionId fid, int num_arguments); 937 void CallRuntime(Runtime::FunctionId fid, int num_arguments);
949 938
950 // Convenience function: call an external reference. 939 // Convenience function: call an external reference.
951 void CallExternalReference(const ExternalReference& ext, 940 void CallExternalReference(const ExternalReference& ext,
952 int num_arguments); 941 int num_arguments);
953 942
954 // Tail call of a runtime routine (jump). 943 // Tail call of a runtime routine (jump).
955 // Like JumpToExternalReference, but also takes care of passing the number 944 // Like JumpToExternalReference, but also takes care of passing the number
956 // of parameters. 945 // of parameters.
957 void TailCallExternalReference(const ExternalReference& ext, 946 void TailCallExternalReference(const ExternalReference& ext,
958 int num_arguments, 947 int num_arguments,
959 int result_size); 948 int result_size);
960 949
961 // Tail call of a runtime routine (jump). Try to generate the code if
962 // necessary. Do not perform a GC but instead return a retry after GC
963 // failure.
964 MUST_USE_RESULT MaybeObject* TryTailCallExternalReference(
965 const ExternalReference& ext, int num_arguments, int result_size);
966
967 // Convenience function: tail call a runtime routine (jump). 950 // Convenience function: tail call a runtime routine (jump).
968 void TailCallRuntime(Runtime::FunctionId fid, 951 void TailCallRuntime(Runtime::FunctionId fid,
969 int num_arguments, 952 int num_arguments,
970 int result_size); 953 int result_size);
971 954
972 int CalculateStackPassedWords(int num_reg_arguments, 955 int CalculateStackPassedWords(int num_reg_arguments,
973 int num_double_arguments); 956 int num_double_arguments);
974 957
975 // Before calling a C-function from generated code, align arguments on stack. 958 // Before calling a C-function from generated code, align arguments on stack.
976 // After aligning the frame, non-register arguments must be stored in 959 // After aligning the frame, non-register arguments must be stored in
(...skipping 28 matching lines...) Expand all
1005 void CallCFunction(Register function, int num_arguments); 988 void CallCFunction(Register function, int num_arguments);
1006 void CallCFunction(ExternalReference function, 989 void CallCFunction(ExternalReference function,
1007 int num_reg_arguments, 990 int num_reg_arguments,
1008 int num_double_arguments); 991 int num_double_arguments);
1009 void CallCFunction(Register function, 992 void CallCFunction(Register function,
1010 int num_reg_arguments, 993 int num_reg_arguments,
1011 int num_double_arguments); 994 int num_double_arguments);
1012 995
1013 void GetCFunctionDoubleResult(const DoubleRegister dst); 996 void GetCFunctionDoubleResult(const DoubleRegister dst);
1014 997
1015 // Calls an API function. Allocates HandleScope, extracts returned value 998 // Calls an API function. Allocates HandleScope, extracts returned value
1016 // from handle and propagates exceptions. Restores context. 999 // from handle and propagates exceptions. Restores context. stack_space
1017 // stack_space - space to be unwound on exit (includes the call js 1000 // - space to be unwound on exit (includes the call js arguments space and
1018 // arguments space and the additional space allocated for the fast call). 1001 // the additional space allocated for the fast call).
1019 MaybeObject* TryCallApiFunctionAndReturn(ExternalReference function, 1002 void CallApiFunctionAndReturn(ExternalReference function, int stack_space);
1020 int stack_space);
1021 1003
1022 // Jump to a runtime routine. 1004 // Jump to a runtime routine.
1023 void JumpToExternalReference(const ExternalReference& builtin); 1005 void JumpToExternalReference(const ExternalReference& builtin);
1024 1006
1025 MaybeObject* TryJumpToExternalReference(const ExternalReference& ext);
1026
1027 // Invoke specified builtin JavaScript function. Adds an entry to 1007 // Invoke specified builtin JavaScript function. Adds an entry to
1028 // the unresolved list if the name does not resolve. 1008 // the unresolved list if the name does not resolve.
1029 void InvokeBuiltin(Builtins::JavaScript id, 1009 void InvokeBuiltin(Builtins::JavaScript id,
1030 InvokeFlag flag, 1010 InvokeFlag flag,
1031 const CallWrapper& call_wrapper = NullCallWrapper()); 1011 const CallWrapper& call_wrapper = NullCallWrapper());
1032 1012
1033 // Store the code object for the given builtin in the target register and 1013 // Store the code object for the given builtin in the target register and
1034 // setup the function in r1. 1014 // setup the function in r1.
1035 void GetBuiltinEntry(Register target, Builtins::JavaScript id); 1015 void GetBuiltinEntry(Register target, Builtins::JavaScript id);
1036 1016
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1312 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1333 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1313 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1334 #else 1314 #else
1335 #define ACCESS_MASM(masm) masm-> 1315 #define ACCESS_MASM(masm) masm->
1336 #endif 1316 #endif
1337 1317
1338 1318
1339 } } // namespace v8::internal 1319 } } // namespace v8::internal
1340 1320
1341 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1321 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698