load64_zero: Wasm SIMD load Instruction
Die load64_zero SIMD load Anweisung lädt einen einzelnen Wert von einer angegebenen Speicheradresse in die erste Bahn eines v128 Typs i64x2 Wertinterpretation und initialisiert die andere Bahn 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 immediates v128.load64_zero memidx offset=int align=int
v128.load64_zero-
Die
v128.load64_zeroAnweisung. memidxOptional-
Ein Integer, der den Speicherindex darstellt, in Fällen, in denen das Modul mehrere Speicher nutzt. Der Standardwert ist
0. offset=intOptional-
Ein Integer, der eine konstante Anzahl von Bytes repräsentiert, die zur Speicheradresse hinzugefügt werden, bevor geladen wird. Der Standardwert ist
0. align=intOptional-
Ein Integer, der dem Wasm-Engine einen Hinweis darauf gibt, welche Ausrichtung für die endgültige Adresse zu erwarten ist. Der Mindestwert ist
1und der Standard- und Höchstwert ist8. Einalign-Wert muss eine Potenz von2sein.
Typ
[memory_address] -> [output]
memory_address-
Ein Integer, der die Speicheradresse darstellt, von der geladen werden soll.
output-
Die Ausgabe
v128Typi64x2Wertinterpretation.
Binäre Kodierung
| Anweisung | Binärformat | Beispieltext => binär |
|---|---|---|
v128.load64_zero |
0xFD 93:u32 memidx: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, der zur Berechnung der Ausrichtung verwendet wird. Zum Beispiel, align=1 ist gleich 0x00 (2^0), während align=8 gleich 0x03 (2^3) ist.