Commit a3fbabc7 authored by Junliang Yan's avatar Junliang Yan Committed by Commit Bot

PPC: rename kPointerSize to kSystemPointerSize etc

Prepare for pointer compression changes

Change-Id: I8ec56ac65194f1f89f2803af155d5bec520a569f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2171036
Auto-Submit: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: 's avatarMilad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#67455}
parent abfdb819
This diff is collapsed.
...@@ -511,7 +511,7 @@ void Assembler::target_at_put(int pos, int target_pos, bool* is_branch) { ...@@ -511,7 +511,7 @@ void Assembler::target_at_put(int pos, int target_pos, bool* is_branch) {
case kUnboundJumpTableEntryOpcode: { case kUnboundJumpTableEntryOpcode: {
PatchingAssembler patcher(options(), PatchingAssembler patcher(options(),
reinterpret_cast<byte*>(buffer_start_ + pos), reinterpret_cast<byte*>(buffer_start_ + pos),
kPointerSize / kInstrSize); kSystemPointerSize / kInstrSize);
// Keep internal references relative until EmitRelocations. // Keep internal references relative until EmitRelocations.
patcher.dp(target_pos); patcher.dp(target_pos);
break; break;
......
...@@ -958,9 +958,9 @@ class Assembler : public AssemblerBase { ...@@ -958,9 +958,9 @@ class Assembler : public AssemblerBase {
void push(Register src) { void push(Register src) {
#if V8_TARGET_ARCH_PPC64 #if V8_TARGET_ARCH_PPC64
stdu(src, MemOperand(sp, -kPointerSize)); stdu(src, MemOperand(sp, -kSystemPointerSize));
#else #else
stwu(src, MemOperand(sp, -kPointerSize)); stwu(src, MemOperand(sp, -kSystemPointerSize));
#endif #endif
} }
...@@ -970,10 +970,10 @@ class Assembler : public AssemblerBase { ...@@ -970,10 +970,10 @@ class Assembler : public AssemblerBase {
#else #else
lwz(dst, MemOperand(sp)); lwz(dst, MemOperand(sp));
#endif #endif
addi(sp, sp, Operand(kPointerSize)); addi(sp, sp, Operand(kSystemPointerSize));
} }
void pop() { addi(sp, sp, Operand(kPointerSize)); } void pop() { addi(sp, sp, Operand(kSystemPointerSize)); }
// Jump unconditionally to given label. // Jump unconditionally to given label.
void jmp(Label* L) { b(L); } void jmp(Label* L) { b(L); }
......
This diff is collapsed.
...@@ -196,33 +196,33 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -196,33 +196,33 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
// Push two registers. Pushes leftmost register first (to highest address). // Push two registers. Pushes leftmost register first (to highest address).
void Push(Register src1, Register src2) { void Push(Register src1, Register src2) {
StorePU(src2, MemOperand(sp, -2 * kPointerSize)); StorePU(src2, MemOperand(sp, -2 * kSystemPointerSize));
StoreP(src1, MemOperand(sp, kPointerSize)); StoreP(src1, MemOperand(sp, kSystemPointerSize));
} }
// Push three registers. Pushes leftmost register first (to highest address). // Push three registers. Pushes leftmost register first (to highest address).
void Push(Register src1, Register src2, Register src3) { void Push(Register src1, Register src2, Register src3) {
StorePU(src3, MemOperand(sp, -3 * kPointerSize)); StorePU(src3, MemOperand(sp, -3 * kSystemPointerSize));
StoreP(src2, MemOperand(sp, kPointerSize)); StoreP(src2, MemOperand(sp, kSystemPointerSize));
StoreP(src1, MemOperand(sp, 2 * kPointerSize)); StoreP(src1, MemOperand(sp, 2 * kSystemPointerSize));
} }
// Push four registers. Pushes leftmost register first (to highest address). // Push four registers. Pushes leftmost register first (to highest address).
void Push(Register src1, Register src2, Register src3, Register src4) { void Push(Register src1, Register src2, Register src3, Register src4) {
StorePU(src4, MemOperand(sp, -4 * kPointerSize)); StorePU(src4, MemOperand(sp, -4 * kSystemPointerSize));
StoreP(src3, MemOperand(sp, kPointerSize)); StoreP(src3, MemOperand(sp, kSystemPointerSize));
StoreP(src2, MemOperand(sp, 2 * kPointerSize)); StoreP(src2, MemOperand(sp, 2 * kSystemPointerSize));
StoreP(src1, MemOperand(sp, 3 * kPointerSize)); StoreP(src1, MemOperand(sp, 3 * kSystemPointerSize));
} }
// Push five registers. Pushes leftmost register first (to highest address). // Push five registers. Pushes leftmost register first (to highest address).
void Push(Register src1, Register src2, Register src3, Register src4, void Push(Register src1, Register src2, Register src3, Register src4,
Register src5) { Register src5) {
StorePU(src5, MemOperand(sp, -5 * kPointerSize)); StorePU(src5, MemOperand(sp, -5 * kSystemPointerSize));
StoreP(src4, MemOperand(sp, kPointerSize)); StoreP(src4, MemOperand(sp, kSystemPointerSize));
StoreP(src3, MemOperand(sp, 2 * kPointerSize)); StoreP(src3, MemOperand(sp, 2 * kSystemPointerSize));
StoreP(src2, MemOperand(sp, 3 * kPointerSize)); StoreP(src2, MemOperand(sp, 3 * kSystemPointerSize));
StoreP(src1, MemOperand(sp, 4 * kPointerSize)); StoreP(src1, MemOperand(sp, 4 * kSystemPointerSize));
} }
void Pop(Register dst) { pop(dst); } void Pop(Register dst) { pop(dst); }
...@@ -230,36 +230,36 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -230,36 +230,36 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
// Pop two registers. Pops rightmost register first (from lower address). // Pop two registers. Pops rightmost register first (from lower address).
void Pop(Register src1, Register src2) { void Pop(Register src1, Register src2) {
LoadP(src2, MemOperand(sp, 0)); LoadP(src2, MemOperand(sp, 0));
LoadP(src1, MemOperand(sp, kPointerSize)); LoadP(src1, MemOperand(sp, kSystemPointerSize));
addi(sp, sp, Operand(2 * kPointerSize)); addi(sp, sp, Operand(2 * kSystemPointerSize));
} }
// Pop three registers. Pops rightmost register first (from lower address). // Pop three registers. Pops rightmost register first (from lower address).
void Pop(Register src1, Register src2, Register src3) { void Pop(Register src1, Register src2, Register src3) {
LoadP(src3, MemOperand(sp, 0)); LoadP(src3, MemOperand(sp, 0));
LoadP(src2, MemOperand(sp, kPointerSize)); LoadP(src2, MemOperand(sp, kSystemPointerSize));
LoadP(src1, MemOperand(sp, 2 * kPointerSize)); LoadP(src1, MemOperand(sp, 2 * kSystemPointerSize));
addi(sp, sp, Operand(3 * kPointerSize)); addi(sp, sp, Operand(3 * kSystemPointerSize));
} }
// Pop four registers. Pops rightmost register first (from lower address). // Pop four registers. Pops rightmost register first (from lower address).
void Pop(Register src1, Register src2, Register src3, Register src4) { void Pop(Register src1, Register src2, Register src3, Register src4) {
LoadP(src4, MemOperand(sp, 0)); LoadP(src4, MemOperand(sp, 0));
LoadP(src3, MemOperand(sp, kPointerSize)); LoadP(src3, MemOperand(sp, kSystemPointerSize));
LoadP(src2, MemOperand(sp, 2 * kPointerSize)); LoadP(src2, MemOperand(sp, 2 * kSystemPointerSize));
LoadP(src1, MemOperand(sp, 3 * kPointerSize)); LoadP(src1, MemOperand(sp, 3 * kSystemPointerSize));
addi(sp, sp, Operand(4 * kPointerSize)); addi(sp, sp, Operand(4 * kSystemPointerSize));
} }
// Pop five registers. Pops rightmost register first (from lower address). // Pop five registers. Pops rightmost register first (from lower address).
void Pop(Register src1, Register src2, Register src3, Register src4, void Pop(Register src1, Register src2, Register src3, Register src4,
Register src5) { Register src5) {
LoadP(src5, MemOperand(sp, 0)); LoadP(src5, MemOperand(sp, 0));
LoadP(src4, MemOperand(sp, kPointerSize)); LoadP(src4, MemOperand(sp, kSystemPointerSize));
LoadP(src3, MemOperand(sp, 2 * kPointerSize)); LoadP(src3, MemOperand(sp, 2 * kSystemPointerSize));
LoadP(src2, MemOperand(sp, 3 * kPointerSize)); LoadP(src2, MemOperand(sp, 3 * kSystemPointerSize));
LoadP(src1, MemOperand(sp, 4 * kPointerSize)); LoadP(src1, MemOperand(sp, 4 * kSystemPointerSize));
addi(sp, sp, Operand(5 * kPointerSize)); addi(sp, sp, Operand(5 * kSystemPointerSize));
} }
void SaveRegisters(RegList registers); void SaveRegisters(RegList registers);
...@@ -893,11 +893,11 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler { ...@@ -893,11 +893,11 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
void SmiToPtrArrayOffset(Register dst, Register src) { void SmiToPtrArrayOffset(Register dst, Register src) {
#if defined(V8_COMPRESS_POINTERS) || defined(V8_31BIT_SMIS_ON_64BIT_ARCH) #if defined(V8_COMPRESS_POINTERS) || defined(V8_31BIT_SMIS_ON_64BIT_ARCH)
STATIC_ASSERT(kSmiTag == 0 && kSmiShift < kPointerSizeLog2); STATIC_ASSERT(kSmiTag == 0 && kSmiShift < kSystemPointerSizeLog2);
ShiftLeftImm(dst, src, Operand(kPointerSizeLog2 - kSmiShift)); ShiftLeftImm(dst, src, Operand(kSystemPointerSizeLog2 - kSmiShift));
#else #else
STATIC_ASSERT(kSmiTag == 0 && kSmiShift > kPointerSizeLog2); STATIC_ASSERT(kSmiTag == 0 && kSmiShift > kSystemPointerSizeLog2);
ShiftRightArithImm(dst, src, kSmiShift - kPointerSizeLog2); ShiftRightArithImm(dst, src, kSmiShift - kSystemPointerSizeLog2);
#endif #endif
} }
...@@ -918,7 +918,7 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler { ...@@ -918,7 +918,7 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32); STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32);
#endif #endif
#if V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN #if V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN
#define SmiWordOffset(offset) (offset + kPointerSize / 2) #define SmiWordOffset(offset) (offset + kSystemPointerSize / 2)
#else #else
#define SmiWordOffset(offset) offset #define SmiWordOffset(offset) offset
#endif #endif
......
...@@ -45,10 +45,10 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -45,10 +45,10 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
// Push saved_regs (needed to populate FrameDescription::registers_). // Push saved_regs (needed to populate FrameDescription::registers_).
// Leave gaps for other registers. // Leave gaps for other registers.
__ subi(sp, sp, Operand(kNumberOfRegisters * kPointerSize)); __ subi(sp, sp, Operand(kNumberOfRegisters * kSystemPointerSize));
for (int16_t i = kNumberOfRegisters - 1; i >= 0; i--) { for (int16_t i = kNumberOfRegisters - 1; i >= 0; i--) {
if ((saved_regs & (1 << i)) != 0) { if ((saved_regs & (1 << i)) != 0) {
__ StoreP(ToRegister(i), MemOperand(sp, kPointerSize * i)); __ StoreP(ToRegister(i), MemOperand(sp, kSystemPointerSize * i));
} }
} }
{ {
...@@ -59,7 +59,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -59,7 +59,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
__ StoreP(fp, MemOperand(scratch)); __ StoreP(fp, MemOperand(scratch));
} }
const int kSavedRegistersAreaSize = const int kSavedRegistersAreaSize =
(kNumberOfRegisters * kPointerSize) + kDoubleRegsSize; (kNumberOfRegisters * kSystemPointerSize) + kDoubleRegsSize;
// Get the bailout id is passed as r29 by the caller. // Get the bailout id is passed as r29 by the caller.
__ mr(r5, r29); __ mr(r5, r29);
...@@ -98,8 +98,9 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -98,8 +98,9 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
// Copy core registers into FrameDescription::registers_[kNumRegisters]. // Copy core registers into FrameDescription::registers_[kNumRegisters].
DCHECK_EQ(Register::kNumRegisters, kNumberOfRegisters); DCHECK_EQ(Register::kNumRegisters, kNumberOfRegisters);
for (int i = 0; i < kNumberOfRegisters; i++) { for (int i = 0; i < kNumberOfRegisters; i++) {
int offset = (i * kPointerSize) + FrameDescription::registers_offset(); int offset =
__ LoadP(r5, MemOperand(sp, i * kPointerSize)); (i * kSystemPointerSize) + FrameDescription::registers_offset();
__ LoadP(r5, MemOperand(sp, i * kSystemPointerSize));
__ StoreP(r5, MemOperand(r4, offset)); __ StoreP(r5, MemOperand(r4, offset));
} }
...@@ -109,7 +110,8 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -109,7 +110,8 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
for (int i = 0; i < config->num_allocatable_double_registers(); ++i) { for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
int code = config->GetAllocatableDoubleCode(i); int code = config->GetAllocatableDoubleCode(i);
int dst_offset = code * kDoubleSize + double_regs_offset; int dst_offset = code * kDoubleSize + double_regs_offset;
int src_offset = code * kDoubleSize + kNumberOfRegisters * kPointerSize; int src_offset =
code * kDoubleSize + kNumberOfRegisters * kSystemPointerSize;
__ lfd(d0, MemOperand(sp, src_offset)); __ lfd(d0, MemOperand(sp, src_offset));
__ stfd(d0, MemOperand(r4, dst_offset)); __ stfd(d0, MemOperand(r4, dst_offset));
} }
...@@ -143,7 +145,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -143,7 +145,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
__ bind(&pop_loop); __ bind(&pop_loop);
__ pop(r7); __ pop(r7);
__ StoreP(r7, MemOperand(r6, 0)); __ StoreP(r7, MemOperand(r6, 0));
__ addi(r6, r6, Operand(kPointerSize)); __ addi(r6, r6, Operand(kSystemPointerSize));
__ bind(&pop_loop_header); __ bind(&pop_loop_header);
__ cmp(r5, sp); __ cmp(r5, sp);
__ bne(&pop_loop); __ bne(&pop_loop);
...@@ -167,7 +169,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -167,7 +169,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
// r4 = one past the last FrameDescription**. // r4 = one past the last FrameDescription**.
__ lwz(r4, MemOperand(r3, Deoptimizer::output_count_offset())); __ lwz(r4, MemOperand(r3, Deoptimizer::output_count_offset()));
__ LoadP(r7, MemOperand(r3, Deoptimizer::output_offset())); // r7 is output_. __ LoadP(r7, MemOperand(r3, Deoptimizer::output_offset())); // r7 is output_.
__ ShiftLeftImm(r4, r4, Operand(kPointerSizeLog2)); __ ShiftLeftImm(r4, r4, Operand(kSystemPointerSizeLog2));
__ add(r4, r7, r4); __ add(r4, r7, r4);
__ b(&outer_loop_header); __ b(&outer_loop_header);
...@@ -187,7 +189,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -187,7 +189,7 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
__ cmpi(r6, Operand::Zero()); __ cmpi(r6, Operand::Zero());
__ bne(&inner_push_loop); // test for gt? __ bne(&inner_push_loop); // test for gt?
__ addi(r7, r7, Operand(kPointerSize)); __ addi(r7, r7, Operand(kSystemPointerSize));
__ bind(&outer_loop_header); __ bind(&outer_loop_header);
__ cmp(r7, r4); __ cmp(r7, r4);
__ blt(&outer_push_loop); __ blt(&outer_push_loop);
...@@ -213,7 +215,8 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, ...@@ -213,7 +215,8 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
DCHECK(!(scratch.bit() & restored_regs)); DCHECK(!(scratch.bit() & restored_regs));
__ mr(scratch, r5); __ mr(scratch, r5);
for (int i = kNumberOfRegisters - 1; i >= 0; i--) { for (int i = kNumberOfRegisters - 1; i >= 0; i--) {
int offset = (i * kPointerSize) + FrameDescription::registers_offset(); int offset =
(i * kSystemPointerSize) + FrameDescription::registers_offset();
if ((restored_regs & (1 << i)) != 0) { if ((restored_regs & (1 << i)) != 0) {
__ LoadP(ToRegister(i), MemOperand(scratch, offset)); __ LoadP(ToRegister(i), MemOperand(scratch, offset));
} }
......
...@@ -15,7 +15,7 @@ namespace internal { ...@@ -15,7 +15,7 @@ namespace internal {
class EntryFrameConstants : public AllStatic { class EntryFrameConstants : public AllStatic {
public: public:
static constexpr int kCallerFPOffset = static constexpr int kCallerFPOffset =
-(StandardFrameConstants::kFixedFrameSizeFromFp + kPointerSize); -(StandardFrameConstants::kFixedFrameSizeFromFp + kSystemPointerSize);
}; };
class WasmCompileLazyFrameConstants : public TypedFrameConstants { class WasmCompileLazyFrameConstants : public TypedFrameConstants {
...@@ -27,7 +27,7 @@ class WasmCompileLazyFrameConstants : public TypedFrameConstants { ...@@ -27,7 +27,7 @@ class WasmCompileLazyFrameConstants : public TypedFrameConstants {
static constexpr int kWasmInstanceOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0); static constexpr int kWasmInstanceOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0);
static constexpr int kFixedFrameSizeFromFp = static constexpr int kFixedFrameSizeFromFp =
TypedFrameConstants::kFixedFrameSizeFromFp + TypedFrameConstants::kFixedFrameSizeFromFp +
kNumberOfSavedGpParamRegs * kPointerSize + kNumberOfSavedGpParamRegs * kSystemPointerSize +
kNumberOfSavedFpParamRegs * kDoubleSize; kNumberOfSavedFpParamRegs * kDoubleSize;
}; };
......
...@@ -481,7 +481,7 @@ void PPCDebugger::Debug() { ...@@ -481,7 +481,7 @@ void PPCDebugger::Debug() {
PrintF("FPSCR: %08x\n", sim_->fp_condition_reg_); PrintF("FPSCR: %08x\n", sim_->fp_condition_reg_);
} else if (strcmp(cmd, "stop") == 0) { } else if (strcmp(cmd, "stop") == 0) {
intptr_t value; intptr_t value;
intptr_t stop_pc = sim_->get_pc() - (kInstrSize + kPointerSize); intptr_t stop_pc = sim_->get_pc() - (kInstrSize + kSystemPointerSize);
Instruction* stop_instr = reinterpret_cast<Instruction*>(stop_pc); Instruction* stop_instr = reinterpret_cast<Instruction*>(stop_pc);
Instruction* msg_address = Instruction* msg_address =
reinterpret_cast<Instruction*>(stop_pc + kInstrSize); reinterpret_cast<Instruction*>(stop_pc + kInstrSize);
...@@ -1230,7 +1230,7 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { ...@@ -1230,7 +1230,7 @@ void Simulator::SoftwareInterrupt(Instruction* instr) {
} }
DebugAtNextPC(); DebugAtNextPC();
} else { } else {
set_pc(get_pc() + kInstrSize + kPointerSize); set_pc(get_pc() + kInstrSize + kSystemPointerSize);
} }
} else { } else {
// This is not a valid svc code. // This is not a valid svc code.
......
...@@ -344,7 +344,7 @@ class Simulator : public SimulatorBase { ...@@ -344,7 +344,7 @@ class Simulator : public SimulatorBase {
// Simulator support. // Simulator support.
char* stack_; char* stack_;
static const size_t stack_protection_size_ = 256 * kPointerSize; static const size_t stack_protection_size_ = 256 * kSystemPointerSize;
bool pc_modified_; bool pc_modified_;
int icount_; int icount_;
......
...@@ -235,7 +235,7 @@ void RegExpMacroAssemblerPPC::CheckGreedyLoop(Label* on_equal) { ...@@ -235,7 +235,7 @@ void RegExpMacroAssemblerPPC::CheckGreedyLoop(Label* on_equal) {
__ cmp(current_input_offset(), r3); __ cmp(current_input_offset(), r3);
__ bne(&backtrack_non_equal); __ bne(&backtrack_non_equal);
__ addi(backtrack_stackpointer(), backtrack_stackpointer(), __ addi(backtrack_stackpointer(), backtrack_stackpointer(),
Operand(kPointerSize)); Operand(kSystemPointerSize));
__ bind(&backtrack_non_equal); __ bind(&backtrack_non_equal);
BranchOrBacktrack(eq, on_equal); BranchOrBacktrack(eq, on_equal);
...@@ -687,7 +687,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) { ...@@ -687,7 +687,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) {
__ MultiPush(argument_registers | registers_to_retain); __ MultiPush(argument_registers | registers_to_retain);
// Set frame pointer in space for it if this is not a direct call // Set frame pointer in space for it if this is not a direct call
// from generated code. // from generated code.
__ addi(frame_pointer(), sp, Operand(8 * kPointerSize)); __ addi(frame_pointer(), sp, Operand(8 * kSystemPointerSize));
STATIC_ASSERT(kSuccessfulCaptures == kInputString - kSystemPointerSize); STATIC_ASSERT(kSuccessfulCaptures == kInputString - kSystemPointerSize);
__ li(r3, Operand::Zero()); __ li(r3, Operand::Zero());
...@@ -711,7 +711,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) { ...@@ -711,7 +711,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) {
__ ble(&stack_limit_hit, cr0); __ ble(&stack_limit_hit, cr0);
// Check if there is room for the variable number of registers above // Check if there is room for the variable number of registers above
// the stack limit. // the stack limit.
__ Cmpli(r3, Operand(num_registers_ * kPointerSize), r0); __ Cmpli(r3, Operand(num_registers_ * kSystemPointerSize), r0);
__ bge(&stack_ok); __ bge(&stack_ok);
// Exit with OutOfMemory exception. There is not enough space on the stack // Exit with OutOfMemory exception. There is not enough space on the stack
// for our working registers. // for our working registers.
...@@ -727,7 +727,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) { ...@@ -727,7 +727,7 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) {
__ bind(&stack_ok); __ bind(&stack_ok);
// Allocate space on stack for registers. // Allocate space on stack for registers.
__ Add(sp, sp, -num_registers_ * kPointerSize, r0); __ Add(sp, sp, -num_registers_ * kSystemPointerSize, r0);
// Load string end. // Load string end.
__ LoadP(end_of_input_address(), MemOperand(frame_pointer(), kInputEnd)); __ LoadP(end_of_input_address(), MemOperand(frame_pointer(), kInputEnd));
// Load input start. // Load input start.
...@@ -769,12 +769,13 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) { ...@@ -769,12 +769,13 @@ Handle<HeapObject> RegExpMacroAssemblerPPC::GetCode(Handle<String> source) {
// Fill saved registers with initial value = start offset - 1 // Fill saved registers with initial value = start offset - 1
if (num_saved_registers_ > 8) { if (num_saved_registers_ > 8) {
// One slot beyond address of register 0. // One slot beyond address of register 0.
__ addi(r4, frame_pointer(), Operand(kRegisterZero + kPointerSize)); __ addi(r4, frame_pointer(),
Operand(kRegisterZero + kSystemPointerSize));
__ mov(r5, Operand(num_saved_registers_)); __ mov(r5, Operand(num_saved_registers_));
__ mtctr(r5); __ mtctr(r5);
Label init_loop; Label init_loop;
__ bind(&init_loop); __ bind(&init_loop);
__ StorePU(r3, MemOperand(r4, -kPointerSize)); __ StorePU(r3, MemOperand(r4, -kSystemPointerSize));
__ bdnz(&init_loop); __ bdnz(&init_loop);
} else { } else {
for (int i = 0; i < num_saved_registers_; i++) { for (int i = 0; i < num_saved_registers_; i++) {
...@@ -1103,15 +1104,17 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) { ...@@ -1103,15 +1104,17 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) {
// The following stack manipulation logic is similar to // The following stack manipulation logic is similar to
// PrepareCallCFunction. However, we need an extra slot on the // PrepareCallCFunction. However, we need an extra slot on the
// stack to house the return address parameter. // stack to house the return address parameter.
if (frame_alignment > kPointerSize) { if (frame_alignment > kSystemPointerSize) {
// Make stack end at alignment and make room for stack arguments // Make stack end at alignment and make room for stack arguments
// -- preserving original value of sp. // -- preserving original value of sp.
__ mr(scratch, sp); __ mr(scratch, sp);
__ addi(sp, sp, Operand(-(stack_passed_arguments + 1) * kPointerSize)); __ addi(sp, sp,
Operand(-(stack_passed_arguments + 1) * kSystemPointerSize));
DCHECK(base::bits::IsPowerOfTwo(frame_alignment)); DCHECK(base::bits::IsPowerOfTwo(frame_alignment));
__ ClearRightImm(sp, sp, __ ClearRightImm(sp, sp,
Operand(base::bits::WhichPowerOfTwo(frame_alignment))); Operand(base::bits::WhichPowerOfTwo(frame_alignment)));
__ StoreP(scratch, MemOperand(sp, stack_passed_arguments * kPointerSize)); __ StoreP(scratch,
MemOperand(sp, stack_passed_arguments * kSystemPointerSize));
} else { } else {
// Make room for stack arguments // Make room for stack arguments
stack_space += stack_passed_arguments; stack_space += stack_passed_arguments;
...@@ -1119,14 +1122,14 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) { ...@@ -1119,14 +1122,14 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) {
// Allocate frame with required slots to make ABI work. // Allocate frame with required slots to make ABI work.
__ li(r0, Operand::Zero()); __ li(r0, Operand::Zero());
__ StorePU(r0, MemOperand(sp, -stack_space * kPointerSize)); __ StorePU(r0, MemOperand(sp, -stack_space * kSystemPointerSize));
// RegExp code frame pointer. // RegExp code frame pointer.
__ mr(r5, frame_pointer()); __ mr(r5, frame_pointer());
// Code of self. // Code of self.
__ mov(r4, Operand(masm_->CodeObject())); __ mov(r4, Operand(masm_->CodeObject()));
// r3 will point to the return address, placed by DirectCEntry. // r3 will point to the return address, placed by DirectCEntry.
__ addi(r3, sp, Operand(kStackFrameExtraParamSlot * kPointerSize)); __ addi(r3, sp, Operand(kStackFrameExtraParamSlot * kSystemPointerSize));
ExternalReference stack_guard_check = ExternalReference stack_guard_check =
ExternalReference::re_check_stack_guard_state(isolate()); ExternalReference::re_check_stack_guard_state(isolate());
...@@ -1140,10 +1143,10 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) { ...@@ -1140,10 +1143,10 @@ void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) {
// Restore the stack pointer // Restore the stack pointer
stack_space = kNumRequiredStackFrameSlots + stack_passed_arguments; stack_space = kNumRequiredStackFrameSlots + stack_passed_arguments;
if (frame_alignment > kPointerSize) { if (frame_alignment > kSystemPointerSize) {
__ LoadP(sp, MemOperand(sp, stack_space * kPointerSize)); __ LoadP(sp, MemOperand(sp, stack_space * kSystemPointerSize));
} else { } else {
__ addi(sp, sp, Operand(stack_space * kPointerSize)); __ addi(sp, sp, Operand(stack_space * kSystemPointerSize));
} }
__ mov(code_pointer(), Operand(masm_->CodeObject())); __ mov(code_pointer(), Operand(masm_->CodeObject()));
...@@ -1184,7 +1187,7 @@ MemOperand RegExpMacroAssemblerPPC::register_location(int register_index) { ...@@ -1184,7 +1187,7 @@ MemOperand RegExpMacroAssemblerPPC::register_location(int register_index) {
num_registers_ = register_index + 1; num_registers_ = register_index + 1;
} }
return MemOperand(frame_pointer(), return MemOperand(frame_pointer(),
kRegisterZero - register_index * kPointerSize); kRegisterZero - register_index * kSystemPointerSize);
} }
...@@ -1246,7 +1249,7 @@ void RegExpMacroAssemblerPPC::SafeCallTarget(Label* name) { ...@@ -1246,7 +1249,7 @@ void RegExpMacroAssemblerPPC::SafeCallTarget(Label* name) {
void RegExpMacroAssemblerPPC::Push(Register source) { void RegExpMacroAssemblerPPC::Push(Register source) {
DCHECK(source != backtrack_stackpointer()); DCHECK(source != backtrack_stackpointer());
__ StorePU(source, MemOperand(backtrack_stackpointer(), -kPointerSize)); __ StorePU(source, MemOperand(backtrack_stackpointer(), -kSystemPointerSize));
} }
...@@ -1254,7 +1257,7 @@ void RegExpMacroAssemblerPPC::Pop(Register target) { ...@@ -1254,7 +1257,7 @@ void RegExpMacroAssemblerPPC::Pop(Register target) {
DCHECK(target != backtrack_stackpointer()); DCHECK(target != backtrack_stackpointer());
__ LoadP(target, MemOperand(backtrack_stackpointer())); __ LoadP(target, MemOperand(backtrack_stackpointer()));
__ addi(backtrack_stackpointer(), backtrack_stackpointer(), __ addi(backtrack_stackpointer(), backtrack_stackpointer(),
Operand(kPointerSize)); Operand(kSystemPointerSize));
} }
......
...@@ -91,26 +91,27 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerPPC ...@@ -91,26 +91,27 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerPPC
// Register 25..31. // Register 25..31.
static const int kStoredRegisters = kFramePointer; static const int kStoredRegisters = kFramePointer;
// Return address (stored from link register, read into pc on return). // Return address (stored from link register, read into pc on return).
static const int kReturnAddress = kStoredRegisters + 7 * kPointerSize; static const int kReturnAddress = kStoredRegisters + 7 * kSystemPointerSize;
static const int kCallerFrame = kReturnAddress + kPointerSize; static const int kCallerFrame = kReturnAddress + kSystemPointerSize;
// Stack parameters placed by caller. // Stack parameters placed by caller.
static const int kIsolate = static const int kIsolate =
kCallerFrame + kStackFrameExtraParamSlot * kPointerSize; kCallerFrame + kStackFrameExtraParamSlot * kSystemPointerSize;
// Below the frame pointer. // Below the frame pointer.
// Register parameters stored by setup code. // Register parameters stored by setup code.
static const int kDirectCall = kFramePointer - kPointerSize; static const int kDirectCall = kFramePointer - kSystemPointerSize;
static const int kStackHighEnd = kDirectCall - kPointerSize; static const int kStackHighEnd = kDirectCall - kSystemPointerSize;
static const int kNumOutputRegisters = kStackHighEnd - kPointerSize; static const int kNumOutputRegisters = kStackHighEnd - kSystemPointerSize;
static const int kRegisterOutput = kNumOutputRegisters - kPointerSize; static const int kRegisterOutput = kNumOutputRegisters - kSystemPointerSize;
static const int kInputEnd = kRegisterOutput - kPointerSize; static const int kInputEnd = kRegisterOutput - kSystemPointerSize;
static const int kInputStart = kInputEnd - kPointerSize; static const int kInputStart = kInputEnd - kSystemPointerSize;
static const int kStartIndex = kInputStart - kPointerSize; static const int kStartIndex = kInputStart - kSystemPointerSize;
static const int kInputString = kStartIndex - kPointerSize; static const int kInputString = kStartIndex - kSystemPointerSize;
// When adding local variables remember to push space for them in // When adding local variables remember to push space for them in
// the frame in GetCode. // the frame in GetCode.
static const int kSuccessfulCaptures = kInputString - kPointerSize; static const int kSuccessfulCaptures = kInputString - kSystemPointerSize;
static const int kStringStartMinusOne = kSuccessfulCaptures - kPointerSize; static const int kStringStartMinusOne =
kSuccessfulCaptures - kSystemPointerSize;
static const int kBacktrackCount = kStringStartMinusOne - kSystemPointerSize; static const int kBacktrackCount = kStringStartMinusOne - kSystemPointerSize;
// First register address. Following registers are below it on the stack. // First register address. Following registers are below it on the stack.
static const int kRegisterZero = kBacktrackCount - kSystemPointerSize; static const int kRegisterZero = kBacktrackCount - kSystemPointerSize;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment