OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 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 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 | 304 |
305 // Return the generated code. | 305 // Return the generated code. |
306 return GetCode(NORMAL, name); | 306 return GetCode(NORMAL, name); |
307 } | 307 } |
308 | 308 |
309 | 309 |
310 Object* LoadStubCompiler::CompileLoadCallback(JSObject* a, | 310 Object* LoadStubCompiler::CompileLoadCallback(JSObject* a, |
311 JSObject* b, | 311 JSObject* b, |
312 AccessorInfo* c, | 312 AccessorInfo* c, |
313 String* d) { | 313 String* d) { |
314 UNIMPLEMENTED(); | 314 // TODO(X64): Implement a real stub. |
315 return NULL; | 315 return Failure::InternalError(); |
316 } | 316 } |
317 | 317 |
318 | 318 |
319 Object* LoadStubCompiler::CompileLoadConstant(JSObject* a, | 319 Object* LoadStubCompiler::CompileLoadConstant(JSObject* a, |
320 JSObject* b, | 320 JSObject* b, |
321 Object* c, | 321 Object* c, |
322 String* d) { | 322 String* d) { |
323 UNIMPLEMENTED(); | 323 // TODO(X64): Implement a real stub. |
324 return NULL; | 324 return Failure::InternalError(); |
325 } | 325 } |
326 | 326 |
327 | 327 |
328 Object* LoadStubCompiler::CompileLoadField(JSObject* a, | 328 Object* LoadStubCompiler::CompileLoadField(JSObject* a, |
329 JSObject* b, | 329 JSObject* b, |
330 int c, | 330 int c, |
331 String* d) { | 331 String* d) { |
332 UNIMPLEMENTED(); | 332 // TODO(X64): Implement a real stub. |
333 return NULL; | 333 return Failure::InternalError(); |
334 } | 334 } |
335 | 335 |
336 | 336 |
337 Object* LoadStubCompiler::CompileLoadInterceptor(JSObject* a, | 337 Object* LoadStubCompiler::CompileLoadInterceptor(JSObject* a, |
338 JSObject* b, | 338 JSObject* b, |
339 String* c) { | 339 String* c) { |
340 UNIMPLEMENTED(); | 340 // TODO(X64): Implement a real stub. |
341 return NULL; | 341 return Failure::InternalError(); |
342 } | 342 } |
343 | 343 |
344 | 344 |
345 Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object, | 345 Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object, |
346 GlobalObject* holder, | 346 GlobalObject* holder, |
347 JSGlobalPropertyCell* cell, | 347 JSGlobalPropertyCell* cell, |
348 String* name, | 348 String* name, |
349 bool is_dont_delete) { | 349 bool is_dont_delete) { |
350 UNIMPLEMENTED(); | 350 // TODO(X64): Implement a real stub. |
351 return NULL; | 351 return Failure::InternalError(); |
352 } | 352 } |
353 | 353 |
354 | 354 |
355 Object* StoreStubCompiler::CompileStoreCallback(JSObject* a, | 355 Object* StoreStubCompiler::CompileStoreCallback(JSObject* a, |
356 AccessorInfo* b, | 356 AccessorInfo* b, |
357 String* c) { | 357 String* c) { |
358 UNIMPLEMENTED(); | 358 UNIMPLEMENTED(); |
359 return NULL; | 359 return NULL; |
360 } | 360 } |
361 | 361 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 int offset = holder->map()->instance_size() + (index * kPointerSize); | 481 int offset = holder->map()->instance_size() + (index * kPointerSize); |
482 __ movq(dst, FieldOperand(src, offset)); | 482 __ movq(dst, FieldOperand(src, offset)); |
483 } else { | 483 } else { |
484 // Calculate the offset into the properties array. | 484 // Calculate the offset into the properties array. |
485 int offset = index * kPointerSize + FixedArray::kHeaderSize; | 485 int offset = index * kPointerSize + FixedArray::kHeaderSize; |
486 __ movq(dst, FieldOperand(src, JSObject::kPropertiesOffset)); | 486 __ movq(dst, FieldOperand(src, JSObject::kPropertiesOffset)); |
487 __ movq(dst, FieldOperand(dst, offset)); | 487 __ movq(dst, FieldOperand(dst, offset)); |
488 } | 488 } |
489 } | 489 } |
490 | 490 |
| 491 |
| 492 void StubCache::GenerateProbe(MacroAssembler* masm, |
| 493 Code::Flags flags, |
| 494 Register receiver, |
| 495 Register name, |
| 496 Register scratch, |
| 497 Register extra) { |
| 498 Label miss; |
| 499 // TODO(X64): Probe the primary and secondary StubCache tables. |
| 500 |
| 501 // Cache miss: Fall-through and let caller handle the miss by |
| 502 // entering the runtime system. |
| 503 __ bind(&miss); |
| 504 } |
| 505 |
| 506 |
491 #undef __ | 507 #undef __ |
492 | 508 |
493 | 509 |
494 } } // namespace v8::internal | 510 } } // namespace v8::internal |
OLD | NEW |