Extend
The extend
instructions, are used to convert (extend) numbers of type i32
to type i64
. There are signed and unsigned versions of this instruction.
Try it
(module (import "console" "log" (func $log (param i64))) (func $main i32.const 10 ;; push an i32 onto the stack i64.extend_i32_s ;; sign-extend from i32 to i64 call $log ;; log the result ) (start $main) )
const url = "{%wasm-url%}"; await WebAssembly.instantiateStreaming(fetch(url), { console });
Syntax
wat
;; push an i32 onto the stack i32.const 10 ;; sign-extend from i32 to i64 i64.extend_i32_s ;; the top item on the stack will now be the value 10 of type i64
Instruction | Binary opcode |
---|---|
i64.extend_i32_s | 0xac |
i64.extend_i32_u | 0xad |