Skip to content

Commit 844f1b7

Browse files
committed
add missing fused binop executors
1 parent adb12fb commit 844f1b7

File tree

62 files changed

+1787
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1787
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F32CopysignExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F32CopysignDispatcher(
9+
instruction: FusedNumericInstruction.F32Copysign,
10+
) = F32CopysignDispatcher(
11+
instruction = instruction,
12+
executor = ::F32CopysignExecutor,
13+
)
14+
15+
internal inline fun F32CopysignDispatcher(
16+
instruction: FusedNumericInstruction.F32Copysign,
17+
crossinline executor: Executor<FusedNumericInstruction.F32Copysign>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F32MaxExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F32MaxDispatcher(
9+
instruction: FusedNumericInstruction.F32Max,
10+
) = F32MaxDispatcher(
11+
instruction = instruction,
12+
executor = ::F32MaxExecutor,
13+
)
14+
15+
internal inline fun F32MaxDispatcher(
16+
instruction: FusedNumericInstruction.F32Max,
17+
crossinline executor: Executor<FusedNumericInstruction.F32Max>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F32MinExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F32MinDispatcher(
9+
instruction: FusedNumericInstruction.F32Min,
10+
) = F32MinDispatcher(
11+
instruction = instruction,
12+
executor = ::F32MinExecutor,
13+
)
14+
15+
internal inline fun F32MinDispatcher(
16+
instruction: FusedNumericInstruction.F32Min,
17+
crossinline executor: Executor<FusedNumericInstruction.F32Min>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F64CopysignExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F64CopysignDispatcher(
9+
instruction: FusedNumericInstruction.F64Copysign,
10+
) = F64CopysignDispatcher(
11+
instruction = instruction,
12+
executor = ::F64CopysignExecutor,
13+
)
14+
15+
internal inline fun F64CopysignDispatcher(
16+
instruction: FusedNumericInstruction.F64Copysign,
17+
crossinline executor: Executor<FusedNumericInstruction.F64Copysign>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F64MaxExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F64MaxDispatcher(
9+
instruction: FusedNumericInstruction.F64Max,
10+
) = F64MaxDispatcher(
11+
instruction = instruction,
12+
executor = ::F64MaxExecutor,
13+
)
14+
15+
internal inline fun F64MaxDispatcher(
16+
instruction: FusedNumericInstruction.F64Max,
17+
crossinline executor: Executor<FusedNumericInstruction.F64Max>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.F64MinExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun F64MinDispatcher(
9+
instruction: FusedNumericInstruction.F64Min,
10+
) = F64MinDispatcher(
11+
instruction = instruction,
12+
executor = ::F64MinExecutor,
13+
)
14+
15+
internal inline fun F64MinDispatcher(
16+
instruction: FusedNumericInstruction.F64Min,
17+
crossinline executor: Executor<FusedNumericInstruction.F64Min>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I32RemSExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I32RemSDispatcher(
9+
instruction: FusedNumericInstruction.I32RemS,
10+
) = I32RemSDispatcher(
11+
instruction = instruction,
12+
executor = ::I32RemSExecutor,
13+
)
14+
15+
internal inline fun I32RemSDispatcher(
16+
instruction: FusedNumericInstruction.I32RemS,
17+
crossinline executor: Executor<FusedNumericInstruction.I32RemS>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I32RemUExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I32RemUDispatcher(
9+
instruction: FusedNumericInstruction.I32RemU,
10+
) = I32RemUDispatcher(
11+
instruction = instruction,
12+
executor = ::I32RemUExecutor,
13+
)
14+
15+
internal inline fun I32RemUDispatcher(
16+
instruction: FusedNumericInstruction.I32RemU,
17+
crossinline executor: Executor<FusedNumericInstruction.I32RemU>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I32RotlExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I32RotlDispatcher(
9+
instruction: FusedNumericInstruction.I32Rotl,
10+
) = I32RotlDispatcher(
11+
instruction = instruction,
12+
executor = ::I32RotlExecutor,
13+
)
14+
15+
internal inline fun I32RotlDispatcher(
16+
instruction: FusedNumericInstruction.I32Rotl,
17+
crossinline executor: Executor<FusedNumericInstruction.I32Rotl>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I32RotrExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I32RotrDispatcher(
9+
instruction: FusedNumericInstruction.I32Rotr,
10+
) = I32RotrDispatcher(
11+
instruction = instruction,
12+
executor = ::I32RotrExecutor,
13+
)
14+
15+
internal inline fun I32RotrDispatcher(
16+
instruction: FusedNumericInstruction.I32Rotr,
17+
crossinline executor: Executor<FusedNumericInstruction.I32Rotr>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64AndExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64AndDispatcher(
9+
instruction: FusedNumericInstruction.I64And,
10+
) = I64AndDispatcher(
11+
instruction = instruction,
12+
executor = ::I64AndExecutor,
13+
)
14+
15+
internal inline fun I64AndDispatcher(
16+
instruction: FusedNumericInstruction.I64And,
17+
crossinline executor: Executor<FusedNumericInstruction.I64And>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64OrExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64OrDispatcher(
9+
instruction: FusedNumericInstruction.I64Or,
10+
) = I64OrDispatcher(
11+
instruction = instruction,
12+
executor = ::I64OrExecutor,
13+
)
14+
15+
internal inline fun I64OrDispatcher(
16+
instruction: FusedNumericInstruction.I64Or,
17+
crossinline executor: Executor<FusedNumericInstruction.I64Or>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64RemSExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64RemSDispatcher(
9+
instruction: FusedNumericInstruction.I64RemS,
10+
) = I64RemSDispatcher(
11+
instruction = instruction,
12+
executor = ::I64RemSExecutor,
13+
)
14+
15+
internal inline fun I64RemSDispatcher(
16+
instruction: FusedNumericInstruction.I64RemS,
17+
crossinline executor: Executor<FusedNumericInstruction.I64RemS>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64RemUExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64RemUDispatcher(
9+
instruction: FusedNumericInstruction.I64RemU,
10+
) = I64RemUDispatcher(
11+
instruction = instruction,
12+
executor = ::I64RemUExecutor,
13+
)
14+
15+
internal inline fun I64RemUDispatcher(
16+
instruction: FusedNumericInstruction.I64RemU,
17+
crossinline executor: Executor<FusedNumericInstruction.I64RemU>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64RotlExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64RotlDispatcher(
9+
instruction: FusedNumericInstruction.I64Rotl,
10+
) = I64RotlDispatcher(
11+
instruction = instruction,
12+
executor = ::I64RotlExecutor,
13+
)
14+
15+
internal inline fun I64RotlDispatcher(
16+
instruction: FusedNumericInstruction.I64Rotl,
17+
crossinline executor: Executor<FusedNumericInstruction.I64Rotl>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64RotrExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64RotrDispatcher(
9+
instruction: FusedNumericInstruction.I64Rotr,
10+
) = I64RotrDispatcher(
11+
instruction = instruction,
12+
executor = ::I64RotrExecutor,
13+
)
14+
15+
internal inline fun I64RotrDispatcher(
16+
instruction: FusedNumericInstruction.I64Rotr,
17+
crossinline executor: Executor<FusedNumericInstruction.I64Rotr>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64ShlExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64ShlDispatcher(
9+
instruction: FusedNumericInstruction.I64Shl,
10+
) = I64ShlDispatcher(
11+
instruction = instruction,
12+
executor = ::I64ShlExecutor,
13+
)
14+
15+
internal inline fun I64ShlDispatcher(
16+
instruction: FusedNumericInstruction.I64Shl,
17+
crossinline executor: Executor<FusedNumericInstruction.I64Shl>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64ShrSExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64ShrSDispatcher(
9+
instruction: FusedNumericInstruction.I64ShrS,
10+
) = I64ShrSDispatcher(
11+
instruction = instruction,
12+
executor = ::I64ShrSExecutor,
13+
)
14+
15+
internal inline fun I64ShrSDispatcher(
16+
instruction: FusedNumericInstruction.I64ShrS,
17+
crossinline executor: Executor<FusedNumericInstruction.I64ShrS>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.charlietap.chasm.executor.invoker.dispatch.numericfused
2+
3+
import io.github.charlietap.chasm.executor.invoker.instruction.numericfused.binop.I64ShrUExecutor
4+
import io.github.charlietap.chasm.runtime.dispatch.DispatchableInstruction
5+
import io.github.charlietap.chasm.runtime.execution.Executor
6+
import io.github.charlietap.chasm.runtime.instruction.FusedNumericInstruction
7+
8+
fun I64ShrUDispatcher(
9+
instruction: FusedNumericInstruction.I64ShrU,
10+
) = I64ShrUDispatcher(
11+
instruction = instruction,
12+
executor = ::I64ShrUExecutor,
13+
)
14+
15+
internal inline fun I64ShrUDispatcher(
16+
instruction: FusedNumericInstruction.I64ShrU,
17+
crossinline executor: Executor<FusedNumericInstruction.I64ShrU>,
18+
): DispatchableInstruction = { context ->
19+
executor(context, instruction)
20+
}

0 commit comments

Comments
 (0)