OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1044 } else { | 1044 } else { |
1045 ASSERT(flags == JUMP_JS); | 1045 ASSERT(flags == JUMP_JS); |
1046 Jump(code, RelocInfo::CODE_TARGET); | 1046 Jump(code, RelocInfo::CODE_TARGET); |
1047 } | 1047 } |
1048 | 1048 |
1049 if (!resolved) { | 1049 if (!resolved) { |
1050 const char* name = Builtins::GetName(id); | 1050 const char* name = Builtins::GetName(id); |
1051 int argc = Builtins::GetArgumentsCount(id); | 1051 int argc = Builtins::GetArgumentsCount(id); |
1052 uint32_t flags = | 1052 uint32_t flags = |
1053 Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | | 1053 Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | |
1054 Bootstrapper::FixupFlagsIsPCRelative::encode(true) | | |
1055 Bootstrapper::FixupFlagsUseCodeObject::encode(false); | 1054 Bootstrapper::FixupFlagsUseCodeObject::encode(false); |
1056 Unresolved entry = { pc_offset() - kInstrSize, flags, name }; | 1055 Unresolved entry = { pc_offset() - kInstrSize, flags, name }; |
1057 unresolved_.Add(entry); | 1056 unresolved_.Add(entry); |
1058 } | 1057 } |
1059 } | 1058 } |
1060 | 1059 |
1061 | 1060 |
1062 void MacroAssembler::GetBuiltinEntry(Register target, Builtins::JavaScript id) { | 1061 void MacroAssembler::GetBuiltinEntry(Register target, Builtins::JavaScript id) { |
1063 bool resolved; | 1062 bool resolved; |
1064 Handle<Code> code = ResolveBuiltin(id, &resolved); | 1063 Handle<Code> code = ResolveBuiltin(id, &resolved); |
1065 | 1064 |
1066 mov(target, Operand(code)); | 1065 mov(target, Operand(code)); |
1067 if (!resolved) { | 1066 if (!resolved) { |
1068 const char* name = Builtins::GetName(id); | 1067 const char* name = Builtins::GetName(id); |
1069 int argc = Builtins::GetArgumentsCount(id); | 1068 int argc = Builtins::GetArgumentsCount(id); |
1070 uint32_t flags = | 1069 uint32_t flags = |
1071 Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | | 1070 Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | |
1072 Bootstrapper::FixupFlagsIsPCRelative::encode(true) | | |
1073 Bootstrapper::FixupFlagsUseCodeObject::encode(true); | 1071 Bootstrapper::FixupFlagsUseCodeObject::encode(true); |
1074 Unresolved entry = { pc_offset() - kInstrSize, flags, name }; | 1072 Unresolved entry = { pc_offset() - kInstrSize, flags, name }; |
1075 unresolved_.Add(entry); | 1073 unresolved_.Add(entry); |
1076 } | 1074 } |
1077 | 1075 |
1078 add(target, target, Operand(Code::kHeaderSize - kHeapObjectTag)); | 1076 add(target, target, Operand(Code::kHeaderSize - kHeapObjectTag)); |
1079 } | 1077 } |
1080 | 1078 |
1081 | 1079 |
1082 void MacroAssembler::SetCounter(StatsCounter* counter, int value, | 1080 void MacroAssembler::SetCounter(StatsCounter* counter, int value, |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1180 } | 1178 } |
1181 | 1179 |
1182 | 1180 |
1183 void CodePatcher::Emit(Address addr) { | 1181 void CodePatcher::Emit(Address addr) { |
1184 masm()->emit(reinterpret_cast<Instr>(addr)); | 1182 masm()->emit(reinterpret_cast<Instr>(addr)); |
1185 } | 1183 } |
1186 #endif // ENABLE_DEBUGGER_SUPPORT | 1184 #endif // ENABLE_DEBUGGER_SUPPORT |
1187 | 1185 |
1188 | 1186 |
1189 } } // namespace v8::internal | 1187 } } // namespace v8::internal |
OLD | NEW |