100 Commits
Author SHA1 Message Date
Zhao Jiazhong 8b4dc9f062 [loong64][mips64] Drop unnecessary MacroAssembler::kCountIncludesReceiver
Port commit 492a1d8e2a

Change-Id: Ie34ec734bb921e8c6f7bc5252fe1f47475d80b2c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5606549
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#94371}
2024-06-11 12:42:52 +00:00
Zhao Jiazhong 1d15d50b84 [loong64][mips64][api] Mark v8::PropertyCallbackInfo::Holder() for deprecation
Port commit ac2230aacf

Change-Id: Ia37b5d92700260ad19b6471e5653b2b107ea64e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5606545
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#94305}
2024-06-07 08:46:49 +00:00
Zhao Jiazhong 78e40de874 [loong64][mips64][heap/cppgc] Disable guard pages
Page size is normally 16k on loongarch64 and mips64 platforms, which
doesn't work well with cppgc's guard pages.
So disable guard pages on loongarch64 and mips64.

Change-Id: Iae4af9c21b261b27156fed52b771f04ea3547661
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5606546
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94304}
2024-06-07 08:19:34 +00:00
Zhao Jiazhong 554e6a9527 [loong64][mips64][wasm] Fix liftoff setup frame constants
Currently some register spill offset constants of liftoff setup
frames on loong64 and mips64 don't correspond to reality, caused
some flaky tests like 'memory64/memory_copy' of wasm-spec-tests.

Change-Id: I4f3642d797ff726970a8f2b1947718220266d56a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5599993
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94283}
2024-06-06 09:47:58 +00:00
Zhao Jiazhong 51954a09e5 [mips64][builtins] Cleanup side-effects checks for Api functions
Port commit 1c68c992a6

Change-Id: Ifcd32c69d3c51271e34bb3e24386472dc7ff53e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5596209
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94249}
2024-06-05 00:59:21 +00:00
Zhao Jiazhong 20ce461b99 [loong64][mips64][builtins] Replace v8::FunctionCallbackInfo::data field with target
Port commit eb0bb2596a

Change-Id: I15bbff5380e14f66493ec6714dbc283d816b0418
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5595381
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#94248}
2024-06-05 00:58:10 +00:00
Zhao Jiazhong 36a10ca2d5 [loong64][mips64] Untag the length field in construct frames
Port commit 925b3ff47e

Change-Id: Id5fb42e4fe92700cc14545e22089d51770437109
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5595382
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94231}
2024-06-04 12:01:52 +00:00
Zhao Jiazhong 6a7ca9b80a [loong64][mips64] Use framesize + max outgoing args to check stack limits
Port commit 8f7698c838

Change-Id: Iceaa174ac1a21d1cbe6b2b0ac809f04e19b2e3eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5595380
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94222}
2024-06-04 08:46:47 +00:00
Zhao Jiazhong 05a2aa27b0 [loong64][mips64][turboshaft] Port InstructionSelector part4
Implement more turboshaft isel to make sure the tests pass.

Change-Id: I42f3cc23eb385a18cb7479509930a8ed26ad1aa2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5578976
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94145}
2024-05-29 08:11:48 +00:00
Zhao Jiazhong 4832756c18 [loong64][mips64] Skip turboshaft-maglev-frontend test
Maglev is not supported by loong64 and mips64 port yet.

Change-Id: If35c06b71a4b4158333d2fc1572445fd7b508d09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5554076
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94023}
2024-05-22 09:45:00 +00:00
Zhao Jiazhong 58a82800c6 [loong64][mips64][deoptimizer][wasm] Support Simd128 values
Port commit 566f734f40

- loong64 port doesn't support simd yet
- mips64 port needs to support machines that don't support simd

Change-Id: I18aa5f7e63b770f3d7255dbbbf547fa4a6956f93
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5546819
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93958}
2024-05-17 08:26:26 +00:00
Zhao Jiazhong 3c66d7e555 [loong64][mips64][risv64] Don't clear i32 high word for sandbox
Don't need to clear the upper halves of i32 values for sandbox reason
on LoongArch64, MIPS64 and riscv64 platform, because we'll explicitly
zero-extend their lower halves before using them for memory accesses.

Change-Id: Ifa899e0386ca506bfc3df1347ddb7fdf6bc2096b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5524820
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#93842}
2024-05-13 02:40:05 +00:00
Zhao Jiazhong 364b8e58c3 [loong64][compiler] Remove redundant parameter of AssembleArchConditionalBoolean
The wrong definition with redundant parameter caused build issue on loong64.

