-
-
Notifications
You must be signed in to change notification settings - Fork 34.2k
Backport V8 fixes for WASM on ARM64 #39337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original commit message:
Reland "[liftoff][arm64] Use 64 bit offset reg in mem op"
This is a reland of f645d0b857bc669271adcbe95cf25e1554347dd4
The issue was that converting an i64 to an i32 didn't clear the upper
bits on arm64. This was not necessary before because we did the zero
extension as part of the load operand, but this is required now that
we use the full register.
Original change's description:
> [liftoff][arm64] Use 64 bit offset reg in mem op
>
> Accessing the Wasm memory with a 64 bit offset was truncated to 32 bit,
> which is fine if we check bounds first, but not if we rely on the
> trap handler to catch the OOB.
>
> [email protected]
>
> Bug: v8:11587
> Change-Id: I82a3a2906e55d9d640c30e770a5c93532e3a442c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2808942
> Reviewed-by: Clemens Backes <[email protected]>
> Commit-Queue: Thibaud Michaud <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#73829}
Bug: v8:11587
Change-Id: Ibc182475745c6f697a0ba6d75c260b74ddf8fe52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810846
Reviewed-by: Clemens Backes <[email protected]>
Commit-Queue: Thibaud Michaud <[email protected]>
Cr-Commit-Position: refs/heads/master@{#73853}
Refs: v8/v8@cb4faa9
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: nodejs#39327
Collaborator
mcollina
approved these changes
Jul 10, 2021
Member
mcollina
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Member
Author
|
It breaks on IBM platforms. We'll need to find the corresponding change for them |
Member
Author
|
@nodejs/platform-aix @nodejs/platform-ppc |
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
Member
Author
|
I think I found the missing commits |
Collaborator
Collaborator
jasnell
approved these changes
Jul 10, 2021
Collaborator
Collaborator
Collaborator
Member
Author
|
Landed in dbe564f...de85b1e |
targos
added a commit
that referenced
this pull request
Jul 12, 2021
Original commit message:
Reland "[liftoff][arm64] Use 64 bit offset reg in mem op"
This is a reland of f645d0b857bc669271adcbe95cf25e1554347dd4
The issue was that converting an i64 to an i32 didn't clear the upper
bits on arm64. This was not necessary before because we did the zero
extension as part of the load operand, but this is required now that
we use the full register.
Original change's description:
> [liftoff][arm64] Use 64 bit offset reg in mem op
>
> Accessing the Wasm memory with a 64 bit offset was truncated to 32 bit,
> which is fine if we check bounds first, but not if we rely on the
> trap handler to catch the OOB.
>
> [email protected]
>
> Bug: v8:11587
> Change-Id: I82a3a2906e55d9d640c30e770a5c93532e3a442c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2808942
> Reviewed-by: Clemens Backes <[email protected]>
> Commit-Queue: Thibaud Michaud <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#73829}
Bug: v8:11587
Change-Id: Ibc182475745c6f697a0ba6d75c260b74ddf8fe52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810846
Reviewed-by: Clemens Backes <[email protected]>
Commit-Queue: Thibaud Michaud <[email protected]>
Cr-Commit-Position: refs/heads/master@{#73853}
Refs: v8/v8@cb4faa9
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 12, 2021
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 12, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 12, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: #39327
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
to targos/node
that referenced
this pull request
Jul 20, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
to targos/node
that referenced
this pull request
Jul 20, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: nodejs#39327
PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
to targos/node
that referenced
this pull request
Jul 20, 2021
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
to targos/node
that referenced
this pull request
Jul 20, 2021
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
to targos/node
that referenced
this pull request
Jul 20, 2021
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: #39327
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos
added a commit
that referenced
this pull request
Jul 26, 2021
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Merged
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: #39327
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
richardlau
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: #39327
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[liftoff] Handle constant memory indexes specially
This adds detection for constant memory indexes which can statically be
proven to be in-bounds (because the effective offset is within the
minimum memory size). In these cases, we can skip the bounds check and
the out-of-line code for the trap-handler.
This often saves 1-2% of code size.
[email protected]
Bug: v8:11802
Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
Commit-Queue: Clemens Backes <[email protected]>
Reviewed-by: Andreas Haas <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74825}
Refs: v8/v8@53784bd
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][liftoff] Always zero-extend 32 bit offsets
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected]
[email protected]
Bug: v8:11809
Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
Commit-Queue: Thibaud Michaud <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74881}
Refs: v8/v8@2b77ca2
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[wasm][arm64] Always zero-extend 32 bit offsets, for realz
We've already been zero-extending 32-bit offset registers since
https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
but that patch only covered the case where offset_imm == 0.
When there is a non-zero offset, we need the same fix.
Bug: chromium:1224882,v8:11809
Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
Commit-Queue: Jakob Kummerow <[email protected]>
Reviewed-by: Clemens Backes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#75500}
Refs: v8/v8@56fe020
Fixes: #39327
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Original Commit Message:
The upper 32 bits of the 64 bit offset register are not guaranteed to be
cleared, so a zero-extension is needed. We already do the zero-extension
in the case of explicit bounds checking, but this should also be done if
the trap handler is enabled.
[email protected], [email protected], [email protected], [email protected]
BUG=
LOG=N
Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
Reviewed-by: Junliang Yan <[email protected]>
Commit-Queue: Milad Fa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74886}
Refs: v8/v8@3805a69
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[riscv64] Fix build failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
Auto-Submit: Yahan Lu <[email protected]>
Commit-Queue: Brice Dobry <[email protected]>
Reviewed-by: Brice Dobry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74937}
Refs: v8/v8@359d44d
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
BethGriggs
pushed a commit
that referenced
this pull request
Jul 29, 2021
Original commit message:
[mips][wasm][liftoff] Fix compile failed
Port 2b77ca200c56667c68895e49c96c10ff77834f09
Bug: v8:11809
Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
Reviewed-by: Zhao Jiazhong <[email protected]>
Commit-Queue: Zhao Jiazhong <[email protected]>
Auto-Submit: Liu yu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#74934}
Refs: v8/v8@5c76da8
PR-URL: #39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #39327