load64_zero: Wasm SIMD load/store Anweisung
Die load64_zero SIMD load/store Anweisung lädt einen einzelnen Wert von einer gegebenen Speicheradresse in die erste Spur eines v128 Typs i64x2 Wertinterpretation und initialisiert die andere Spur mit 0.
Probieren Sie es aus
(module
(import "console" "log" (func $log (param i64)))
(memory $memory 1)
(data (i32.const 0) "\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f\00\01\02\03")
(func $main
i32.const 1
v128.load64_zero
i64x2.extract_lane 0
call $log
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Syntax
;; Common usage v128.load64_zero ;; With optional immediate operands v128.load64_zero mem_idx offset=int align=int
v128.load64_zero-
Die
v128.load64_zeroAnweisung. mem_idxOptional-
Ein ganzzahliger Wert, der den Speicherindex darstellt, in Fällen, in denen das Modul mehrere Speicher verwendet. Der Standardwert ist
0. offset=intOptional-
Ein ganzzahliger Wert, der eine konstante Anzahl von Bytes darstellt, die zur Speicheradresse hinzugefügt werden, bevor geladen wird. Der Standardwert ist
0. align=intOptional-
Ein ganzzahliger Wert, der der Wasm-Engine einen Hinweis gibt, welche Ausrichtung für die endgültige Adresse erwartet wird. Der Mindestwert ist
1und der Standard- und Höchstwert ist8. EinalignWert muss eine Potenz von2sein.
Typ
[memory_address] -> [output]
memory_address-
Ein ganzzahliger Wert, der die verschobene Speicheradresse darstellt, von der geladen werden soll.
output-
Die Ausgabe
v128Typi64x2Wertinterpretation.
Binärcodierung
| Anweisung | Binärformat | Beispiel-Text => binär |
|---|---|---|
v128.load64_zero |
0xFD 93:u32 mem_idx:u8 offset:u32 align:u32 |
v128.load64_zero 0 offset=0 align=8 => 0xfd 0x5d 0x03 0x00 |
Hinweis:
Während das Wasm-Textformat den wörtlichen align Wert angibt, stellt das binäre Äquivalent den Exponenten der Formel 2^x dar, die zur Berechnung der Ausrichtung verwendet wird. Zum Beispiel ist align=1 gleichbedeutend mit 0x00 (2^0), während align=8 gleichbedeutend mit 0x03 (2^3) ist.