Change-Id: I76ea3f562b06800a8e4cb5cf11f320c1ec8bd3fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5515502
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93749}
2024-05-07 07:20:18 +00:00
Zhao Jiazhong 9632b0dcc6 [loong64][mips64][fastapi] Set context for fast api calls
Port commit 87b5f43534

Change-Id: I85e768c24a4d5b8e6c7ee0e6ddbf7aa2b619fdc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5515503
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93726}
2024-05-06 11:03:40 +00:00
Zhao Jiazhong a82a7d1f33 [mips64] Fix an undefined behavior
Negation of 'INT64_MIN' cannot be represented in type 'int64_t'.

Change-Id: Ic1574a4c590841661e6606db44e6750eb3531b18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5490889
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93628}
2024-04-29 10:09:37 +00:00
Zhao Jiazhong 074b360f4b [loong64][mips64][codegen] Introduce MemoryRepresentation::kProtectedPointer
Port commit a9083da44e

Change-Id: Id99188c41db9d28a9c9a2f7fcf79579bbf45949e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5457172
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93601}
2024-04-26 09:18:51 +00:00
Zhao Jiazhong 107a202c06 [loong64][mips64][fastcall] Allow reentrance to JavaScript
Port commit 5cc77a667d

Change-Id: I7966dc8a1b65aacdfc8f9adbf2a967cfd2125335
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5467486
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93488}
2024-04-22 10:03:29 +00:00
Zhao Jiazhong e41d954585 [loong64][mips64][fastcall] Support throwing exceptions
Port commit e7c147b65c

Change-Id: I830e2e237bc8ad36efaf09db4c9a59ea7ae42119
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5457171
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93381}
2024-04-16 08:04:33 +00:00
Zhao Jiazhong 71f1eca529 Reland "[loong64] Add .size for PushAllRegistersAndIterateStack"
This is a reland of commit 3067d6b678

The ported CL is relanded, and no needs to modify this change.

Original change's description:
> [loong64] Add .size for PushAllRegistersAndIterateStack
>
> Port commit ba8e2cee26
>
> Change-Id: Id10c58ec2f65501e498e71220bd6e843a59b0f39
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5446607
> Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Commit-Queue: Anton Bikineev <bikineev@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#93321}

Change-Id: I39cd5b00f64bc09c9af1a9b11f5c181866dc12c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5452611
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93356}
2024-04-15 08:45:48 +00:00
Zhao Jiazhong b862bac719 Revert "[loong64] Add .size for PushAllRegistersAndIterateStack"
This reverts commit 3067d6b678.

Reason for revert: The ported CL is reverted.

Original change's description:
> [loong64] Add .size for PushAllRegistersAndIterateStack
>
> Port commit ba8e2cee26
>
> Change-Id: Id10c58ec2f65501e498e71220bd6e843a59b0f39
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5446607
> Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Commit-Queue: Anton Bikineev <bikineev@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#93321}

Change-Id: If3a18d3561210edf27dfeb757df90c0a419cd4bc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5446611
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93334}
2024-04-12 09:22:07 +00:00
Zhao Jiazhong 077a814a1d [loong64][mips64][turboshaft] Fix more issues in Turboshaft's builtin pipeline
Port commit aa116324c5

Change-Id: I80291bc6fdb5f3abba899f885c88bc9aae1faa1b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5431775
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93329}
2024-04-12 01:29:42 +00:00
Zhao Jiazhong 3067d6b678 [loong64] Add .size for PushAllRegistersAndIterateStack
Port commit ba8e2cee26

Change-Id: Id10c58ec2f65501e498e71220bd6e843a59b0f39
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5446607
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93321}
2024-04-11 13:17:17 +00:00
Zhao Jiazhong 9c71fe9576 [loong64][wasm] Fix no-sandbox ptr-compr
Port commit 63b57b518a

Change-Id: I08e449c7eacda7ab0da1d0c8aeb3f8df56c31d1a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5446527
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93320}
2024-04-11 12:51:14 +00:00
Zhao Jiazhong 7fd98f16f3 [loong64][mips64][wasm] Call on-heap import wrappers via a trampoline
Port commit f18d6b0452

Change-Id: I289bc3274f18e447fe1a1aa1c9948ea9e9da4ebc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5437897
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93250}
2024-04-09 08:24:04 +00:00
Zhao Jiazhong 5914658d63 [loong64][mips64][turboshaft] Fix TruncateInt64ToInt32 implementation
The type of kWord64ShiftRightArithmetic's rhs is not int64.

Change-Id: If2db921be1dd8f7bcfc6e11c24792e4b03fe3a62
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5431774
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93214}
2024-04-08 08:02:23 +00:00
Zhao Jiazhong fc0a2e1e5c [loong64][mips64][interpreter] Microoptimise for-in bytecodes
Port commit da2d5c2952

