def in.int2
bend-osdev-acpi@0.1.1.0 · aml_interp.bend:969
import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_value.bend as V
969def in.int2(+op: Nat, +wide: Bool, +x: W.W64, +y: W.W64) -> Result<&2, &2, E.AcpiError, W.W64>:
970 match op:
971 case 114n:
972 Done{V.AmlInt.fit(wide, W.W64.add(x, y))}
973 case 116n:
974 Done{V.AmlInt.fit(wide, W.W64.sub(x, y))}
975 case 119n:
976 Done{V.AmlInt.fit(wide, W.W64.mul(x, y))}
977 case 121n:
978 Done{in.shift(True{}, wide, x, y)}
979 case 122n:
980 Done{in.shift(False{}, wide, x, y)}
981 case 123n:
982 Done{W.W64.and(x, y)}
983 case 124n:
984 Done{V.AmlInt.fit(wide, W.W64.not(W.W64.and(x, y)))}
985 case 125n:
986 Done{W.W64.or(x, y)}
987 case 126n:
988 Done{V.AmlInt.fit(wide, W.W64.not(W.W64.or(x, y)))}
989 case 127n:
990 Done{W.W64.xor(x, y)}
991 case 133n:
992 in.mod(W.W64.is_zero(y), x, y)
993 case _:
994 Fail{E.AcpiAmlBadOpcode{U32.from_nat(op)}}