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

Side by Side Diff: src/arguments.h

Issue 13520004: [NOT FOR COMMIT] Native Client builds of V8 on ia32 and x64. (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: A couple minor cleanups Created 7 years, 8 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
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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 void IterateInstance(ObjectVisitor* v); 109 void IterateInstance(ObjectVisitor* v);
110 Object** end() { return values_ + ARRAY_SIZE(values_) - 1; } 110 Object** end() { return values_ + ARRAY_SIZE(values_) - 1; }
111 111
112 private: 112 private:
113 Object* values_[4]; 113 Object* values_[4];
114 }; 114 };
115 115
116 116
117 #if defined(V8_ARM_ON_X86_64)
118 // In arm/simulator-arm.cc, invocations of runtime functions
119 // assume that adjacent parameters will be automagically coalesced
120 // into call-by-value structures on the stack. This is okay for
121 // 32-bit but fails for 64-bit. We use a small stub routine to
122 // fix this, coalescing the first two parameters into the expected
123 // structure.
124 #define DECLARE_RUNTIME_FUNCTION(Type, Name) \
125 Type Name(int argslength, Object** argsobject, Isolate* isolate)
126
127 #define RUNTIME_FUNCTION(Type, Name) \
128 static Type __x86_64_impl_##Name(Arguments args, Isolate* isolate); \
129 Type Name(int argslength, Object** argsobject, Isolate* isolate) { \
130 Arguments args(argslength, argsobject); \
131 return __x86_64_impl_##Name(args, isolate); \
132 } \
133 static Type __x86_64_impl_##Name(Arguments args, Isolate* isolate)
134
135 #define RUNTIME_ARGUMENTS(isolate, args) \
136 args.length(), args.arguments(), isolate
137 #else
117 #define DECLARE_RUNTIME_FUNCTION(Type, Name) \ 138 #define DECLARE_RUNTIME_FUNCTION(Type, Name) \
118 Type Name(Arguments args, Isolate* isolate) 139 Type Name(Arguments args, Isolate* isolate)
119 140
120 141
121 #define RUNTIME_FUNCTION(Type, Name) \ 142 #define RUNTIME_FUNCTION(Type, Name) \
122 Type Name(Arguments args, Isolate* isolate) 143 Type Name(Arguments args, Isolate* isolate)
123 144
124 145
125 #define RUNTIME_ARGUMENTS(isolate, args) args, isolate 146 #define RUNTIME_ARGUMENTS(isolate, args) args, isolate
126 147 #endif // defined(V8_ARM_ON_X86_64)
127 148
128 } } // namespace v8::internal 149 } } // namespace v8::internal
129 150
130 #endif // V8_ARGUMENTS_H_ 151 #endif // V8_ARGUMENTS_H_
OLDNEW
« no previous file with comments | « build/common.gypi ('k') | src/arm/code-stubs-arm.cc » ('j') | src/arm/simulator-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698