Change-Id: I82a1f92567f3970ee6f0249d0f70ac6c90821700
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5382068
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93044}
2024-03-26 14:26:26 +00:00
Zhao Jiazhong 04bd1e5e1f [loong64][mips64][turboshaft] Port ISEL unittests part 2
Port commit e34579cf35

Change-Id: Ifc324d864602ddb28ec23dabb60f52ebee059a6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5391165
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#93018}
2024-03-26 00:56:39 +00:00
Zhao Jiazhong adc7a7c47d [mips64][compiler] Port some changes about fast C calls
Port commit e50ab13bbf

Change-Id: I7993fc5a0ea7f4cc9724499ff0094f23d8ede315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5368869
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92933}
2024-03-21 10:03:26 +00:00
Zhao Jiazhong 963852c784 [mips64][turboshaft] Port InstructionSelector part 3
Add support for a bunch of comparisons.

Change-Id: Ib19d7d27291ead59885e4d14ee88332aaca9f2ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5371821
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92822}
2024-03-14 09:07:15 +00:00
Zhao Jiazhong f41ff4c714 [loong64][mips64][wasm] Move WasmApiFunctionRef to trusted space
Port commit 897e1a3bbf

Change-Id: I108e28495a29a5e97c0c9dc108fc7c543ce335c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5369096
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92804}
2024-03-13 09:47:17 +00:00
Zhao Jiazhong c9f774573f [loong64][sandbox] Tag entries in the TrustedPointerTable
Port commit c68f02dc2e

Change-Id: I5a26d985d8f082c06d74681be096d4f80a5ca435
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5369530
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Samuel Groß <saelo@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92796}
2024-03-13 08:14:39 +00:00
Zhao Jiazhong 56d3afb480 [loong64][mips64] Handle unordered floating-point comparison conditions.
Add some unordered floating-point comparisons support, and fix previous
implementation when comparison predicate is false, which also didn't
take unordered operands into consideration.

Change-Id: I57414d9836f01d0383959f84c8e2fd9017bbe7b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5359019
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92756}
2024-03-11 16:57:26 +00:00
Zhao Jiazhong 3767585388 [loong64][mips64] Remove a UNREACHABLE statement in WordCompareZero
The turboshaft isel of loong64 and mips64 is not finished, and may
go into the UNREACHABLE statement now.

So temporarily remove the statement in case program aborts.

Change-Id: Idd265955bffcfaf682a4acf6475836ba1d2c426f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5355026
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92725}
2024-03-08 08:25:46 +00:00
Zhao Jiazhong e50ab13bbf [loong64][compiler] Port recent changes about fast C calls
Port commit e19a4024f6
- Always emit safepoint for fast C calls

Port commit dab24c4009
- Add fake handles slots to safepoint table

Port commit 1da38a4017
- Do not use SetIsolateDataSlots::kYes in CEntry

Port commit dd8d0b44d5
- Support stack iteration from fast C calls

Change-Id: I882a56e3d04c1098e56b61ab6d67b86550c07d83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5329692
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92596}
2024-02-29 03:38:59 +00:00
Zhao Jiazhong faa66682fb [loong64][mips64][sandbox] Refactor Code::source_position_table
Port commit 13f886c703

Change-Id: Iab78208ebeb90dcea3c1088ec8970c920b8a8796
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5329693
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92583}
2024-02-28 12:42:52 +00:00
Zhao Jiazhong 104036a289 [loong64][mips64][sandbox] First step towards fine-grained entrypoint tags for builtins
Port commit 25df12c34d

Also port commit 3fdb4d596b
- Use kInvalidEntrypointTag for some internal ASM builtin

Change-Id: Ie436cb9c4b3d45329377bad3cdfc08be2c6b5056
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5307474
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92575}
2024-02-28 10:38:19 +00:00
Zhao Jiazhong ae09969028 [loong64][mips64][turboshaft] Re-enable maglev-to-ts
Port commit fdd67fafa1

Change-Id: Ib2ad307e94de5a0c6bbace139bf8b98a75a7f96c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5329695
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92574}
2024-02-28 10:17:57 +00:00
Zhao Jiazhong 218de0f340 [loong64][sandbox] Port some sandbox patches to loong64 part2
Port commit 2311eb0e56
- Make DeoptimizationData a trusted object

Port commit 098127338d
- Turn Code::deopt_data_or_interpreter_data into a trusted pointer

Port commit 606956c91c
- Use protected ptr for Code::deopt_data_or_interpreter_data

