Index: src/ic/access-compiler.cc |
diff --git a/src/ic/access-compiler.cc b/src/ic/access-compiler.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c3bf11c43910eaff59d9b6bf70d22d4c93d89c0c |
--- /dev/null |
+++ b/src/ic/access-compiler.cc |
@@ -0,0 +1,55 @@ |
+// Copyright 2014 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "src/v8.h" |
+ |
+#include "src/ic/access-compiler.h" |
+ |
+ |
+namespace v8 { |
+namespace internal { |
+ |
+ |
+Handle<Code> PropertyAccessCompiler::GetCodeWithFlags(Code::Flags flags, |
+ const char* name) { |
+ // Create code object in the heap. |
+ CodeDesc desc; |
+ masm()->GetCode(&desc); |
+ Handle<Code> code = factory()->NewCode(desc, flags, masm()->CodeObject()); |
+ if (code->IsCodeStubOrIC()) code->set_stub_key(CodeStub::NoCacheKey()); |
+#ifdef ENABLE_DISASSEMBLER |
+ if (FLAG_print_code_stubs) { |
+ OFStream os(stdout); |
+ code->Disassemble(name, os); |
+ } |
+#endif |
+ return code; |
+} |
+ |
+ |
+Handle<Code> PropertyAccessCompiler::GetCodeWithFlags(Code::Flags flags, |
+ Handle<Name> name) { |
+ return (FLAG_print_code_stubs && !name.is_null() && name->IsString()) |
+ ? GetCodeWithFlags(flags, |
+ Handle<String>::cast(name)->ToCString().get()) |
+ : GetCodeWithFlags(flags, NULL); |
+} |
+ |
+ |
+void PropertyAccessCompiler::TailCallBuiltin(MacroAssembler* masm, |
+ Builtins::Name name) { |
+ Handle<Code> code(masm->isolate()->builtins()->builtin(name)); |
+ GenerateTailCall(masm, code); |
+} |
+ |
+ |
+Register* PropertyAccessCompiler::GetCallingConvention(Code::Kind kind) { |
+ if (kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC) { |
+ return load_calling_convention(); |
+ } |
+ DCHECK(kind == Code::STORE_IC || kind == Code::KEYED_STORE_IC); |
+ return store_calling_convention(); |
+} |
+} |
+} // namespace v8::internal |