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

Side by Side Diff: src/ppc/assembler-ppc.cc

Issue 1474763008: Always pass an Isolate to AssemblerBase (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 5 years 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
« no previous file with comments | « src/mips64/macro-assembler-mips64.cc ('k') | src/ppc/codegen-ppc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 instr |= (imm16 & kImm16Mask); 446 instr |= (imm16 & kImm16Mask);
447 } 447 }
448 instr_at_put(pos, instr); 448 instr_at_put(pos, instr);
449 break; 449 break;
450 } 450 }
451 case kUnboundMovLabelOffsetOpcode: { 451 case kUnboundMovLabelOffsetOpcode: {
452 // Load the position of the label relative to the generated code object 452 // Load the position of the label relative to the generated code object
453 // pointer in a register. 453 // pointer in a register.
454 Register dst = Register::from_code(instr_at(pos + kInstrSize)); 454 Register dst = Register::from_code(instr_at(pos + kInstrSize));
455 int32_t offset = target_pos + (Code::kHeaderSize - kHeapObjectTag); 455 int32_t offset = target_pos + (Code::kHeaderSize - kHeapObjectTag);
456 CodePatcher patcher(reinterpret_cast<byte*>(buffer_ + pos), 2, 456 CodePatcher patcher(isolate(), reinterpret_cast<byte*>(buffer_ + pos), 2,
457 CodePatcher::DONT_FLUSH); 457 CodePatcher::DONT_FLUSH);
458 patcher.masm()->bitwise_mov32(dst, offset); 458 patcher.masm()->bitwise_mov32(dst, offset);
459 break; 459 break;
460 } 460 }
461 case kUnboundAddLabelOffsetOpcode: { 461 case kUnboundAddLabelOffsetOpcode: {
462 // dst = base + position + immediate 462 // dst = base + position + immediate
463 Instr operands = instr_at(pos + kInstrSize); 463 Instr operands = instr_at(pos + kInstrSize);
464 Register dst = Register::from_code((operands >> 21) & 0x1f); 464 Register dst = Register::from_code((operands >> 21) & 0x1f);
465 Register base = Register::from_code((operands >> 16) & 0x1f); 465 Register base = Register::from_code((operands >> 16) & 0x1f);
466 int32_t offset = target_pos + SIGN_EXT_IMM16(operands & kImm16Mask); 466 int32_t offset = target_pos + SIGN_EXT_IMM16(operands & kImm16Mask);
467 CodePatcher patcher(reinterpret_cast<byte*>(buffer_ + pos), 2, 467 CodePatcher patcher(isolate(), reinterpret_cast<byte*>(buffer_ + pos), 2,
468 CodePatcher::DONT_FLUSH); 468 CodePatcher::DONT_FLUSH);
469 patcher.masm()->bitwise_add32(dst, base, offset); 469 patcher.masm()->bitwise_add32(dst, base, offset);
470 break; 470 break;
471 } 471 }
472 case kUnboundMovLabelAddrOpcode: { 472 case kUnboundMovLabelAddrOpcode: {
473 // Load the address of the label in a register. 473 // Load the address of the label in a register.
474 Register dst = Register::from_code(instr_at(pos + kInstrSize)); 474 Register dst = Register::from_code(instr_at(pos + kInstrSize));
475 CodePatcher patcher(reinterpret_cast<byte*>(buffer_ + pos), 475 CodePatcher patcher(isolate(), reinterpret_cast<byte*>(buffer_ + pos),
476 kMovInstructionsNoConstantPool, 476 kMovInstructionsNoConstantPool,
477 CodePatcher::DONT_FLUSH); 477 CodePatcher::DONT_FLUSH);
478 // Keep internal references relative until EmitRelocations. 478 // Keep internal references relative until EmitRelocations.
479 patcher.masm()->bitwise_mov(dst, target_pos); 479 patcher.masm()->bitwise_mov(dst, target_pos);
480 break; 480 break;
481 } 481 }
482 case kUnboundJumpTableEntryOpcode: { 482 case kUnboundJumpTableEntryOpcode: {
483 CodePatcher patcher(reinterpret_cast<byte*>(buffer_ + pos), 483 CodePatcher patcher(isolate(), reinterpret_cast<byte*>(buffer_ + pos),
484 kPointerSize / kInstrSize, CodePatcher::DONT_FLUSH); 484 kPointerSize / kInstrSize, CodePatcher::DONT_FLUSH);
485 // Keep internal references relative until EmitRelocations. 485 // Keep internal references relative until EmitRelocations.
486 patcher.masm()->dp(target_pos); 486 patcher.masm()->dp(target_pos);
487 break; 487 break;
488 } 488 }
489 default: 489 default:
490 DCHECK(false); 490 DCHECK(false);
491 break; 491 break;
492 } 492 }
493 } 493 }
(...skipping 1961 matching lines...) Expand 10 before | Expand all | Expand 10 after
2455 2455
2456 trampoline_ = Trampoline(pc_offset() - size, tracked_branch_count_); 2456 trampoline_ = Trampoline(pc_offset() - size, tracked_branch_count_);
2457 } 2457 }
2458 } 2458 }
2459 2459
2460 2460
2461 } // namespace internal 2461 } // namespace internal
2462 } // namespace v8 2462 } // namespace v8
2463 2463
2464 #endif // V8_TARGET_ARCH_PPC 2464 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/mips64/macro-assembler-mips64.cc ('k') | src/ppc/codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698