pallet_revive: Switch to 64bit RISC-V (#6565)
This PR updates pallet_revive to the newest PolkaVM version and adapts the test fixtures and syscall interface to work under 64bit. Please note that after this PR no 32bit contracts can be deployed (they will be rejected at deploy time). Pre-deployed 32bit contracts are now considered defunct since we changes how parameters are passed for functions with more than 6 arguments. ## Fixtures The fixtures are now built for the 64bit target. I also removed the temporary directory mechanism that triggered a full rebuild every time. It also makes it easier to find the compiled fixtures since they are now always in `target/pallet-revive-fixtures`. ## Syscall interface ### Passing pointer Registers and pointers are now 64bit wide. This allows us to pass u64 arguments in a single register. Before we needed two registers to pass them. This means that just as before we need one register per pointer we pass. We keep pointers as `u32` argument by truncating the registe...
parent
b3ab3127
Showing
- .github/workflows/checks-quick.yml 0 additions, 1 deletion.github/workflows/checks-quick.yml
- Cargo.lock 37 additions, 35 deletionsCargo.lock
- prdoc/pr_6565.prdoc 35 additions, 0 deletionsprdoc/pr_6565.prdoc
- substrate/frame/revive/Cargo.toml 1 addition, 1 deletionsubstrate/frame/revive/Cargo.toml
- substrate/frame/revive/fixtures/Cargo.toml 1 addition, 3 deletionssubstrate/frame/revive/fixtures/Cargo.toml
- substrate/frame/revive/fixtures/build.rs 67 additions, 29 deletionssubstrate/frame/revive/fixtures/build.rs
- substrate/frame/revive/fixtures/build/_Cargo.toml 4 additions, 1 deletionsubstrate/frame/revive/fixtures/build/_Cargo.toml
- substrate/frame/revive/fixtures/build/_rust-toolchain.toml 4 additions, 0 deletionssubstrate/frame/revive/fixtures/build/_rust-toolchain.toml
- substrate/frame/revive/fixtures/riscv32emac-unknown-none-polkavm.json 0 additions, 26 deletions...ame/revive/fixtures/riscv32emac-unknown-none-polkavm.json
- substrate/frame/revive/fixtures/src/lib.rs 5 additions, 8 deletionssubstrate/frame/revive/fixtures/src/lib.rs
- substrate/frame/revive/proc-macro/src/lib.rs 53 additions, 38 deletionssubstrate/frame/revive/proc-macro/src/lib.rs
- substrate/frame/revive/rpc/src/tests.rs 6 additions, 0 deletionssubstrate/frame/revive/rpc/src/tests.rs
- substrate/frame/revive/src/chain_extension.rs 1 addition, 11 deletionssubstrate/frame/revive/src/chain_extension.rs
- substrate/frame/revive/src/limits.rs 17 additions, 4 deletionssubstrate/frame/revive/src/limits.rs
- substrate/frame/revive/src/wasm/mod.rs 18 additions, 2 deletionssubstrate/frame/revive/src/wasm/mod.rs
- substrate/frame/revive/src/wasm/runtime.rs 6 additions, 27 deletionssubstrate/frame/revive/src/wasm/runtime.rs
- substrate/frame/revive/uapi/Cargo.toml 3 additions, 3 deletionssubstrate/frame/revive/uapi/Cargo.toml
- substrate/frame/revive/uapi/src/host.rs 2 additions, 2 deletionssubstrate/frame/revive/uapi/src/host.rs
- substrate/frame/revive/uapi/src/host/riscv64.rs 43 additions, 43 deletionssubstrate/frame/revive/uapi/src/host/riscv64.rs
- substrate/frame/revive/uapi/src/lib.rs 6 additions, 0 deletionssubstrate/frame/revive/uapi/src/lib.rs
Please register or sign in to comment