Port commit f75673f4a9
- Use protected pointers in InterpreterData

Port commit 0b518174b2
- Fix handling of InterpreterData in InterpreterEnterAtBytecode

Change-Id: Ie19ba0b52d215b4e2da8191f5aaf4e02f027cacb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5307435
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92400}
2024-02-19 11:50:18 +00:00
Zhao Jiazhong 9d9854f134 [loong64][mips64][liftoff] Use WasmDispatchTable for indirect calls
Port commit e8513f4439

Change-Id: Id866b288437d647d1dd9b8c77aab66a14f856878
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5307434
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92398}
2024-02-19 11:30:46 +00:00
Zhao Jiazhong a1c30e47d0 [loong64][mips64][heap] Check that we do not allocate in fast c calls
Port commit 391a474d7b

Change-Id: I42b3e11a26ec9493be2c0000dfc95cfccd485c78
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5269513
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92230}
2024-02-07 14:29:18 +00:00
Zhao Jiazhong a04b0c422b [loong64][sandbox] Port some sandbox patches to loong64
Port commit 9fb9240759
- Reference Code from InstructionStream via a code pointer

Port commit 8cd1e89fae
- Move runtime-generated Code objects out of the sandbox

Port commit 69a0ef2ddd
- Use a protected pointer to reference Code from IStream

Change-Id: Iff71e1d1abc16ec89e92045f2bd2146534497678
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5269514
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92211}
2024-02-06 09:13:58 +00:00
Zhao Jiazhong 8b5165522e [loong64][mips64] Skip turboshaft-maglev-frontend
Maglev is not supported on loong64 and mips64 port yet.

Change-Id: Ia090b0ca05ac26f7c5142ab2438cea2147e9f0fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5252414
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#92210}
2024-02-06 08:09:35 +00:00
Zhao Jiazhong 1336b3a085 [loong64][mips64][heap] Prepare splitting of MemoryChunk Metadata and Header
Port commit 165268cc8d

Change-Id: If5ad49c8022ac26d30c284251a21e409b90d711c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5239390
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92060}
2024-01-29 12:57:24 +00:00
Zhao Jiazhong c878c68160 [loong64][mips64][tagged-ptr] Make HeapNumber & BigInt layout classes
Port commit 784eb5e6ff

Change-Id: I06428b1d710f68fe4d72846aa80895128dd1222c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5239389
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92054}
2024-01-29 11:05:53 +00:00
Zhao Jiazhong 93b1d15b62 [loong64][turboshaft] Port Simd128ReverseBytes
Port commit 37d2127aa9

Change-Id: I0a6c28af075fbf0bf0f5d0a82fab61aac8fc88a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5239391
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#92049}
2024-01-29 08:42:05 +00:00
Zhao Jiazhong dafd53f40b [loong64][mips64][sandbox] Port two recent changes
Port commit 8cf17a14a7
[sandbox] Reference Code from FeedbackVector via code pointer

Port commit 4fa7784b10
[sandbox] Reference Code from OSR feedback vector slots via its wrapper

Change-Id: Id959869e8cec468f711218096aec7fe8dd25822c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5179778
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91915}
2024-01-19 01:30:30 +00:00
Zhao Jiazhong fc91c4ee28 [loong64][mips64] Use typed enum for arch-specific Condition
This is required by maglev.

Change-Id: I194c14e47ee5c267b7707b37d02a485e769005cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5198596
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91851}
2024-01-16 07:16:35 +00:00
Zhao Jiazhong 373edce772 [loong64][mips64][wasm][liftoff] Optimize in-bounds atomic operations
Port commit 6fece1bf29

Change-Id: I7d8cd5441b5e5cb11b21341d35a4010581a3e6f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5197388
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91835}
2024-01-15 09:50:45 +00:00
Zhao Jiazhong 96582b077e [loong64][mips64][wasm-gc][liftoff] Use trapping null
Port commit 58b43c4a74

Change-Id: Ic3b2658a9b0875d9a5deea5716eb98ce39f4d7e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5190790
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91832}
2024-01-15 08:28:54 +00:00
Zhao Jiazhong 5a36ecf358 [loong64][codegen] Load trusted pointer table via root register
Port commit 3bd78de20b

Change-Id: I9c50e32cb4562b9e76ea7f362fd01c10167cecaa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5192049
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91805}
2024-01-12 11:24:47 +00:00
Zhao Jiazhong c95bcad353 [loong64][mips64][wasm] Introduce WasmTrustedInstanceData
Port commit 59acab802a

