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

Side by Side Diff: src/ia32/stub-cache-ia32.cc

Issue 7307004: Fix ABI for API calls on ia32. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: make it more portable Created 9 years, 5 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 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 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 470
471 // v8::InvocationCallback's argument. 471 // v8::InvocationCallback's argument.
472 __ lea(eax, ApiParameterOperand(1)); 472 __ lea(eax, ApiParameterOperand(1));
473 __ mov(ApiParameterOperand(0), eax); 473 __ mov(ApiParameterOperand(0), eax);
474 474
475 // Emitting a stub call may try to allocate (if the code is not 475 // Emitting a stub call may try to allocate (if the code is not
476 // already generated). Do not allow the assembler to perform a 476 // already generated). Do not allow the assembler to perform a
477 // garbage collection but instead return the allocation failure 477 // garbage collection but instead return the allocation failure
478 // object. 478 // object.
479 return masm->TryCallApiFunctionAndReturn(&fun, 479 return masm->TryCallApiFunctionAndReturn(&fun,
480 kApiArgc + kApiStackSpace,
480 argc + kFastApiCallArguments + 1); 481 argc + kFastApiCallArguments + 1);
481 } 482 }
482 483
483 484
484 class CallInterceptorCompiler BASE_EMBEDDED { 485 class CallInterceptorCompiler BASE_EMBEDDED {
485 public: 486 public:
486 CallInterceptorCompiler(StubCompiler* stub_compiler, 487 CallInterceptorCompiler(StubCompiler* stub_compiler,
487 const ParameterCount& arguments, 488 const ParameterCount& arguments,
488 Register name, 489 Register name,
489 Code::ExtraICState extra_ic_state) 490 Code::ExtraICState extra_ic_state)
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 1085
1085 __ PrepareCallApiFunction(kApiArgc, eax); 1086 __ PrepareCallApiFunction(kApiArgc, eax);
1086 __ mov(ApiParameterOperand(0), ebx); // name. 1087 __ mov(ApiParameterOperand(0), ebx); // name.
1087 __ add(Operand(ebx), Immediate(kPointerSize)); 1088 __ add(Operand(ebx), Immediate(kPointerSize));
1088 __ mov(ApiParameterOperand(1), ebx); // arguments pointer. 1089 __ mov(ApiParameterOperand(1), ebx); // arguments pointer.
1089 1090
1090 // Emitting a stub call may try to allocate (if the code is not 1091 // Emitting a stub call may try to allocate (if the code is not
1091 // already generated). Do not allow the assembler to perform a 1092 // already generated). Do not allow the assembler to perform a
1092 // garbage collection but instead return the allocation failure 1093 // garbage collection but instead return the allocation failure
1093 // object. 1094 // object.
1094 return masm()->TryCallApiFunctionAndReturn(&fun, kStackSpace); 1095 return masm()->TryCallApiFunctionAndReturn(&fun,
1096 kApiArgc,
1097 kStackSpace);
1095 } 1098 }
1096 1099
1097 1100
1098 void StubCompiler::GenerateLoadConstant(JSObject* object, 1101 void StubCompiler::GenerateLoadConstant(JSObject* object,
1099 JSObject* holder, 1102 JSObject* holder,
1100 Register receiver, 1103 Register receiver,
1101 Register scratch1, 1104 Register scratch1,
1102 Register scratch2, 1105 Register scratch2,
1103 Register scratch3, 1106 Register scratch3,
1104 Object* value, 1107 Object* value,
(...skipping 2669 matching lines...) Expand 10 before | Expand all | Expand 10 after
3774 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); 3777 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric();
3775 __ jmp(ic_force_generic, RelocInfo::CODE_TARGET); 3778 __ jmp(ic_force_generic, RelocInfo::CODE_TARGET);
3776 } 3779 }
3777 3780
3778 3781
3779 #undef __ 3782 #undef __
3780 3783
3781 } } // namespace v8::internal 3784 } } // namespace v8::internal
3782 3785
3783 #endif // V8_TARGET_ARCH_IA32 3786 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« src/ia32/macro-assembler-ia32.cc ('K') | « src/ia32/macro-assembler-ia32.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698