mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 19:26:43 +01:00
Compare commits
14 Commits
v0.2.2
...
c7260cd3ea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7260cd3ea | ||
| dbeb242fb2 | |||
|
|
1d89ef8613 | ||
|
|
c7be8be2c4 | ||
|
|
d9f9500b76 | ||
| 4fe4bce0ad | |||
| fe86153562 | |||
| c9dadaca2e | |||
| 5dc3e281ce | |||
| ce3afb821f | |||
| 2652a351ad | |||
| 9109722409 | |||
| f861c262a1 | |||
| bbfb5eba49 |
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@@ -30,9 +30,9 @@ jobs:
|
|||||||
run: sudo apt-get install -y libxkbcommon-dev libasound2-dev
|
run: sudo apt-get install -y libxkbcommon-dev libasound2-dev
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: Cache build dirs
|
- name: Cache build dirs
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
~/.cargo/bin/
|
~/.cargo/bin/
|
||||||
@@ -44,7 +44,7 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: cargo build --release --verbose
|
run: cargo build --release --verbose
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: uw8-${{ matrix.build }}
|
name: uw8-${{ matrix.build }}
|
||||||
path: target/release/${{ matrix.exe }}
|
path: target/release/${{ matrix.exe }}
|
||||||
|
|||||||
6
.github/workflows/main.yml
vendored
6
.github/workflows/main.yml
vendored
@@ -8,12 +8,12 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: build_and_deploy
|
- name: build_and_deploy
|
||||||
uses: shalzz/zola-deploy-action@v0.14.1
|
uses: shalzz/zola-deploy-action@70a101a14bbdeed13e7a42a9ed06b35c9e9e826e
|
||||||
env:
|
env:
|
||||||
# Target branch
|
# Target branch
|
||||||
PAGES_BRANCH: gh-pages
|
PAGES_BRANCH: gh-pages
|
||||||
BUILD_DIR: site
|
BUILD_DIR: site
|
||||||
# Provide personal access token
|
# Provide personal access token
|
||||||
TOKEN: $GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
13
Cargo.lock
generated
13
Cargo.lock
generated
@@ -2069,6 +2069,15 @@ dependencies = [
|
|||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "notify-debouncer-mini"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e23e9fa24f094b143c1eb61f90ac6457de87be6987bc70746e0179f7dbc9007b"
|
||||||
|
dependencies = [
|
||||||
|
"notify",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-complex"
|
name = "num-complex"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
@@ -3374,7 +3383,7 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uw8"
|
name = "uw8"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@@ -3382,7 +3391,7 @@ dependencies = [
|
|||||||
"curlywas",
|
"curlywas",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"log",
|
"log",
|
||||||
"notify",
|
"notify-debouncer-mini",
|
||||||
"pico-args 0.5.0",
|
"pico-args 0.5.0",
|
||||||
"rubato",
|
"rubato",
|
||||||
"same-file",
|
"same-file",
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ anyhow = "1"
|
|||||||
env_logger = "0.10"
|
env_logger = "0.10"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
uw8-window = { path = "uw8-window", optional = true }
|
uw8-window = { path = "uw8-window", optional = true }
|
||||||
notify = "5"
|
notify-debouncer-mini = { version = "0.2.1", default-features = false }
|
||||||
pico-args = "0.5"
|
pico-args = "0.5"
|
||||||
curlywas = { git = "https://github.com/exoticorn/curlywas.git", rev = "0e7ea50" }
|
curlywas = { git = "https://github.com/exoticorn/curlywas.git", rev = "0e7ea50" }
|
||||||
wat = "1"
|
wat = "1"
|
||||||
|
|||||||
@@ -1,23 +1,35 @@
|
|||||||
use anyhow::{anyhow, bail, Result};
|
use anyhow::{anyhow, bail, Result};
|
||||||
use notify::{Event, EventKind, RecommendedWatcher, Watcher};
|
use notify_debouncer_mini::{
|
||||||
use std::{collections::BTreeSet, path::PathBuf, sync::mpsc};
|
new_debouncer,
|
||||||
|
notify::{self, RecommendedWatcher},
|
||||||
|
DebouncedEvent, DebouncedEventKind, Debouncer,
|
||||||
|
};
|
||||||
|
use std::{collections::BTreeSet, path::PathBuf, sync::mpsc, time::Duration};
|
||||||
|
|
||||||
pub struct FileWatcher {
|
pub struct FileWatcher {
|
||||||
watcher: RecommendedWatcher,
|
debouncer: Debouncer<RecommendedWatcher>,
|
||||||
watched_files: BTreeSet<PathBuf>,
|
watched_files: BTreeSet<PathBuf>,
|
||||||
directories: BTreeSet<PathBuf>,
|
directories: BTreeSet<PathBuf>,
|
||||||
rx: mpsc::Receiver<Event>,
|
rx: mpsc::Receiver<DebouncedEvent>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FileWatcher {
|
impl FileWatcher {
|
||||||
pub fn new() -> Result<FileWatcher> {
|
pub fn new() -> Result<FileWatcher> {
|
||||||
let (tx, rx) = mpsc::channel();
|
let (tx, rx) = mpsc::channel();
|
||||||
let watcher = notify::recommended_watcher(move |res| match res {
|
let debouncer = new_debouncer(Duration::from_millis(100), None, move |res| match res {
|
||||||
Ok(event) => _ = tx.send(event),
|
Ok(events) => {
|
||||||
Err(err) => eprintln!("Error watching for file changes: {err}"),
|
for event in events {
|
||||||
|
let _ = tx.send(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(errs) => {
|
||||||
|
for err in errs {
|
||||||
|
eprintln!("Error watching for file changes: {err}");
|
||||||
|
}
|
||||||
|
}
|
||||||
})?;
|
})?;
|
||||||
Ok(FileWatcher {
|
Ok(FileWatcher {
|
||||||
watcher,
|
debouncer,
|
||||||
watched_files: BTreeSet::new(),
|
watched_files: BTreeSet::new(),
|
||||||
directories: BTreeSet::new(),
|
directories: BTreeSet::new(),
|
||||||
rx,
|
rx,
|
||||||
@@ -29,7 +41,8 @@ impl FileWatcher {
|
|||||||
let parent = path.parent().ok_or_else(|| anyhow!("File has no parent"))?;
|
let parent = path.parent().ok_or_else(|| anyhow!("File has no parent"))?;
|
||||||
|
|
||||||
if !self.directories.contains(parent) {
|
if !self.directories.contains(parent) {
|
||||||
self.watcher
|
self.debouncer
|
||||||
|
.watcher()
|
||||||
.watch(parent, notify::RecursiveMode::NonRecursive)?;
|
.watch(parent, notify::RecursiveMode::NonRecursive)?;
|
||||||
self.directories.insert(parent.to_path_buf());
|
self.directories.insert(parent.to_path_buf());
|
||||||
}
|
}
|
||||||
@@ -41,13 +54,11 @@ impl FileWatcher {
|
|||||||
pub fn poll_changed_file(&self) -> Result<Option<PathBuf>> {
|
pub fn poll_changed_file(&self) -> Result<Option<PathBuf>> {
|
||||||
match self.rx.try_recv() {
|
match self.rx.try_recv() {
|
||||||
Ok(event) => match event.kind {
|
Ok(event) => match event.kind {
|
||||||
EventKind::Create(_) | EventKind::Modify(_) => {
|
DebouncedEventKind::Any => {
|
||||||
for path in event.paths {
|
let handle = same_file::Handle::from_path(&event.path)?;
|
||||||
let handle = same_file::Handle::from_path(&path)?;
|
|
||||||
for file in &self.watched_files {
|
for file in &self.watched_files {
|
||||||
if handle == same_file::Handle::from_path(file)? {
|
if handle == same_file::Handle::from_path(file)? {
|
||||||
return Ok(Some(path));
|
return Ok(Some(event.path));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,18 @@ import "env.memory" memory(4);
|
|||||||
import "env.pow" fn pow(f32, f32) -> f32;
|
import "env.pow" fn pow(f32, f32) -> f32;
|
||||||
import "env.sin" fn sin(f32) -> f32;
|
import "env.sin" fn sin(f32) -> f32;
|
||||||
import "env.cls" fn cls(i32);
|
import "env.cls" fn cls(i32);
|
||||||
|
import "env.exp" fn exp(f32) -> f32;
|
||||||
import "env.rectangle" fn rectangle(f32, f32, f32, f32, i32);
|
import "env.rectangle" fn rectangle(f32, f32, f32, f32, i32);
|
||||||
|
|
||||||
include "../platform/src/ges.cwa"
|
include "../platform/src/ges.cwa"
|
||||||
|
|
||||||
export fn snd(t: i32) -> f32 {
|
export fn snd(t: i32) -> f32 {
|
||||||
gesSnd(t)
|
sndGes(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
export fn upd() {
|
export fn upd() {
|
||||||
80?0 = 32!32 / 200 & 2 | 0x41;
|
80?0 = 32!32 / 200 & 2 | 0x41;
|
||||||
80?3 = (32!32 / 400)%7*12/7 + 40;
|
80?3 = (32!32 / 400)%8*12/7 + 40;
|
||||||
let pulse = (32!32 * 256 / 2000) & 511;
|
let pulse = (32!32 * 256 / 2000) & 511;
|
||||||
if pulse >= 256 {
|
if pulse >= 256 {
|
||||||
pulse = 511 - pulse;
|
pulse = 511 - pulse;
|
||||||
|
|||||||
@@ -143,6 +143,7 @@ fn to_val_type(type_: &wasmparser::ValType) -> Result<ValType> {
|
|||||||
I64 => ValType::I64,
|
I64 => ValType::I64,
|
||||||
F32 => ValType::F32,
|
F32 => ValType::F32,
|
||||||
F64 => ValType::F64,
|
F64 => ValType::F64,
|
||||||
|
V128 => ValType::V128,
|
||||||
_ => bail!("Type {:?} isn't a value type", type_),
|
_ => bail!("Type {:?} isn't a value type", type_),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -767,7 +768,10 @@ fn remap_function(
|
|||||||
De::End => En::End,
|
De::End => En::End,
|
||||||
De::Br { relative_depth } => En::Br(relative_depth),
|
De::Br { relative_depth } => En::Br(relative_depth),
|
||||||
De::BrIf { relative_depth } => En::BrIf(relative_depth),
|
De::BrIf { relative_depth } => En::BrIf(relative_depth),
|
||||||
De::BrTable { .. } => todo!(),
|
De::BrTable { targets } => En::BrTable(
|
||||||
|
targets.targets().collect::<Result<Vec<u32>, _>>()?.into(),
|
||||||
|
targets.default(),
|
||||||
|
),
|
||||||
De::Return => En::Return,
|
De::Return => En::Return,
|
||||||
De::Call { function_index } => En::Call(
|
De::Call { function_index } => En::Call(
|
||||||
*function_map
|
*function_map
|
||||||
@@ -964,6 +968,244 @@ fn remap_function(
|
|||||||
De::I64TruncSatF64U => En::I64TruncSatF64U,
|
De::I64TruncSatF64U => En::I64TruncSatF64U,
|
||||||
De::MemoryCopy { src_mem, dst_mem } => En::MemoryCopy { src_mem, dst_mem },
|
De::MemoryCopy { src_mem, dst_mem } => En::MemoryCopy { src_mem, dst_mem },
|
||||||
De::MemoryFill { mem } => En::MemoryFill(mem),
|
De::MemoryFill { mem } => En::MemoryFill(mem),
|
||||||
|
|
||||||
|
De::V128Const { value } => En::V128Const(value.i128()),
|
||||||
|
De::V128Load { memarg } => En::V128Load(mem(memarg)),
|
||||||
|
De::V128Store { memarg } => En::V128Store(mem(memarg)),
|
||||||
|
De::V128Load8x8S { memarg } => En::V128Load8x8S(mem(memarg)),
|
||||||
|
De::V128Load8x8U { memarg } => En::V128Load8x8U(mem(memarg)),
|
||||||
|
De::V128Load16x4S { memarg } => En::V128Load16x4S(mem(memarg)),
|
||||||
|
De::V128Load16x4U { memarg } => En::V128Load16x4U(mem(memarg)),
|
||||||
|
De::V128Load32x2S { memarg } => En::V128Load32x2S(mem(memarg)),
|
||||||
|
De::V128Load32x2U { memarg } => En::V128Load32x2U(mem(memarg)),
|
||||||
|
De::V128Load8Splat { memarg } => En::V128Load8Splat(mem(memarg)),
|
||||||
|
De::V128Load16Splat { memarg } => En::V128Load16Splat(mem(memarg)),
|
||||||
|
De::V128Load32Splat { memarg } => En::V128Load32Splat(mem(memarg)),
|
||||||
|
De::V128Load64Splat { memarg } => En::V128Load64Splat(mem(memarg)),
|
||||||
|
De::V128Load32Zero { memarg } => En::V128Load32Zero(mem(memarg)),
|
||||||
|
De::V128Load64Zero { memarg } => En::V128Load64Zero(mem(memarg)),
|
||||||
|
|
||||||
|
De::V128Load8Lane { memarg, lane } => En::V128Load8Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Load16Lane { memarg, lane } => En::V128Load16Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Load32Lane { memarg, lane } => En::V128Load32Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Load64Lane { memarg, lane } => En::V128Load64Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Store8Lane { memarg, lane } => En::V128Store8Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Store16Lane { memarg, lane } => En::V128Store16Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Store32Lane { memarg, lane } => En::V128Store32Lane { memarg: mem(memarg), lane },
|
||||||
|
De::V128Store64Lane { memarg, lane } => En::V128Store64Lane { memarg: mem(memarg), lane },
|
||||||
|
|
||||||
|
De::I8x16ExtractLaneS { lane } => En::I8x16ExtractLaneS(lane),
|
||||||
|
De::I8x16ExtractLaneU { lane } => En::I8x16ExtractLaneU(lane),
|
||||||
|
De::I8x16ReplaceLane { lane } => En::I8x16ReplaceLane(lane),
|
||||||
|
De::I16x8ExtractLaneS { lane } => En::I16x8ExtractLaneS(lane),
|
||||||
|
De::I16x8ExtractLaneU { lane } => En::I16x8ExtractLaneU(lane),
|
||||||
|
De::I16x8ReplaceLane { lane } => En::I16x8ReplaceLane(lane),
|
||||||
|
De::I32x4ExtractLane { lane } => En::I32x4ExtractLane(lane),
|
||||||
|
De::I32x4ReplaceLane { lane } => En::I32x4ReplaceLane(lane),
|
||||||
|
De::I64x2ExtractLane { lane } => En::I64x2ExtractLane(lane),
|
||||||
|
De::I64x2ReplaceLane { lane } => En::I64x2ReplaceLane(lane),
|
||||||
|
De::F32x4ExtractLane { lane } => En::F32x4ExtractLane(lane),
|
||||||
|
De::F32x4ReplaceLane { lane } => En::F32x4ReplaceLane(lane),
|
||||||
|
De::F64x2ExtractLane { lane } => En::F64x2ExtractLane(lane),
|
||||||
|
De::F64x2ReplaceLane { lane } => En::F64x2ReplaceLane(lane),
|
||||||
|
|
||||||
|
De::I8x16Splat => En::I8x16Splat,
|
||||||
|
De::I16x8Splat => En::I16x8Splat,
|
||||||
|
De::I32x4Splat => En::I32x4Splat,
|
||||||
|
De::I64x2Splat => En::I64x2Splat,
|
||||||
|
De::F32x4Splat => En::F32x4Splat,
|
||||||
|
De::F64x2Splat => En::F64x2Splat,
|
||||||
|
De::I8x16Swizzle => En::I8x16Swizzle,
|
||||||
|
De::I8x16Add => En::I8x16Add,
|
||||||
|
De::I16x8Add => En::I16x8Add,
|
||||||
|
De::I32x4Add => En::I32x4Add,
|
||||||
|
De::I64x2Add => En::I64x2Add,
|
||||||
|
De::F32x4Add => En::F32x4Add,
|
||||||
|
De::F64x2Add => En::F64x2Add,
|
||||||
|
De::I8x16Sub => En::I8x16Sub,
|
||||||
|
De::I16x8Sub => En::I16x8Sub,
|
||||||
|
De::I32x4Sub => En::I32x4Sub,
|
||||||
|
De::I64x2Sub => En::I64x2Sub,
|
||||||
|
De::F32x4Sub => En::F32x4Sub,
|
||||||
|
De::F64x2Sub => En::F64x2Sub,
|
||||||
|
De::I16x8Mul => En::I16x8Mul,
|
||||||
|
De::I32x4Mul => En::I32x4Mul,
|
||||||
|
De::I64x2Mul => En::I64x2Mul,
|
||||||
|
De::F32x4Mul => En::F32x4Mul,
|
||||||
|
De::F64x2Mul => En::F64x2Mul,
|
||||||
|
De::I32x4DotI16x8S => En::I32x4DotI16x8S,
|
||||||
|
De::I8x16Neg => En::I8x16Neg,
|
||||||
|
De::I16x8Neg => En::I16x8Neg,
|
||||||
|
De::I32x4Neg => En::I32x4Neg,
|
||||||
|
De::I64x2Neg => En::I64x2Neg,
|
||||||
|
De::F32x4Neg => En::F32x4Neg,
|
||||||
|
De::F64x2Neg => En::F64x2Neg,
|
||||||
|
De::I16x8ExtMulLowI8x16S => En::I16x8ExtMulLowI8x16S,
|
||||||
|
De::I16x8ExtMulHighI8x16S => En::I16x8ExtMulHighI8x16S,
|
||||||
|
De::I16x8ExtMulLowI8x16U => En::I16x8ExtMulLowI8x16U,
|
||||||
|
De::I16x8ExtMulHighI8x16U => En::I16x8ExtMulHighI8x16U,
|
||||||
|
De::I32x4ExtMulLowI16x8S => En::I32x4ExtMulLowI16x8S,
|
||||||
|
De::I32x4ExtMulHighI16x8S => En::I32x4ExtMulHighI16x8S,
|
||||||
|
De::I32x4ExtMulLowI16x8U => En::I32x4ExtMulLowI16x8U,
|
||||||
|
De::I32x4ExtMulHighI16x8U => En::I32x4ExtMulHighI16x8U,
|
||||||
|
De::I64x2ExtMulLowI32x4S => En::I64x2ExtMulLowI32x4S,
|
||||||
|
De::I64x2ExtMulHighI32x4S => En::I64x2ExtMulHighI32x4S,
|
||||||
|
De::I64x2ExtMulLowI32x4U => En::I64x2ExtMulLowI32x4U,
|
||||||
|
De::I64x2ExtMulHighI32x4U => En::I64x2ExtMulHighI32x4U,
|
||||||
|
De::I16x8ExtAddPairwiseI8x16S => En::I16x8ExtAddPairwiseI8x16S,
|
||||||
|
De::I16x8ExtAddPairwiseI8x16U => En::I16x8ExtAddPairwiseI8x16U,
|
||||||
|
De::I32x4ExtAddPairwiseI16x8S => En::I32x4ExtAddPairwiseI16x8S,
|
||||||
|
De::I32x4ExtAddPairwiseI16x8U => En::I32x4ExtAddPairwiseI16x8U,
|
||||||
|
De::I8x16AddSatS => En::I8x16AddSatS,
|
||||||
|
De::I8x16AddSatU => En::I8x16AddSatU,
|
||||||
|
De::I16x8AddSatS => En::I16x8AddSatS,
|
||||||
|
De::I16x8AddSatU => En::I16x8AddSatU,
|
||||||
|
De::I8x16SubSatS => En::I8x16SubSatS,
|
||||||
|
De::I8x16SubSatU => En::I8x16SubSatU,
|
||||||
|
De::I16x8SubSatS => En::I16x8SubSatS,
|
||||||
|
De::I16x8SubSatU => En::I16x8SubSatU,
|
||||||
|
De::I16x8Q15MulrSatS => En::I16x8Q15MulrSatS,
|
||||||
|
De::I8x16MinS => En::I8x16MinS,
|
||||||
|
De::I8x16MinU => En::I8x16MinU,
|
||||||
|
De::I16x8MinS => En::I16x8MinS,
|
||||||
|
De::I16x8MinU => En::I16x8MinU,
|
||||||
|
De::I32x4MinS => En::I32x4MinS,
|
||||||
|
De::I32x4MinU => En::I32x4MinU,
|
||||||
|
De::F32x4Min => En::F32x4Min,
|
||||||
|
De::F64x2Min => En::F64x2Min,
|
||||||
|
De::F32x4PMin => En::F32x4PMin,
|
||||||
|
De::F64x2PMin => En::F64x2PMin,
|
||||||
|
De::I8x16MaxS => En::I8x16MaxS,
|
||||||
|
De::I8x16MaxU => En::I8x16MaxU,
|
||||||
|
De::I16x8MaxS => En::I16x8MaxS,
|
||||||
|
De::I16x8MaxU => En::I16x8MaxU,
|
||||||
|
De::I32x4MaxS => En::I32x4MaxS,
|
||||||
|
De::I32x4MaxU => En::I32x4MaxU,
|
||||||
|
De::F32x4Max => En::F32x4Max,
|
||||||
|
De::F64x2Max => En::F64x2Max,
|
||||||
|
De::F32x4PMax => En::F32x4PMax,
|
||||||
|
De::F64x2PMax => En::F64x2PMax,
|
||||||
|
De::I8x16AvgrU => En::I8x16AvgrU,
|
||||||
|
De::I16x8AvgrU => En::I16x8AvgrU,
|
||||||
|
De::I8x16Abs => En::I8x16Abs,
|
||||||
|
De::I16x8Abs => En::I16x8Abs,
|
||||||
|
De::I32x4Abs => En::I32x4Abs,
|
||||||
|
De::I64x2Abs => En::I64x2Abs,
|
||||||
|
De::F32x4Abs => En::F32x4Abs,
|
||||||
|
De::F64x2Abs => En::F64x2Abs,
|
||||||
|
De::I8x16Shl => En::I8x16Shl,
|
||||||
|
De::I16x8Shl => En::I16x8Shl,
|
||||||
|
De::I32x4Shl => En::I32x4Shl,
|
||||||
|
De::I64x2Shl => En::I64x2Shl,
|
||||||
|
De::I8x16ShrS => En::I8x16ShrS,
|
||||||
|
De::I8x16ShrU => En::I8x16ShrU,
|
||||||
|
De::I16x8ShrS => En::I16x8ShrS,
|
||||||
|
De::I16x8ShrU => En::I16x8ShrU,
|
||||||
|
De::I32x4ShrS => En::I32x4ShrS,
|
||||||
|
De::I32x4ShrU => En::I32x4ShrU,
|
||||||
|
De::I64x2ShrS => En::I64x2ShrS,
|
||||||
|
De::I64x2ShrU => En::I64x2ShrU,
|
||||||
|
De::V128And => En::V128And,
|
||||||
|
De::V128Or => En::V128Or,
|
||||||
|
De::V128Xor => En::V128Xor,
|
||||||
|
De::V128Not => En::V128Not,
|
||||||
|
De::V128AndNot => En::V128AndNot,
|
||||||
|
De::V128Bitselect => En::V128Bitselect,
|
||||||
|
De::I8x16Popcnt => En::I8x16Popcnt,
|
||||||
|
De::V128AnyTrue => En::V128AnyTrue,
|
||||||
|
De::I8x16AllTrue => En::I8x16AllTrue,
|
||||||
|
De::I16x8AllTrue => En::I16x8AllTrue,
|
||||||
|
De::I32x4AllTrue => En::I32x4AllTrue,
|
||||||
|
De::I64x2AllTrue => En::I64x2AllTrue,
|
||||||
|
De::I8x16Bitmask => En::I8x16Bitmask,
|
||||||
|
De::I16x8Bitmask => En::I16x8Bitmask,
|
||||||
|
De::I32x4Bitmask => En::I32x4Bitmask,
|
||||||
|
De::I64x2Bitmask => En::I64x2Bitmask,
|
||||||
|
De::I8x16Eq => En::I8x16Eq,
|
||||||
|
De::I16x8Eq => En::I16x8Eq,
|
||||||
|
De::I32x4Eq => En::I32x4Eq,
|
||||||
|
De::I64x2Eq => En::I64x2Eq,
|
||||||
|
De::F32x4Eq => En::F32x4Eq,
|
||||||
|
De::F64x2Eq => En::F64x2Eq,
|
||||||
|
De::I8x16Ne => En::I8x16Ne,
|
||||||
|
De::I16x8Ne => En::I16x8Ne,
|
||||||
|
De::I32x4Ne => En::I32x4Ne,
|
||||||
|
De::I64x2Ne => En::I64x2Ne,
|
||||||
|
De::F32x4Ne => En::F32x4Ne,
|
||||||
|
De::F64x2Ne => En::F64x2Ne,
|
||||||
|
De::I8x16LtS => En::I8x16LtS,
|
||||||
|
De::I8x16LtU => En::I8x16LtU,
|
||||||
|
De::I16x8LtS => En::I16x8LtS,
|
||||||
|
De::I16x8LtU => En::I16x8LtU,
|
||||||
|
De::I32x4LtS => En::I32x4LtS,
|
||||||
|
De::I32x4LtU => En::I32x4LtU,
|
||||||
|
De::F32x4Lt => En::F32x4Lt,
|
||||||
|
De::F64x2Lt => En::F64x2Lt,
|
||||||
|
De::I8x16LeS => En::I8x16LeS,
|
||||||
|
De::I8x16LeU => En::I8x16LeU,
|
||||||
|
De::I16x8LeS => En::I16x8LeS,
|
||||||
|
De::I16x8LeU => En::I16x8LeU,
|
||||||
|
De::I32x4LeS => En::I32x4LeS,
|
||||||
|
De::I32x4LeU => En::I32x4LeU,
|
||||||
|
De::F32x4Le => En::F32x4Le,
|
||||||
|
De::F64x2Le => En::F64x2Le,
|
||||||
|
De::I8x16GtS => En::I8x16GtS,
|
||||||
|
De::I8x16GtU => En::I8x16GtU,
|
||||||
|
De::I16x8GtS => En::I16x8GtS,
|
||||||
|
De::I16x8GtU => En::I16x8GtU,
|
||||||
|
De::I32x4GtS => En::I32x4GtS,
|
||||||
|
De::I32x4GtU => En::I32x4GtU,
|
||||||
|
De::F32x4Gt => En::F32x4Gt,
|
||||||
|
De::F64x2Gt => En::F64x2Gt,
|
||||||
|
De::I8x16GeS => En::I8x16GeS,
|
||||||
|
De::I8x16GeU => En::I8x16GeU,
|
||||||
|
De::I16x8GeS => En::I16x8GeS,
|
||||||
|
De::I16x8GeU => En::I16x8GeU,
|
||||||
|
De::I32x4GeS => En::I32x4GeS,
|
||||||
|
De::I32x4GeU => En::I32x4GeU,
|
||||||
|
De::F32x4Ge => En::F32x4Ge,
|
||||||
|
De::F64x2Ge => En::F64x2Ge,
|
||||||
|
De::F32x4Div => En::F32x4Div,
|
||||||
|
De::F64x2Div => En::F64x2Div,
|
||||||
|
De::F32x4Sqrt => En::F32x4Sqrt,
|
||||||
|
De::F64x2Sqrt => En::F64x2Sqrt,
|
||||||
|
De::F32x4Ceil => En::F32x4Ceil,
|
||||||
|
De::F64x2Ceil => En::F64x2Ceil,
|
||||||
|
De::F32x4Floor => En::F32x4Floor,
|
||||||
|
De::F64x2Floor => En::F64x2Floor,
|
||||||
|
De::F32x4Trunc => En::F32x4Trunc,
|
||||||
|
De::F64x2Trunc => En::F64x2Trunc,
|
||||||
|
De::F32x4Nearest => En::F32x4Nearest,
|
||||||
|
De::F64x2Nearest => En::F64x2Nearest,
|
||||||
|
De::F32x4ConvertI32x4S => En::F32x4ConvertI32x4S,
|
||||||
|
De::F32x4ConvertI32x4U => En::F32x4ConvertI32x4U,
|
||||||
|
De::F64x2ConvertLowI32x4S => En::F64x2ConvertLowI32x4S,
|
||||||
|
De::F64x2ConvertLowI32x4U => En::F64x2ConvertLowI32x4U,
|
||||||
|
De::I32x4TruncSatF32x4S => En::I32x4TruncSatF32x4S,
|
||||||
|
De::I32x4TruncSatF32x4U => En::I32x4TruncSatF32x4U,
|
||||||
|
De::I32x4TruncSatF64x2SZero => En::I32x4TruncSatF64x2SZero,
|
||||||
|
De::I32x4TruncSatF64x2UZero => En::I32x4TruncSatF64x2UZero,
|
||||||
|
De::F32x4DemoteF64x2Zero => En::F32x4DemoteF64x2Zero,
|
||||||
|
De::F64x2PromoteLowF32x4 => En::F64x2PromoteLowF32x4,
|
||||||
|
De::I8x16NarrowI16x8S => En::I8x16NarrowI16x8S,
|
||||||
|
De::I8x16NarrowI16x8U => En::I8x16NarrowI16x8U,
|
||||||
|
De::I16x8NarrowI32x4S => En::I16x8NarrowI32x4S,
|
||||||
|
De::I16x8NarrowI32x4U => En::I16x8NarrowI32x4U,
|
||||||
|
De::I16x8ExtendLowI8x16S => En::I16x8ExtendLowI8x16S,
|
||||||
|
De::I16x8ExtendHighI8x16S => En::I16x8ExtendHighI8x16S,
|
||||||
|
De::I16x8ExtendLowI8x16U => En::I16x8ExtendLowI8x16U,
|
||||||
|
De::I16x8ExtendHighI8x16U => En::I16x8ExtendHighI8x16U,
|
||||||
|
De::I32x4ExtendLowI16x8S => En::I32x4ExtendLowI16x8S,
|
||||||
|
De::I32x4ExtendHighI16x8S => En::I32x4ExtendHighI16x8S,
|
||||||
|
De::I32x4ExtendLowI16x8U => En::I32x4ExtendLowI16x8U,
|
||||||
|
De::I32x4ExtendHighI16x8U => En::I32x4ExtendHighI16x8U,
|
||||||
|
De::I64x2ExtendLowI32x4S => En::I64x2ExtendLowI32x4S,
|
||||||
|
De::I64x2ExtendHighI32x4S => En::I64x2ExtendHighI32x4S,
|
||||||
|
De::I64x2ExtendLowI32x4U => En::I64x2ExtendLowI32x4U,
|
||||||
|
De::I64x2ExtendHighI32x4U => En::I64x2ExtendHighI32x4U,
|
||||||
|
|
||||||
|
De::I8x16Shuffle { lanes } => En::I8x16Shuffle(lanes),
|
||||||
|
|
||||||
other => bail!("Unsupported instruction {:?}", other),
|
other => bail!("Unsupported instruction {:?}", other),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user