Change-Id: I7d5a8c610a950d0f9342c39a520bcf91eb222229
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5179772
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91729}
2024-01-09 09:34:12 +00:00
Zhao Jiazhong 3664f8217c [loong64][mips64][builtins] Track topmost script-having execution context
Port commit 32548386ef

Change-Id: I8f479367ac57023c11a63787a31ba78a77764e17
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5144208
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91626}
2023-12-21 19:44:29 +00:00
Zhao Jiazhong 08f55d8b22 [loong64][mips64] Restrict bit_cast
Port commit ee5adf6f7a

Change-Id: I6d04e6e5b8a0e4c6886b613ced10cb2c888f6a66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5125371
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91594}
2023-12-19 14:27:17 +00:00
Zhao Jiazhong ae7de90b0c [loong64][mips64][turboshaft] Add missing pieces to Turboshaft CSA pipeline
Port commit 235d5bd74c

Change-Id: I7915795e37af8451bea06072490e5b9f6a4d0c24
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5125581
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91566}
2023-12-18 09:58:10 +00:00
Zhao JiazhongandLiu Yu b0ae8877e5 [loong64][sandbox] Support code pointer sandbox
Co-authored-by: Liu Yu <liuyu@loongson.cn>
Change-Id: I6c4eadc66e79c91e3d72a117fc2b31e0052c7652
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5118872
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91539}
2023-12-15 09:07:16 +00:00
Zhao Jiazhong f2e4d5caa2 [loong64][turboshaft] Port InstructionSelector part 3
Add support for a bunch of comparisons.

Bug: v8:12783
Change-Id: I17bc0855698b37a6369fde8d6a11aa794785afe1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5118870
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91516}
2023-12-14 13:38:05 +00:00
Zhao Jiazhong 7cd9554949 [loong64][mips64][turboshaft] Port InstructionSelector part 2
This CL adds some bitwise and shift operations support.

Fix the 'mjsunit/wasm/turboshaft/instruction-selection' test for now.

Bug: v8:12783
Change-Id: Ia5859cc34594dc256ad1453b07ce2fa4abec20ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5103128
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91427}
2023-12-08 09:52:15 +00:00
Zhao Jiazhong e002e0119f [loong64][mips64][wasm][jspi] Run JS imports on the central stack
Port commit 9b1e5f0eac

Besides remove useless code in isel for 'SetStackPointer' which is
introduced when port JS central stack switch.

Change-Id: Icd38ca3e31228540443c5c6c9668fd9986e75c6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5096339
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91412}
2023-12-07 12:15:57 +00:00
Zhao Jiazhong 059f6763d0 [loong64][mips64][builtins][csa] Use CallBuiltin/TailCallBuiltin where possible, pt.6
Port commit 8de6dcc377

Change-Id: I9cb2cbf6a38129be3ed506ac1856e886dddb892b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5095536
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91404}
2023-12-07 10:29:00 +00:00
Zhao Jiazhong dd97dd1b1f [loong64][mips64][builtins] Use CallBuiltin/TailCallBuiltin where possible, pt.2
Port commit 85fddc8861

Change-Id: I86e2059147343ceaec6d2eb026b3fa283a59be44
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5086409
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91352}
2023-12-05 13:45:56 +00:00
Zhao Jiazhong 5788630379 [loong64][mips64] Fix build issue caused by recent changes
Port commit a34be67351
- [exceptions] cleanup after unifying pending/scheduled exceptions

Port commit 063210c08c
- [builtins][masm] Use CallBuiltin/TailCallBuiltin where possible

Change-Id: I9e5f12e5778e406c4f4411f8fbcd8ce78ed02166
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5078536
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91334}
2023-12-04 20:00:39 +00:00
Zhao Jiazhong 7042e907a7 [loong64][mips64][exceptions] Unify pending and scheduled exceptions
Port commit 12203e0c46

Change-Id: Iae1d457e713801229f25aea1220dafc074694474
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5075561
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91303}
2023-12-01 16:25:05 +00:00
Zhao Jiazhong 3e42642b37 [loong64][mips64][jspi] Port JS central stack switch
Port commit b158ad40dc

Does't implement js central stack switch yet, but fix a build issue
caused by that on loong64 and mips64 platforms.

Change-Id: I84c45a07d4d74789d925c3c2f9ecc68c1359bd1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5055983
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91292}
2023-12-01 08:33:33 +00:00
Zhao Jiazhong ad0263ab46 [mips64][turboshaft] Port InstructionSelector part 1
Currently just make wasm/turboshaft/instruction-selection pass on mips64.

Bug: v8:12783
Change-Id: If9de0d6c4bae14b9be896b1eb2a42b047d400957
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5069014
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#91236}
2023-11-29 10:22:26 +00:00
Zhao Jiazhong 56d0d218f1 [loong64][turboshaft] Port InstructionSelector part 1
Currently just make wasm/turboshaft/instruction-selection pass on loong64.

Besides fix mips64 arch name typo in test/mjsunit/mjsunit.status.

Bug: v8:12783
Change-Id: I630f42b08e617f599a2547c80724c3a37db4ed5a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5055984
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91175}
2023-11-27 08:36:28 +00:00
Zhao Jiazhong 53d774d524 [loong64][mips64][wasm] Pass arguments directly to memory.init
Port commit 852a76c0b3
Port commit 200df6f6bf

Bug: v8:14357
Change-Id: I32834ec60b365792d620dfba344072c3e827fd7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5047875
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91075}
2023-11-21 12:25:18 +00:00
Zhao Jiazhong 8c22b42267 [loong64][mips64] Reland^5 "[wasm][x64] Run JS imports on the central stack"
Port commit aef80d12d4

Change-Id: I834dd30f01de6a19b2873408791153158e2cccbe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5039870
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91037}
2023-11-17 16:20:13 +00:00
Zhao Jiazhong ba7bbec5aa [loong64][mips64][compiler] Generalize InstructionSelectorT for Turboshaft (part 19)
Port commit c89fb79845

Bug: v8:12783
Change-Id: Ic52cc6b5685ec6dc4eaa3e85668d2659bb806373
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5029084
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#90944}
2023-11-15 08:14:20 +00:00
Zhao Jiazhong 3842726636 Revert "[loong64][mips64][wasm] Run JS imports on the central stack"
This reverts commit 417f558816.

Reason for revert: The ported commit was reverted.

Original change's description:
> [loong64][mips64][wasm] Run JS imports on the central stack
>
> Port commit be830f359c
>
> Change-Id: Icc06d882a994666f8cf26824f752d50028758984
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5029256
> Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#90926}

Change-Id: I6d26f85ab613482fd28c00cb407e39c684434f3a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5029386
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90941}
2023-11-15 03:04:10 +00:00
Zhao Jiazhong 417f558816 [loong64][mips64][wasm] Run JS imports on the central stack
Port commit be830f359c

Change-Id: Icc06d882a994666f8cf26824f752d50028758984
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5029256
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#90926}
2023-11-14 15:14:06 +00:00
Zhao Jiazhong bd77e012c6 [loong64][mips64][wasm] Add platform-specific support for the wasm-to-js wrapper
Port commit 93bb287c2f.

Change-Id: I8107141bb067eb6bc3d08dfd374b64dceed5f1af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5018573
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90888}
2023-11-13 14:54:05 +00:00
Zhao Jiazhong 207b5f553a [loong64][mips64][riscv] Skip turboshaft/instruction-selection on more platforms
Bug: v8:12783
Change-Id: I228951aa5430b210b14e1409fd1c4b13b650a6ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5003822
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#90824}
2023-11-09 00:54:59 +00:00
Zhao Jiazhong 39399268bc [loong64][interpreter] Skip spread machinery in default derived constructor
Port commit 6ee16b764a

Change-Id: I83592cfe23b47c1b64906c4de2d0b1e13fbd04e7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5004476
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#90801}
2023-11-07 19:00:33 +00:00
Zhao Jiazhong fec4f2965e [mips64] Skip console-profile-wasm on unsupported platforms
Change-Id: I9ebd5529df3f9990a0434a1855a65f6b8ef45ad2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5003547
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#90743}
2023-11-06 04:24:35 +00:00
Zhao Jiazhong a7d96c56ae [loong64][mips64][baseline] Cache feedback cell in the unused slot
Port commit 0d7002280b

Change-Id: Ie38911d4c8e8e38195ec42f3f60da0a0ec641579
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4899384
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90184}
2023-09-28 12:56:39 +00:00
Zhao Jiazhong dbcc3ef0ad [loong64][mips64] Fix comparison with 32-bit data for switches
The input register of comparison may contain dirty data in it's
upper 32 bits, which will result in a wrong comparison result.

Bug: v8:14344
Change-Id: I52cc2a917a488302be49d64b941b8ea560917ae2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4891979
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90170}
2023-09-28 08:46:11 +00:00
Zhao Jiazhong ab15dc32a0 [loong64][mips64][builtins] Remove a redundant and wrong debug check
The 'EnterFrame' function of loong64 and mips64 port doesn't push
context pointer on the stack.

