OLD | NEW |
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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT | 181 const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT |
182 | 182 |
183 void Jump(Register target, COND_ARGS); | 183 void Jump(Register target, COND_ARGS); |
184 void Jump(intptr_t target, RelocInfo::Mode rmode, COND_ARGS); | 184 void Jump(intptr_t target, RelocInfo::Mode rmode, COND_ARGS); |
185 void Jump(Address target, RelocInfo::Mode rmode, COND_ARGS); | 185 void Jump(Address target, RelocInfo::Mode rmode, COND_ARGS); |
186 void Jump(Handle<Code> code, RelocInfo::Mode rmode, COND_ARGS); | 186 void Jump(Handle<Code> code, RelocInfo::Mode rmode, COND_ARGS); |
187 static int CallSize(Register target, COND_ARGS); | 187 static int CallSize(Register target, COND_ARGS); |
188 void Call(Register target, COND_ARGS); | 188 void Call(Register target, COND_ARGS); |
189 static int CallSize(Address target, RelocInfo::Mode rmode, COND_ARGS); | 189 static int CallSize(Address target, RelocInfo::Mode rmode, COND_ARGS); |
190 void Call(Address target, RelocInfo::Mode rmode, COND_ARGS); | 190 void Call(Address target, RelocInfo::Mode rmode, COND_ARGS); |
191 static int CallSize(Handle<Code> code, | 191 int CallSize(Handle<Code> code, |
192 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, | 192 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
193 TypeFeedbackId ast_id = TypeFeedbackId::None(), | 193 TypeFeedbackId ast_id = TypeFeedbackId::None(), |
194 COND_ARGS); | 194 COND_ARGS); |
195 void Call(Handle<Code> code, | 195 void Call(Handle<Code> code, |
196 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, | 196 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
197 TypeFeedbackId ast_id = TypeFeedbackId::None(), | 197 TypeFeedbackId ast_id = TypeFeedbackId::None(), |
198 COND_ARGS); | 198 COND_ARGS); |
199 void Ret(COND_ARGS); | 199 void Ret(COND_ARGS); |
200 inline void Ret(BranchDelaySlot bd, Condition cond = al, | 200 inline void Ret(BranchDelaySlot bd, Condition cond = al, |
201 Register rs = zero_reg, const Operand& rt = Operand(zero_reg)) { | 201 Register rs = zero_reg, const Operand& rt = Operand(zero_reg)) { |
202 Ret(cond, rs, rt, bd); | 202 Ret(cond, rs, rt, bd); |
203 } | 203 } |
204 | 204 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 // Store an object to the root table. | 282 // Store an object to the root table. |
283 void StoreRoot(Register source, | 283 void StoreRoot(Register source, |
284 Heap::RootListIndex index); | 284 Heap::RootListIndex index); |
285 void StoreRoot(Register source, | 285 void StoreRoot(Register source, |
286 Heap::RootListIndex index, | 286 Heap::RootListIndex index, |
287 Condition cond, Register src1, const Operand& src2); | 287 Condition cond, Register src1, const Operand& src2); |
288 | 288 |
289 void LoadHeapObject(Register dst, Handle<HeapObject> object); | 289 void LoadHeapObject(Register dst, Handle<HeapObject> object); |
290 | 290 |
291 void LoadObject(Register result, Handle<Object> object) { | 291 void LoadObject(Register result, Handle<Object> object) { |
| 292 ALLOW_HANDLE_DEREF(isolate(), "heap object check"); |
292 if (object->IsHeapObject()) { | 293 if (object->IsHeapObject()) { |
293 LoadHeapObject(result, Handle<HeapObject>::cast(object)); | 294 LoadHeapObject(result, Handle<HeapObject>::cast(object)); |
294 } else { | 295 } else { |
295 li(result, object); | 296 li(result, object); |
296 } | 297 } |
297 } | 298 } |
298 | 299 |
299 // --------------------------------------------------------------------------- | 300 // --------------------------------------------------------------------------- |
300 // GC Support | 301 // GC Support |
301 | 302 |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 | 876 |
876 // Invoke the JavaScript function in the given register. Changes the | 877 // Invoke the JavaScript function in the given register. Changes the |
877 // current context to the context in the function before invoking. | 878 // current context to the context in the function before invoking. |
878 void InvokeFunction(Register function, | 879 void InvokeFunction(Register function, |
879 const ParameterCount& actual, | 880 const ParameterCount& actual, |
880 InvokeFlag flag, | 881 InvokeFlag flag, |
881 const CallWrapper& call_wrapper, | 882 const CallWrapper& call_wrapper, |
882 CallKind call_kind); | 883 CallKind call_kind); |
883 | 884 |
884 void InvokeFunction(Handle<JSFunction> function, | 885 void InvokeFunction(Handle<JSFunction> function, |
| 886 const ParameterCount& expected, |
885 const ParameterCount& actual, | 887 const ParameterCount& actual, |
886 InvokeFlag flag, | 888 InvokeFlag flag, |
887 const CallWrapper& call_wrapper, | 889 const CallWrapper& call_wrapper, |
888 CallKind call_kind); | 890 CallKind call_kind); |
889 | 891 |
890 | 892 |
891 void IsObjectJSObjectType(Register heap_object, | 893 void IsObjectJSObjectType(Register heap_object, |
892 Register map, | 894 Register map, |
893 Register scratch, | 895 Register scratch, |
894 Label* fail); | 896 Label* fail); |
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1578 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1577 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1579 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1578 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1580 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1579 #else | 1581 #else |
1580 #define ACCESS_MASM(masm) masm-> | 1582 #define ACCESS_MASM(masm) masm-> |
1581 #endif | 1583 #endif |
1582 | 1584 |
1583 } } // namespace v8::internal | 1585 } } // namespace v8::internal |
1584 | 1586 |
1585 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1587 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |