Skip to content

Commit

Permalink
PPC/s390: Reland "Reland: [builtins] Move non-JS linkage builtins cod…
Browse files Browse the repository at this point in the history
…e objects into RO_SPACE"

Port 352bbb1

Original Commit Message:

    This is a reland of 855591a

    Fixes break in builds that verify ReadOnlyHeap by relaxing the requirement for
    Code objects to be in CODE_SPACE in PagedSpaceObjectIterator::FromCurrentPage.

    Original change's description:
    > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE
    >
    > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358.
    >
    > [builtins] Move non-JS linkage builtins code objects into RO_SPACE
    >
    > Creates an allow-list of builtins that can still go in code_space
    > including all TFJ builtins and a small manual list that should be pared
    > down in the future.
    >
    > For builtins that go in RO_SPACE a Code object is created that contains an
    > immediate trap instruction. Generally these Code objects are still no
    > smaller than CODE_SPACE Code objects because of the Code object alignment
    > requirements. This will hopefully be addressed in a follow-up CL either by
    > relaxing them or removing the instruction stream completely.
    >
    > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and
    > increases by the same amount.
    >
    > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336
    > Commit-Queue: Dan Elphick <[email protected]>
    > Reviewed-by: Jakob Gruber <[email protected]>
    > Reviewed-by: Ulan Degenbaev <[email protected]>
    > Cr-Commit-Position: refs/heads/master@{#64700}

[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N

Change-Id: If150434119828a87e295b0639c934392812bb345
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1896904
Reviewed-by: Milad Farazmand <[email protected]>
Reviewed-by: Dan Elphick <[email protected]>
Commit-Queue: Milad Farazmand <[email protected]>
Cr-Commit-Position: refs/heads/master@{#64741}
  • Loading branch information
Milad Farazmand authored and Commit Bot committed Nov 4, 2019
1 parent fbbf602 commit 29112b4
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/codegen/ppc/macro-assembler-ppc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ void TurboAssembler::Call(Handle<Code> code, RelocInfo::Mode rmode,
bind(&skip);
return;
}
DCHECK(code->IsExecutable());
Call(code.address(), rmode, cond);
}

Expand Down Expand Up @@ -3044,6 +3045,8 @@ void TurboAssembler::ZeroExtWord32(Register dst, Register src) {
clrldi(dst, src, Operand(32));
}

void TurboAssembler::Trap() { stop(); }

} // namespace internal
} // namespace v8

Expand Down
2 changes: 2 additions & 0 deletions src/codegen/ppc/macro-assembler-ppc.h
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
void MovFromFloatParameter(DoubleRegister dst);
void MovFromFloatResult(DoubleRegister dst);

void Trap() override;

// Calls Abort(msg) if the condition cond is not satisfied.
// Use --debug_code to enable.
void Assert(Condition cond, AbortReason reason, CRegister cr = cr7);
Expand Down
3 changes: 3 additions & 0 deletions src/codegen/s390/macro-assembler-s390.cc
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ void TurboAssembler::Call(Handle<Code> code, RelocInfo::Mode rmode,
Call(ip);
return;
}
DCHECK(code->IsExecutable());
call(code, rmode);
}

Expand Down Expand Up @@ -4398,6 +4399,8 @@ void TurboAssembler::CallForDeoptimization(Address target, int deopt_id) {
Call(target, RelocInfo::RUNTIME_ENTRY);
}

void TurboAssembler::Trap() { stop(); }

} // namespace internal
} // namespace v8

Expand Down
2 changes: 2 additions & 0 deletions src/codegen/s390/macro-assembler-s390.h
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
void MovFromFloatParameter(DoubleRegister dst);
void MovFromFloatResult(DoubleRegister dst);

void Trap() override;

// Emit code for a truncating division by a constant. The dividend register is
// unchanged and ip gets clobbered. Dividend and result must be different.
void TruncateDoubleToI(Isolate* isolate, Zone* zone, Register result,
Expand Down

0 comments on commit 29112b4

Please sign in to comment.