Bug: v8:14340
Change-Id: Id9d1b42e6bc13675b33f52fa4bb851858d7f5e79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4891938
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90160}
2023-09-28 02:33:35 +00:00
Zhao Jiazhong f233e690f0 [loong64][mips64][compiler] Use 32-bit move for 32-bit value in AssembleMove
Change-Id: If63b25edb49e7cd69d478a776bdaf2208f90a9ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4874482
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Commit-Queue: Liu Yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#90057}
2023-09-20 09:52:49 +00:00
Zhao Jiazhong b9e9db5626 [loong64][mips64] Support Int64MulWithOverflow
Port commit 78570f7826

Change-Id: I74e2dd581142106c6b7efe7259d8af015c64bb50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3941116
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#83620}
2022-10-11 02:40:07 +00:00
Zhao Jiazhong 989a3cdc02 [loong64][mips64] support 64bit mul high
Port commit 222007bc11

Change-Id: I4f799b31ecc818b03296becaa9070d802dc8181d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3940341
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Commit-Queue: Liu Yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#83601}
2022-10-10 13:21:17 +00:00
Zhao Jiazhong a9d185b4f5 [loong64][mips][codegen] Change RegList into a class
Port commit I3cb2a4d386cb92a4dcd2edbdd3fba9ef71f354d6

Besides, clean some useless "SafepointRegister" stuff for MIPS.

Change-Id: I85bc7592faa1a7939330bef8453ea5eff4ac7f71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3527185
Reviewed-by: Yu Liu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#79493}
2022-03-16 09:58:27 +00:00
Zhao Jiazhong b49fea5cba [loong64] Fix the wrong encoding and usage of maskeqz/masknez instructions
Change-Id: Ie08574da9b2192aa250e2cbc0efaf049c6e9026a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354670
Reviewed-by: Yu Liu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#78439}
2021-12-24 10:46:06 +00:00
Zhao Jiazhong ec1e47a9a6 [loong64][mips] Fix a stack alignment issue when call C function
Change-Id: I297647ebc8b8b3f854ee3297be7c674aef6fd800
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354668
Reviewed-by: Yu Liu <liuyu@loongson.cn>
Commit-Queue: Yu Liu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#78437}
2021-12-24 01:59:16 +00:00
Zhao Jiazhong f507423bb0 [mips64] Temporarily add s0 to scratch register list
Debug build needs more scratch registers, since s0 is not added to
allocatable registers, we could use it as a scratch register.

Change-Id: I1453d78b18cd3abff83a2f0c084ed4dd92e92884
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3313967
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#78225}
2021-12-03 10:17:26 +00:00
Zhao Jiazhong f385232a87 [loong64][mips] Fix safepoint record of CallCFunction
Currently, the safepoint is last call instruction's return address on
mips and loongarch64 platform. But in `CallCFunction`, there are some
other instructions after calling, which leading to a wrong safepoint
record on mips and loongarch64.

So I record the pc for safepoint at the end of `CallCFunction`
function, and change `last_call_pc_` to `pc_for_safepoint_`.

Besides, commit 48b2b89176 introduced
a typo on loong64 platform, I also fixed it in this CL.

Change-Id: Ia3ea77ae2f6f1c8c604e35f420a7632a78c9725a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3258875
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77694}
2021-11-04 02:29:29 +00:00
Zhao Jiazhong 4eca28b35e [loong64][mips] Increase the number of args supported by the simulator to 20
Port commit 4de20cb1de

Change-Id: I753c9e02b517d73caf12e12104196f1a5b82847c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3258452
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77669}
2021-11-03 04:03:18 +00:00
Zhao Jiazhong 34cb1ccf09 [loong64][mips][wasm] Execution budget based dynamic tiering
Port commit 7a93bd647c

Change-Id: I3d1793154b1d69fcc0dcde7b7d731cbbb326f05d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3255208
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77635}
2021-11-02 02:14:53 +00:00
Zhao Jiazhong 8f93d342d7 [loong64][mips] Introduce CagedPointer
Port commit afd1554963

Since V8 heap sandbox requires pointer compression, which is not
implemented on mips64 and loong64 ports, so I just fix the build
issue in this CL.

Change-Id: Ie8f9d070c6149d85c2c870e882199ede2ebfe317
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3255207
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77633}
2021-11-02 01:11:53 +00:00
Zhao Jiazhong 25ca43f2ee [mips32] Fix unused-but-set-variable check failures
Some variables are only used in DCHECKs, which leading to the
`unused-but-set-variable` check fail in release mode.
So we need to explicitly mark them as used.

Change-Id: I18dc8ec97ea5fbbaa081a52629b9572b863d901e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3237558
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77507}
2021-10-22 08:52:31 +00:00
Zhao Jiazhong 58559fb7c1 [loong64][mips][regexp] Compact codegen for large character classes
Port commit 8bbb44e537

Bug: v8:11069
Change-Id: I66532e8410390bc220d7811e320bb44181b00d1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234303
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77468}
2021-10-20 10:53:40 +00:00
Zhao Jiazhong 129ef0a16b [mips64][loong64][codegen] Sign-extend uint32 values to 64-bit
Due to MIPS64 ISA feature, 32-bit values should be sign-extended
in 64-bit registers, no matter it's signed or unsigned.

Besides, LoongArch64 also has this feature, and a similar change
has been made before loong64 port's land in V8. This CL also make
a small fix for loong64.

Change-Id: Ib284662931082365f727925af61781e3653debc8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3193595
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77154}
2021-09-30 07:53:06 +00:00
Zhao Jiazhong 89d71aa946 [mips][loong64][wasm] Interpret table.grow result as 32 bit
Port commit a0ace8a8a5

On mips64 and loong64, sign-extend the 32-bit value.

Change-Id: I058e3fcba94c25ad36ab1d751dea6bfc0558471a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3189854
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77110}
2021-09-28 10:28:04 +00:00
Zhao Jiazhong f5e48df1f2 [mips][loong64][regexp] Fix regexp test failures
Port commit bba7c09aad
  [regexp] Allow reentrant irregexp execution

Port commit 4bbfc4b7a6
  [regexp] Remove the `stack` parameter from regexp matchers

Port commit c1700c56ad
  [regexp] Fix UAF in RegExpMacroAssembler

Bug: v8:11382
Change-Id: Ie2e95d7b19ecbd740e8d8a4130c725416abc114a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3185562
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77090}
2021-09-27 13:49:08 +00:00
Zhao Jiazhong 65d9c441df [mips][loong64][compiler] Teach InstructionScheduler about protected memory accesses
Port commit e301d71ff5

Change-Id: I58bb66e86629b60bcb75b3cec3e293d75acc5f5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3184290
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77074}
2021-09-26 04:31:48 +00:00
Zhao Jiazhong 74da6d5c9b [wasm][loong64] Fix register configuration
The t6-t8 are scratch registers and should not be allocatable.

Besides, add s0, s1, s2, s5 and s8 as allocatable registers.

Change-Id: I0805cc5273d0e0ec5040a0376bcbfba276202077
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147315
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76739}
2021-09-09 01:39:02 +00:00
Zhao Jiazhong 017c12b3c5 [loong64] Optimize GenerateSwitchTable
We should use pc relative branch instruction rather than loading
target address from memory for better performance.

Besides, just like arm64, currently we assume that none of our
relocation types are pc relative pointing outside the code buffer
nor pc absolute pointing inside the code buffer.

Change-Id: I9cce2e79c0afb00af967638405469f65df1deda2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147314
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#76721}
2021-09-08 10:41:51 +00:00
Zhao Jiazhong ed6058c619 [loong64][regexp] Support unaligned accesses in regexp
Change-Id: Icf548bcbb619dd6d5fa8ac6f11f9ba01820e4215
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3139481
Reviewed-by: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#76635}
2021-09-02 07:26:16 +00:00
Zhao Jiazhong dbc73a6c1b [tools] Fix build issue on mips64/loongarch64 host machines
Change-Id: Ia976df987bd4027d8bf1b22711a9611847d2be8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124095
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76571}
2021-08-30 11:38:52 +00:00
Zhao Jiazhong cea8c2ca1b Revert "[sparkplug] Adjust compare and jump function in sparkplug"
This reverts commit febfbb21b9.

Reason for revert: Introduced new bugs:
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64%20-%20debug/34472/overview

Original change's description:
> [sparkplug] Adjust compare and jump function in sparkplug
>
> Mips and risc-v do not have the flag register and can not decide
> whether to jump through flags in JumpIf();
>
> Therefor, we merge the comparison with the jump;
>
> Bug: v8:11803
>
> Change-Id: If53752da93b97e8ff65affdfe99e5de8e1a1493f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2921034
> Auto-Submit: Liu yu <liuyu@loongson.cn>
> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75001}

Bug: v8:11803
Change-Id: Ic982564ccdef9a07bf3a5fb4745a11cfa178cc0e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2946818
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75005}
2021-06-08 08:47:28 +00:00
Zhao Jiazhong 8f71a2675e [mips][cleanup] Remove unused function and opcode
Now the ModS opcode and MacroAssembler::EmitFPUTruncate function
are useless, and should be removed.

Change-Id: I5ba7c2cd01084b322046c8267b7581ab9d1755c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554382
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#71352}
2020-11-24 01:42:09 +00:00