diff --git a/crates/cpu/src/decoder/simple_power_isa.rs b/crates/cpu/src/decoder/simple_power_isa.rs index b59955c..dcb85d1 100644 --- a/crates/cpu/src/decoder/simple_power_isa.rs +++ b/crates/cpu/src/decoder/simple_power_isa.rs @@ -1,19 +1,22 @@ // SPDX-License-Identifier: LGPL-3.0-or-later // See Notices.txt for copyright information -use crate::{ - config::CpuConfig, - instruction::{ - AddSubMOp, CompareMOp, CompareMode, LogicalMOp, MOp, MOpDestReg, MOpRegNum, MoveRegMOp, - OutputIntegerMode, - }, - powerisa_instructions_xml::{ - InstructionBitFieldName, InstructionBitFieldsInner, Instructions, TextLineItem, - }, - util::array_vec::{ArrayVec, Length}, +use crate::instruction::{ + AddSubMOp, CompareMOp, CompareMode, MOpDestReg, MOpRegNum, OutputIntegerMode, }; -use fayalite::{module::wire_with_loc, prelude::*, ty::StaticType}; -use std::{collections::BTreeMap, ops::RangeInclusive}; +use crate::powerisa_instructions_xml::{ + InstructionBitFieldName, InstructionBitFieldsInner, TextLineItem, +}; +use crate::util::array_vec::Length; +use crate::{ + config::CpuConfig, instruction::MOp, powerisa_instructions_xml::Instructions, + util::array_vec::ArrayVec, +}; +use fayalite::module::wire_with_loc; +use fayalite::prelude::*; +use fayalite::ty::StaticType; +use std::collections::BTreeMap; +use std::ops::RangeInclusive; #[rustfmt::skip] const FP_MNEMONICS: &[&str] = &[ @@ -119,7 +122,6 @@ const VSX_MNEMONICS: &[&str] = &[ "xxspltiw", "xxspltw", "xxperm", "xxpermr", "xxsldwi", "xxgenpcvdm", "xxgenpcvwm", "lxvkq", "xvtlsbb", ]; -#[derive(Debug)] struct DecodeState { mnemonic: &'static str, arguments: Option<&'static str>, @@ -183,8 +185,6 @@ impl_fields! { struct FieldRA(FieldGpr); #[name = "RB"] struct FieldRB(FieldGpr); - #[name = "RS"] - struct FieldRS(FieldGpr); #[name = "RT"] struct FieldRT(FieldGpr); #[name = "SI"] @@ -1024,103 +1024,6 @@ impl DecodeState { ); }); } - /// for `andi[s]./ori[s]/xori[s]` - #[hdl] - fn decode_andis_oris_xoris(&mut self) { - assert_eq!(self.arguments, Some("RA,RS,UI"), "{self:?}"); - let lut = match self.mnemonic { - "andi." | "andis." => LogicalMOp::lut_from_fn(|[a, b]| a & b), - "ori" | "oris" => LogicalMOp::lut_from_fn(|[a, b]| a | b), - "xori" | "xoris" => LogicalMOp::lut_from_fn(|[a, b]| a ^ b), - _ => unreachable!(), - }; - self.decode_scope(|this, (FieldRS(rs), FieldRA(ra), FieldUI(ui))| { - // TODO: handle SO propagation - connect( - ArrayVec::len(this.output), - 1usize.cast_to_static::>(), - ); - connect( - this.output[0], - LogicalMOp::logical_i( - MOpDestReg::new( - [gpr(ra)], - [( - MOpRegNum::POWER_ISA_CR_0_REG_NUM, - this.mnemonic.contains('.').to_expr(), - )], - ), - [gpr(rs).value], - if this.mnemonic.contains('s') { - (ui << 16).cast_to_static::>() - } else { - ui.cast_to_static::>() - }, - OutputIntegerMode.Full64(), - lut, - ), - ); - if this.mnemonic == "ori" { - #[hdl] - if rs.reg_num.cmp_eq(0u8) & ra.reg_num.cmp_eq(0u8) & ui.cmp_eq(0u8) { - // found `nop`, remove at decode time - connect( - ArrayVec::len(this.output), - 0usize.cast_to_static::>(), - ); - } - } - }); - } - /// for `and[.]/xor[.]/nand[.]/or[.]/orc[.]/nor[.]/eqv[.]/andc[.]` - #[hdl] - fn decode_and_xor_nand_or_orc_nor_eqv_andc(&mut self) { - assert_eq!(self.arguments, Some("RA,RS,RB")); - let lut = match self.mnemonic.trim_end_matches('.') { - "and" => LogicalMOp::lut_from_fn(|[a, b]| a & b), - "xor" => LogicalMOp::lut_from_fn(|[a, b]| a ^ b), - "nand" => LogicalMOp::lut_from_fn(|[a, b]| !(a & b)), - "or" => LogicalMOp::lut_from_fn(|[a, b]| a | b), - "orc" => LogicalMOp::lut_from_fn(|[a, b]| a | !b), - "nor" => LogicalMOp::lut_from_fn(|[a, b]| !(a | b)), - "eqv" => LogicalMOp::lut_from_fn(|[a, b]| a == b), - "andc" => LogicalMOp::lut_from_fn(|[a, b]| a & !b), - _ => unreachable!(), - }; - self.decode_scope( - |this, (FieldRA(ra), FieldRS(rs), FieldRB(rb), FieldRc(rc))| { - // TODO: handle SO propagation - connect( - ArrayVec::len(this.output), - 1usize.cast_to_static::>(), - ); - connect( - this.output[0], - LogicalMOp::logical( - MOpDestReg::new([gpr(ra)], [(MOpRegNum::POWER_ISA_CR_0_REG_NUM, rc)]), - [gpr(rs).value, gpr(rb).value], - 0.cast_to_static::>(), - OutputIntegerMode.Full64(), - lut, - ), - ); - if this.mnemonic == "or" { - #[hdl] - if rs.reg_num.cmp_eq(rb.reg_num) & !rc { - // found `mr` - connect( - this.output[0], - MoveRegMOp::move_reg( - MOpDestReg::new([gpr(ra)], []), - [gpr(rs).value], - 0i8.cast_to_static::>(), - ), - ); - } - } - }, - ); - } } type DecodeFn = fn(&mut DecodeState); @@ -1276,16 +1179,15 @@ const DECODE_FNS: &[(&[&str], DecodeFn)] = &[ (&["isel"], |_state| { // TODO }), - ( - &["andi.", "andis.", "ori", "oris", "xori", "xoris"], - DecodeState::decode_andis_oris_xoris, - ), ( &[ - "and", "and.", "xor", "xor.", "nand", "nand.", "or", "or.", "orc", "orc.", "nor", - "nor.", "eqv", "eqv.", "andc", "andc.", + "andi.", "andis.", "ori", "oris", "xori", "xoris", "and", "and.", "xor", "xor.", + "nand", "nand.", "or", "or.", "orc", "orc.", "nor", "nor.", "eqv", "eqv.", "andc", + "andc.", ], - DecodeState::decode_and_xor_nand_or_orc_nor_eqv_andc, + |_state| { + // TODO + }, ), (&["extsb", "extsb.", "extsh", "extsh."], |_state| { // TODO @@ -1465,13 +1367,13 @@ pub fn decode_one_insn() { let mut conditions; if let Some((mnemonic_, rest)) = mnemonic_line.split_once(char::is_whitespace) { mnemonic = mnemonic_; - let rest = rest.trim_start(); - if let Some((arguments_, rest)) = rest.split_once(char::is_whitespace) { + if let Some((arguments_, rest)) = + rest.trim_start().split_once(char::is_whitespace) + { arguments = Some(arguments_); conditions = Some(rest.trim_start()).filter(|v| !v.is_empty()); } else { - assert!(!rest.starts_with('(')); - arguments = Some(rest).filter(|v| !v.is_empty()); + arguments = None; conditions = None; } } else { diff --git a/crates/cpu/src/instruction.rs b/crates/cpu/src/instruction.rs index 8cabaea..57e4220 100644 --- a/crates/cpu/src/instruction.rs +++ b/crates/cpu/src/instruction.rs @@ -8,18 +8,11 @@ use fayalite::{ prelude::*, ty::StaticType, }; -use std::{ - borrow::Cow, - fmt, - marker::PhantomData, - ops::{ControlFlow, Range}, -}; +use std::{borrow::Cow, fmt, marker::PhantomData, ops::Range}; pub mod power_isa; -pub trait MOpInto: - MOpTrait -{ +pub trait MOpInto: MOpTrait { fn mop_into_ty(self) -> Target; fn mop_into(this: Expr) -> Expr; } @@ -33,52 +26,6 @@ impl MOpInto for T { } } -pub trait MOpVariantVisitOps { - type MOp: MOpTrait< - DestReg = ::DestReg, - SrcRegWidth = ::SrcRegWidth, - >; - type Target: MOpTrait; - fn mop_ty(&self) -> &Self::MOp; - fn target_ty(&self) -> &Self::Target; - fn path() -> Vec<&'static str>; - fn mop_into_target(&self, mop: Expr) -> Expr; -} - -impl MOpVariantVisitOps for T { - type MOp = T; - type Target = T; - fn mop_ty(&self) -> &Self::MOp { - self - } - fn target_ty(&self) -> &Self::Target { - self - } - fn path() -> Vec<&'static str> { - Vec::new() - } - fn mop_into_target(&self, mop: Expr) -> Expr { - assert_eq!(*self, mop.ty()); - mop - } -} - -pub trait MOpVariantVisitor { - type Break; - fn visit_variant>( - &mut self, - visit_ops: &VisitOps, - ) -> ControlFlow; -} - -pub trait MOpVisitVariants: MOpTrait { - fn visit_variants(visitor: &mut V, visit_ops: &VisitOps) -> ControlFlow - where - V: ?Sized + MOpVariantVisitor, - VisitOps: ?Sized + MOpVariantVisitOps, - VisitOps::Target: MOpTrait; -} - pub trait MOpTrait: Type { type Mapped: MOpTrait; type DestReg: Type; @@ -214,17 +161,6 @@ impl MOpTrait for T { } } -impl MOpVisitVariants for T { - fn visit_variants(visitor: &mut V, visit_ops: &VisitOps) -> ControlFlow - where - V: ?Sized + MOpVariantVisitor, - VisitOps: ?Sized + MOpVariantVisitOps, - VisitOps::Target: MOpTrait, - { - visitor.visit_variant(visit_ops) - } -} - #[hdl] pub enum OutputIntegerMode { Full64, @@ -520,7 +456,6 @@ macro_rules! mop_enum { $SrcRegWidth:ident: Size $(, #[MOp(get_ty = $mop_types_get_ty:expr)] $MOpTypes:ident: Type)* $(, #[Size(get_size = $sizes_get_size:expr)] $Sizes:ident: Size)* - $(, #[MOpVisitVariants] [$($visit_variants_bounds:tt)*])? > { $(#[$($first_variant_meta:tt)*])* $FirstVariant:ident($first_ty:ty), @@ -554,30 +489,6 @@ macro_rules! mop_enum { } } - mop_enum! { - @impl_visit_variants [ - enum $MOp< - $DestReg: Type, - $SrcRegWidth: Size - $(, #[MOp] $MOpTypes: Type)* - $(, #[Size(get_size = $sizes_get_size)] $Sizes: Size)* - $(, #[MOpVisitVariants] [$($visit_variants_bounds)*])? - > - ] - enum $MOp< - $DestReg: Type, - $SrcRegWidth: Size - $(, #[MOp] $MOpTypes: Type)* - $(, #[Size] $Sizes: Size)* - $(, #[MOpVisitVariants] [$($visit_variants_bounds)*])? - > { - $FirstVariant($first_ty), - $( - $Variant($ty), - )* - } - } - impl< $DestReg: Type, $SrcRegWidth: Size, @@ -657,109 +568,6 @@ macro_rules! mop_enum { } } }; - ( - @impl_visit_variants $visit_variant_args:tt - enum $MOp:ident< - $DestReg:ident: Type, - $SrcRegWidth:ident: Size - $(, #[MOp] $MOpTypes:ident: Type)* - $(, #[Size] $Sizes:ident: Size)* - $(, #[MOpVisitVariants] [$($visit_variants_bounds:tt)*])? - > { - $( - $Variant:ident($ty:ty), - )* - } - ) => { - const _: () = { - mod variant_visit_ops { - $( - #[derive(Copy, Clone)] - pub(super) struct $Variant(pub(super) VisitOps); - )* - } - - $(mop_enum! { - @impl_visit_variant $visit_variant_args - #[variant_ty = $ty] - struct variant_visit_ops::$Variant<_>(_); - })* - - impl< - $DestReg: Type, - $SrcRegWidth: Size, - $($MOpTypes: Type + MOpTrait,)* - $($Sizes: Size,)* - > MOpVisitVariants for $MOp< - $DestReg, - $SrcRegWidth, - $($MOpTypes,)* - $($Sizes,)* - > - where - $($($visit_variants_bounds)*)? - { - fn visit_variants(visitor: &mut V, visit_ops: &VisitOps) -> ControlFlow - where - V: ?Sized + MOpVariantVisitor, - VisitOps: ?Sized + MOpVariantVisitOps, - VisitOps::Target: MOpTrait, - { - $(MOpVisitVariants::visit_variants(visitor, &variant_visit_ops::$Variant(visit_ops))?;)* - std::ops::ControlFlow::Continue(()) - } - } - }; - }; - ( - @impl_visit_variant [ - enum $MOp:ident< - $DestReg:ident: Type, - $SrcRegWidth:ident: Size - $(, #[MOp] $MOpTypes:ident: Type)* - $(, #[Size(get_size = $sizes_get_size:expr)] $Sizes:ident: Size)* - $(, #[MOpVisitVariants] [$($visit_variants_bounds:tt)*])? - > - ] - #[variant_ty = $ty:ty] - struct $variant_visit_ops:ident::$Variant:ident<_>(_); - ) => { - impl< - $DestReg: Type, - $SrcRegWidth: Size, - $($MOpTypes: Type + MOpTrait,)* - $($Sizes: Size,)* - VisitOps, - > MOpVariantVisitOps for $variant_visit_ops::$Variant<&'_ VisitOps> - where - VisitOps: ?Sized + MOpVariantVisitOps>, - VisitOps::Target: MOpTrait, - { - type MOp = $ty; - type Target = VisitOps::Target; - fn mop_ty(&self) -> &Self::MOp { - &self.0.mop_ty().$Variant - } - fn target_ty(&self) -> &Self::Target { - self.0.target_ty() - } - fn path() -> Vec<&'static str> { - let mut retval = VisitOps::path(); - retval.push(stringify!($Variant)); - retval - } - fn mop_into_target(&self, mop: Expr) -> Expr { - let mop_ty = self.0.mop_ty(); - assert_eq!(mop_ty.$Variant, mop.ty()); - self.0.mop_into_target(mop_ty.$Variant(mop)) - } - } - }; ( @impl_variants #[impl_mop_into = true] @@ -787,10 +595,9 @@ macro_rules! mop_enum { $Variant:ident($ty:ty), } ) => { - impl<$DestReg: Type, $SrcRegWidth: Size, Target, $($Sizes: Size,)*> MOpInto for $ty + impl<$DestReg: Type, $SrcRegWidth: Size, Target: MOpTrait, $($Sizes: Size,)*> MOpInto for $ty where - $MOp<$DestReg, $SrcRegWidth, $($Sizes,)*>: MOpInto, - Target: MOpTrait, + $MOp<$DestReg, $SrcRegWidth, $($Sizes,)*>: MOpInto { fn mop_into_ty(self) -> Target { MOpInto::mop_into_ty($MOp[MOpTrait::dest_reg_ty(self)][MOpTrait::src_reg_width(self)]$([$sizes_get_size(self)])*) @@ -894,48 +701,16 @@ impl AddSubMOp LogicalMOp)] + #[mapped( LogicalMOp)] #[hdl(cmp_eq)] - /// computes the output like so: - /// ``` - /// fn logical_output(src: [u64; 2], lut: u8) -> u64 { - /// let mut output = 0u64; - /// for i in 0..64 { - /// let mask = 1 << i; - /// let mut lut_index = 0; - /// if (src[0] & mask) != 0 { - /// lut_index |= 1; - /// } - /// if (src[1] & mask) != 0 { - /// lut_index |= 2; - /// } - /// if (lut & (1 << lut_index)) != 0 { - /// output |= mask; - /// } - /// } - /// output - /// } - /// ``` - pub struct LogicalMOp { + pub struct LogicalMOp { #[common] - pub alu_common: AluCommonMOp, + pub alu_common: AluCommonMOp>, pub lut: UInt<4>, } } -impl LogicalMOp, ConstUsize<2>> { - pub fn lut_from_fn(f: impl Fn([bool; 2]) -> bool) -> UIntValue> { - let mut retval = 0u8; - for lut_index in 0..4 { - if f([(lut_index & 1) != 0, (lut_index & 2) != 0]) { - retval |= 1 << lut_index; - } - } - retval.cast_to_static::>() - } -} - -impl LogicalMOp> { +impl LogicalMOp { #[hdl] pub fn logical( dest: impl ToExpr, @@ -961,32 +736,6 @@ impl LogicalMOp LogicalMOp> { - #[hdl] - pub fn logical_i( - dest: impl ToExpr, - src: impl ToExpr, 1>>, - imm: impl ToExpr>, - output_integer_mode: impl ToExpr, - lut: impl ToExpr>, - ) -> Expr - where - Self: MOpInto, - { - MOpInto::mop_into( - #[hdl] - LogicalMOp { - alu_common: #[hdl] - AluCommonMOp { - common: CommonMOp::new(0_hdl_u0, dest, src, Expr::as_dyn_int(imm.to_expr())), - output_integer_mode, - }, - lut, - }, - ) - } -} - #[hdl] pub enum CompareMode { U64, @@ -1117,8 +866,7 @@ mop_enum! { pub enum AluBranchMOp { AddSub(AddSubMOp>), AddSubI(AddSubMOp>), - Logical(LogicalMOp>), - LogicalI(LogicalMOp>), + Logical(LogicalMOp), Compare(CompareMOp>), CompareI(CompareMOp>), } @@ -1182,8 +930,8 @@ mop_enum! { #[impl_mop_into = true] #[hdl] pub enum LoadStoreMOp { - Load(CommonMOp, DestReg, SrcRegWidth, ConstUsize<0>>), - Store(CommonMOp, DestReg, SrcRegWidth, ConstUsize<1>>), + Load(CommonMOp, DestReg, SrcRegWidth, ConstUsize<0>>), + Store(CommonMOp, DestReg, SrcRegWidth, ConstUsize<1>>), } } @@ -1192,49 +940,7 @@ common_mop_struct! { #[hdl(cmp_eq)] pub struct MoveRegMOp { #[common] - pub common: CommonMOp, DestReg, SrcRegWidth, ConstUsize<1>>, - } -} - -impl MOpInto for MoveRegMOp -where - UnitMOp: MOpInto, - Target: MOpTrait, -{ - fn mop_into_ty(self) -> Target { - MOpInto::mop_into_ty( - UnitMOp[MOpTrait::dest_reg_ty(self)][MOpTrait::src_reg_width(self)][self], - ) - } - fn mop_into(this: Expr) -> Expr { - MOpInto::mop_into( - MOpInto::>::mop_into_ty(this.ty()) - .TransformedMove(this), - ) - } -} - -impl MoveRegMOp { - #[hdl] - pub fn move_reg( - dest: impl ToExpr, - src: impl ToExpr, 1>>, - imm: impl ToExpr>, - ) -> Expr - where - Self: MOpInto, - { - MOpInto::mop_into( - #[hdl] - MoveRegMOp { - common: CommonMOp::new( - 0.cast_to_static::>(), - dest, - src, - Expr::as_dyn_int(imm.to_expr()), - ), - }, - ) + pub common: CommonMOp, DestReg, SrcRegWidth, ConstUsize<1>>, } } @@ -1604,115 +1310,3 @@ pub type MOp = UnitMOp< #[hdl] pub type RenamedMOp = UnitMOp>; - -#[cfg(test)] -mod tests { - use super::*; - use std::{convert::Infallible, fmt::Write, usize}; - - #[test] - fn ensure_reg_fields_are_in_the_same_place() { - struct Visitor { - dest_reg_offset: Option<(usize, String)>, - max_dest_reg_offset: usize, - min_prefix_pad: usize, - errors: Option, - } - impl MOpVariantVisitor for Visitor { - type Break = Infallible; - fn visit_variant< - VisitOps: ?Sized + MOpVariantVisitOps, - >( - &mut self, - visit_ops: &VisitOps, - ) -> ControlFlow { - self.min_prefix_pad = self - .min_prefix_pad - .min(::PrefixPad::VALUE); - let variant = visit_ops.mop_ty(); - let zeroed_variant = UInt[variant.canonical().bit_width()] - .zero() - .cast_bits_to(*variant); - let mut common_mop = CommonMOpTrait::common_mop(&zeroed_variant).into_sim_value(); - SimValue::bits_mut(&mut common_mop.dest) - .bits_mut() - .fill(false); - let with_zeros = visit_ops - .mop_into_target(Expr::from_canonical(Expr::canonical( - CommonMOpTrait::with_common_mop(&zeroed_variant, &common_mop), - ))) - .into_sim_value(); - SimValue::bits_mut(&mut common_mop.dest) - .bits_mut() - .fill(true); - let with_ones = visit_ops - .mop_into_target(Expr::from_canonical(Expr::canonical( - CommonMOpTrait::with_common_mop(&zeroed_variant, &common_mop), - ))) - .into_sim_value(); - let mut dest_reg_offset = None; - for (i, (a, b)) in SimValue::bits(&with_zeros) - .bits() - .iter() - .by_vals() - .zip(SimValue::bits(&with_ones).bits().iter().by_vals()) - .enumerate() - { - if a != b { - dest_reg_offset = Some(i); - break; - } - } - let Some(dest_reg_offset) = dest_reg_offset else { - panic!("no dest reg offset: {variant:#?}"); - }; - self.max_dest_reg_offset = self.max_dest_reg_offset.max(dest_reg_offset); - if let Some((first_dest_reg_offset, _)) = self.dest_reg_offset { - if first_dest_reg_offset != dest_reg_offset { - writeln!( - self.errors.get_or_insert_default(), - "dest_reg_offset {dest_reg_offset} doesn't match first \ - variant's dest_reg_offset {first_dest_reg_offset}\n\ - variant's path: {:?}\n\ - variant: {variant:#?}\n", - VisitOps::path(), - ) - .unwrap(); - } - } else { - self.dest_reg_offset = Some(( - dest_reg_offset, - format!( - "first variant's path: {:?}\nfirst variant: {variant:#?}", - VisitOps::path() - ), - )); - } - ControlFlow::Continue(()) - } - } - let mut visitor = Visitor { - dest_reg_offset: None, - max_dest_reg_offset: 0, - min_prefix_pad: usize::MAX, - errors: None, - }; - let ControlFlow::Continue(()) = MOp::visit_variants(&mut visitor, &MOp); - let Visitor { - dest_reg_offset: Some((_, first_variant)), - max_dest_reg_offset, - min_prefix_pad, - errors, - } = visitor - else { - panic!("no variants"); - }; - println!("max_dest_reg_offset: {max_dest_reg_offset}"); - println!("min_prefix_pad: {min_prefix_pad}"); - println!("{first_variant}"); - if let Some(errors) = errors { - panic!("{errors}"); - } - assert_eq!(min_prefix_pad, 0); - } -} diff --git a/crates/cpu/src/unit.rs b/crates/cpu/src/unit.rs index 400358c..8db75c2 100644 --- a/crates/cpu/src/unit.rs +++ b/crates/cpu/src/unit.rs @@ -4,9 +4,8 @@ use crate::{ config::CpuConfig, instruction::{ - AluBranchMOp, LoadStoreMOp, MOp, MOpDestReg, MOpInto, MOpRegNum, MOpTrait, - MOpVariantVisitOps, MOpVariantVisitor, MOpVisitVariants, RenamedMOp, UnitOutRegNum, - mop_enum, + AluBranchMOp, LoadStoreMOp, MOp, MOpDestReg, MOpInto, MOpRegNum, MOpTrait, RenamedMOp, + UnitOutRegNum, mop_enum, }, register::{FlagsMode, PRegValue}, unit::unit_base::UnitToRegAlloc, @@ -17,7 +16,6 @@ use fayalite::{ prelude::*, }; use serde::{Deserialize, Serialize}; -use std::ops::ControlFlow; pub mod alu_branch; pub mod unit_base; @@ -85,15 +83,7 @@ macro_rules! all_units { #[impl_mop_into = false] #[hdl] $(#[$enum_meta])* - $vis enum $UnitMOpEnum< - $DestReg: Type, - $SrcRegWidth: Size, - #[MOp(get_ty = $transformed_move_op_get_ty)] $TransformedMoveOp: Type, - #[MOpVisitVariants] [ - $TransformedMoveOp: MOpVisitVariants, - $($Op: MOpVisitVariants,)* - ] - > { + $vis enum $UnitMOpEnum<$DestReg: Type, $SrcRegWidth: Size, #[MOp(get_ty = $transformed_move_op_get_ty)] $TransformedMoveOp: Type> { $( $(#[$variant_meta])* $Unit($Op), diff --git a/crates/cpu/src/unit/alu_branch.rs b/crates/cpu/src/unit/alu_branch.rs index bce8cdf..f9ad6d3 100644 --- a/crates/cpu/src/unit/alu_branch.rs +++ b/crates/cpu/src/unit/alu_branch.rs @@ -232,21 +232,7 @@ fn add_sub( #[hdl] fn logical( - mop: Expr, DynSize, ConstUsize<2>>>, - flags_mode: Expr, - src_values: Expr>, -) -> Expr> { - // TODO: finish - #[hdl] - UnitResultCompleted::<_> { - value: PRegValue::zeroed(), - extra_out: (), - } -} - -#[hdl] -fn logical_i( - mop: Expr, DynSize, ConstUsize<1>>>, + mop: Expr, DynSize>>, flags_mode: Expr, src_values: Expr>, ) -> Expr> { @@ -364,23 +350,6 @@ pub fn alu_branch(config: &CpuConfig, unit_index: usize) { }, ), ), - AluBranchMOp::<_, _>::LogicalI(mop) => connect( - unit_base.execute_end, - HdlSome( - #[hdl] - ExecuteEnd::<_, _> { - unit_output: #[hdl] - UnitOutput::<_, _> { - which: MOpTrait::dest_reg(mop), - result: UnitResult[()].Completed(logical_i( - mop, - global_state.flags_mode, - src_values, - )), - }, - }, - ), - ), AluBranchMOp::<_, _>::Compare(mop) => connect( unit_base.execute_end, HdlSome( diff --git a/crates/cpu/tests/expected/decode_one_insn.vcd b/crates/cpu/tests/expected/decode_one_insn.vcd index dfc609f..d3a2ccf 100644 --- a/crates/cpu/tests/expected/decode_one_insn.vcd +++ b/crates/cpu/tests/expected/decode_one_insn.vcd @@ -132,7 +132,7 @@ $var string 1 K output_integer_mode $end $upscope $end $var wire 4 L lut $end $upscope $end -$scope struct LogicalI $end +$scope struct Compare $end $scope struct alu_common $end $scope struct common $end $var string 0 M prefix_pad $end @@ -170,9 +170,9 @@ $upscope $end $upscope $end $var string 1 W output_integer_mode $end $upscope $end -$var wire 4 X lut $end +$var string 1 X compare_mode $end $upscope $end -$scope struct Compare $end +$scope struct CompareI $end $scope struct alu_common $end $scope struct common $end $var string 0 Y prefix_pad $end @@ -212,10 +212,10 @@ $var string 1 c output_integer_mode $end $upscope $end $var string 1 d compare_mode $end $upscope $end -$scope struct CompareI $end -$scope struct alu_common $end +$upscope $end +$scope struct TransformedMove $end $scope struct common $end -$var string 0 e prefix_pad $end +$var wire 2 e prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end @@ -248,85 +248,87 @@ $var wire 1 n imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end -$var string 1 o output_integer_mode $end $upscope $end -$var string 1 p compare_mode $end -$upscope $end -$upscope $end -$scope struct TransformedMove $end -$scope struct common $end -$var wire 3 q prefix_pad $end +$scope struct LoadStore $end +$var string 1 o \$tag $end +$scope struct Load $end +$var wire 1 p prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end -$var wire 8 r value $end +$var wire 8 q value $end $upscope $end $scope struct \[1] $end -$var wire 8 s value $end +$var wire 8 r value $end $upscope $end $upscope $end $scope struct flag_regs $end $scope struct \[0] $end +$var string 1 s \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$scope struct \[1] $end $var string 1 t \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$scope struct \[1] $end -$var string 1 u \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end $upscope $end $upscope $end $scope struct src $end -$var wire 8 v \[0] $end -$var wire 8 w \[1] $end -$var wire 8 x \[2] $end +$var wire 8 u \[0] $end +$var wire 8 v \[1] $end +$var wire 8 w \[2] $end $upscope $end -$var wire 25 y imm_low $end -$var wire 1 z imm_sign $end -$scope struct _phantom $end -$upscope $end -$upscope $end -$upscope $end -$scope struct LoadStore $end -$var string 1 { \$tag $end -$scope struct Load $end -$var wire 2 | prefix_pad $end -$scope struct dest $end -$scope struct normal_regs $end -$scope struct \[0] $end -$var wire 8 } value $end -$upscope $end -$scope struct \[1] $end -$var wire 8 ~ value $end -$upscope $end -$upscope $end -$scope struct flag_regs $end -$scope struct \[0] $end -$var string 1 !" \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$scope struct \[1] $end -$var string 1 "" \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$upscope $end -$upscope $end -$scope struct src $end -$var wire 8 #" \[0] $end -$var wire 8 $" \[1] $end -$var wire 8 %" \[2] $end -$upscope $end -$var wire 25 &" imm_low $end -$var wire 1 '" imm_sign $end +$var wire 25 x imm_low $end +$var wire 1 y imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end $scope struct Store $end -$var wire 2 (" prefix_pad $end +$var wire 1 z prefix_pad $end +$scope struct dest $end +$scope struct normal_regs $end +$scope struct \[0] $end +$var wire 8 { value $end +$upscope $end +$scope struct \[1] $end +$var wire 8 | value $end +$upscope $end +$upscope $end +$scope struct flag_regs $end +$scope struct \[0] $end +$var string 1 } \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var string 1 ~ \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope struct src $end +$var wire 8 !" \[0] $end +$var wire 8 "" \[1] $end +$var wire 8 #" \[2] $end +$upscope $end +$var wire 25 $" imm_low $end +$var wire 1 %" imm_sign $end +$scope struct _phantom $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var string 1 &" \$tag $end +$scope struct AluBranch $end +$var string 1 '" \$tag $end +$scope struct AddSub $end +$scope struct alu_common $end +$scope struct common $end +$var string 0 (" prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end @@ -359,101 +361,99 @@ $var wire 1 1" imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end +$var string 1 2" output_integer_mode $end $upscope $end -$upscope $end -$scope struct \[1] $end -$var string 1 2" \$tag $end -$scope struct AluBranch $end -$var string 1 3" \$tag $end -$scope struct AddSub $end -$scope struct alu_common $end -$scope struct common $end -$var string 0 4" prefix_pad $end -$scope struct dest $end -$scope struct normal_regs $end -$scope struct \[0] $end -$var wire 8 5" value $end -$upscope $end -$scope struct \[1] $end -$var wire 8 6" value $end -$upscope $end -$upscope $end -$scope struct flag_regs $end -$scope struct \[0] $end -$var string 1 7" \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$scope struct \[1] $end -$var string 1 8" \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$upscope $end -$upscope $end -$scope struct src $end -$var wire 8 9" \[0] $end -$var wire 8 :" \[1] $end -$var wire 8 ;" \[2] $end -$upscope $end -$var wire 25 <" imm_low $end -$var wire 1 =" imm_sign $end -$scope struct _phantom $end -$upscope $end -$upscope $end -$var string 1 >" output_integer_mode $end -$upscope $end -$var wire 1 ?" invert_src0 $end -$var wire 1 @" src1_is_carry_in $end -$var wire 1 A" invert_carry_in $end -$var wire 1 B" add_pc $end +$var wire 1 3" invert_src0 $end +$var wire 1 4" src1_is_carry_in $end +$var wire 1 5" invert_carry_in $end +$var wire 1 6" add_pc $end $upscope $end $scope struct AddSubI $end $scope struct alu_common $end $scope struct common $end -$var string 0 C" prefix_pad $end +$var string 0 7" prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end -$var wire 8 D" value $end +$var wire 8 8" value $end $upscope $end $scope struct \[1] $end -$var wire 8 E" value $end +$var wire 8 9" value $end $upscope $end $upscope $end $scope struct flag_regs $end $scope struct \[0] $end -$var string 1 F" \$tag $end +$var string 1 :" \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct \[1] $end -$var string 1 G" \$tag $end +$var string 1 ;" \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $upscope $end $upscope $end $scope struct src $end -$var wire 8 H" \[0] $end -$var wire 8 I" \[1] $end -$var wire 8 J" \[2] $end +$var wire 8 <" \[0] $end +$var wire 8 =" \[1] $end +$var wire 8 >" \[2] $end $upscope $end -$var wire 25 K" imm_low $end -$var wire 1 L" imm_sign $end +$var wire 25 ?" imm_low $end +$var wire 1 @" imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end -$var string 1 M" output_integer_mode $end +$var string 1 A" output_integer_mode $end $upscope $end -$var wire 1 N" invert_src0 $end -$var wire 1 O" src1_is_carry_in $end -$var wire 1 P" invert_carry_in $end -$var wire 1 Q" add_pc $end +$var wire 1 B" invert_src0 $end +$var wire 1 C" src1_is_carry_in $end +$var wire 1 D" invert_carry_in $end +$var wire 1 E" add_pc $end $upscope $end $scope struct Logical $end $scope struct alu_common $end $scope struct common $end +$var string 0 F" prefix_pad $end +$scope struct dest $end +$scope struct normal_regs $end +$scope struct \[0] $end +$var wire 8 G" value $end +$upscope $end +$scope struct \[1] $end +$var wire 8 H" value $end +$upscope $end +$upscope $end +$scope struct flag_regs $end +$scope struct \[0] $end +$var string 1 I" \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var string 1 J" \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope struct src $end +$var wire 8 K" \[0] $end +$var wire 8 L" \[1] $end +$var wire 8 M" \[2] $end +$upscope $end +$var wire 25 N" imm_low $end +$var wire 1 O" imm_sign $end +$scope struct _phantom $end +$upscope $end +$upscope $end +$var string 1 P" output_integer_mode $end +$upscope $end +$var wire 4 Q" lut $end +$upscope $end +$scope struct Compare $end +$scope struct alu_common $end +$scope struct common $end $var string 0 R" prefix_pad $end $scope struct dest $end $scope struct normal_regs $end @@ -489,9 +489,9 @@ $upscope $end $upscope $end $var string 1 \" output_integer_mode $end $upscope $end -$var wire 4 ]" lut $end +$var string 1 ]" compare_mode $end $upscope $end -$scope struct LogicalI $end +$scope struct CompareI $end $scope struct alu_common $end $scope struct common $end $var string 0 ^" prefix_pad $end @@ -529,12 +529,12 @@ $upscope $end $upscope $end $var string 1 h" output_integer_mode $end $upscope $end -$var wire 4 i" lut $end +$var string 1 i" compare_mode $end $upscope $end -$scope struct Compare $end -$scope struct alu_common $end +$upscope $end +$scope struct TransformedMove $end $scope struct common $end -$var string 0 j" prefix_pad $end +$var wire 2 j" prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end @@ -567,154 +567,74 @@ $var wire 1 s" imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end -$var string 1 t" output_integer_mode $end $upscope $end -$var string 1 u" compare_mode $end -$upscope $end -$scope struct CompareI $end -$scope struct alu_common $end -$scope struct common $end -$var string 0 v" prefix_pad $end +$scope struct LoadStore $end +$var string 1 t" \$tag $end +$scope struct Load $end +$var wire 1 u" prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end -$var wire 8 w" value $end +$var wire 8 v" value $end $upscope $end $scope struct \[1] $end -$var wire 8 x" value $end +$var wire 8 w" value $end $upscope $end $upscope $end $scope struct flag_regs $end $scope struct \[0] $end +$var string 1 x" \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$scope struct \[1] $end $var string 1 y" \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$scope struct \[1] $end -$var string 1 z" \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end $upscope $end $upscope $end $scope struct src $end -$var wire 8 {" \[0] $end -$var wire 8 |" \[1] $end -$var wire 8 }" \[2] $end +$var wire 8 z" \[0] $end +$var wire 8 {" \[1] $end +$var wire 8 |" \[2] $end $upscope $end -$var wire 25 ~" imm_low $end -$var wire 1 !# imm_sign $end -$scope struct _phantom $end -$upscope $end -$upscope $end -$var string 1 "# output_integer_mode $end -$upscope $end -$var string 1 ## compare_mode $end -$upscope $end -$upscope $end -$scope struct TransformedMove $end -$scope struct common $end -$var wire 3 $# prefix_pad $end -$scope struct dest $end -$scope struct normal_regs $end -$scope struct \[0] $end -$var wire 8 %# value $end -$upscope $end -$scope struct \[1] $end -$var wire 8 &# value $end -$upscope $end -$upscope $end -$scope struct flag_regs $end -$scope struct \[0] $end -$var string 1 '# \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$scope struct \[1] $end -$var string 1 (# \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$upscope $end -$upscope $end -$scope struct src $end -$var wire 8 )# \[0] $end -$var wire 8 *# \[1] $end -$var wire 8 +# \[2] $end -$upscope $end -$var wire 25 ,# imm_low $end -$var wire 1 -# imm_sign $end -$scope struct _phantom $end -$upscope $end -$upscope $end -$upscope $end -$scope struct LoadStore $end -$var string 1 .# \$tag $end -$scope struct Load $end -$var wire 2 /# prefix_pad $end -$scope struct dest $end -$scope struct normal_regs $end -$scope struct \[0] $end -$var wire 8 0# value $end -$upscope $end -$scope struct \[1] $end -$var wire 8 1# value $end -$upscope $end -$upscope $end -$scope struct flag_regs $end -$scope struct \[0] $end -$var string 1 2# \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$scope struct \[1] $end -$var string 1 3# \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$upscope $end -$upscope $end -$scope struct src $end -$var wire 8 4# \[0] $end -$var wire 8 5# \[1] $end -$var wire 8 6# \[2] $end -$upscope $end -$var wire 25 7# imm_low $end -$var wire 1 8# imm_sign $end +$var wire 25 }" imm_low $end +$var wire 1 ~" imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end $scope struct Store $end -$var wire 2 9# prefix_pad $end +$var wire 1 !# prefix_pad $end $scope struct dest $end $scope struct normal_regs $end $scope struct \[0] $end -$var wire 8 :# value $end +$var wire 8 "# value $end $upscope $end $scope struct \[1] $end -$var wire 8 ;# value $end +$var wire 8 ## value $end $upscope $end $upscope $end $scope struct flag_regs $end $scope struct \[0] $end -$var string 1 <# \$tag $end +$var string 1 $# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct \[1] $end -$var string 1 =# \$tag $end +$var string 1 %# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $upscope $end $upscope $end $scope struct src $end -$var wire 8 ># \[0] $end -$var wire 8 ?# \[1] $end -$var wire 8 @# \[2] $end +$var wire 8 &# \[0] $end +$var wire 8 '# \[1] $end +$var wire 8 (# \[2] $end $upscope $end -$var wire 25 A# imm_low $end -$var wire 1 B# imm_sign $end +$var wire 25 )# imm_low $end +$var wire 1 *# imm_sign $end $scope struct _phantom $end $upscope $end $upscope $end @@ -722,838 +642,662 @@ $upscope $end $upscope $end $upscope $end $scope struct len $end -$var wire 2 C# value $end -$var string 1 D# range $end +$var wire 2 +# value $end +$var string 1 ,# range $end $upscope $end $upscope $end -$var wire 1 E# is_illegal $end -$var wire 32 F# first_input $end +$var wire 1 -# is_illegal $end +$var wire 32 .# first_input $end $scope struct second_input $end -$var string 1 G# \$tag $end -$var wire 32 H# HdlSome $end +$var string 1 /# \$tag $end +$var wire 32 0# HdlSome $end $upscope $end -$var wire 1 I# second_input_used $end -$var wire 16 J# addi_SI $end -$var wire 5 K# addi_RA $end -$var wire 5 L# addi_RT $end +$var wire 1 1# second_input_used $end +$var wire 16 2# addi_SI $end +$var wire 5 3# addi_RA $end +$var wire 5 4# addi_RT $end $scope struct power_isa_gpr_or_zero_reg $end -$var wire 8 M# value $end +$var wire 8 5# value $end $upscope $end -$var wire 18 N# paddi_si0 $end -$var wire 1 O# paddi_R $end -$var wire 16 P# paddi_si1 $end -$var wire 5 Q# paddi_RA $end -$var wire 5 R# paddi_RT $end +$var wire 18 6# paddi_si0 $end +$var wire 1 7# paddi_R $end +$var wire 16 8# paddi_si1 $end +$var wire 5 9# paddi_RA $end +$var wire 5 :# paddi_RT $end $scope struct power_isa_gpr_or_zero_reg_2 $end -$var wire 8 S# value $end +$var wire 8 ;# value $end $upscope $end -$var wire 16 T# addis_SI $end -$var wire 5 U# addis_RA $end -$var wire 5 V# addis_RT $end +$var wire 16 <# addis_SI $end +$var wire 5 =# addis_RA $end +$var wire 5 ># addis_RT $end $scope struct power_isa_gpr_or_zero_reg_3 $end -$var wire 8 W# value $end +$var wire 8 ?# value $end $upscope $end -$var wire 1 X# addpcis_d2 $end -$var wire 10 Y# addpcis_d0 $end -$var wire 5 Z# addpcis_d1 $end -$var wire 5 [# addpcis_RT $end -$var wire 5 \# add_RB $end -$var wire 5 ]# add_RA $end -$var wire 5 ^# add_RT $end +$var wire 1 @# addpcis_d2 $end +$var wire 10 A# addpcis_d0 $end +$var wire 5 B# addpcis_d1 $end +$var wire 5 C# addpcis_RT $end +$var wire 5 D# add_RB $end +$var wire 5 E# add_RA $end +$var wire 5 F# add_RT $end $scope struct flag_reg_0 $end -$var string 1 _# \$tag $end +$var string 1 G# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1 $end -$var string 1 `# \$tag $end +$var string 1 H# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 a# add__RB $end -$var wire 5 b# add__RA $end -$var wire 5 c# add__RT $end +$var wire 5 I# add__RB $end +$var wire 5 J# add__RA $end +$var wire 5 K# add__RT $end $scope struct flag_reg_0_2 $end -$var string 1 d# \$tag $end +$var string 1 L# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_2 $end -$var string 1 e# \$tag $end +$var string 1 M# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 f# addo_RB $end -$var wire 5 g# addo_RA $end -$var wire 5 h# addo_RT $end +$var wire 5 N# addo_RB $end +$var wire 5 O# addo_RA $end +$var wire 5 P# addo_RT $end $scope struct flag_reg_0_3 $end -$var string 1 i# \$tag $end +$var string 1 Q# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_3 $end -$var string 1 j# \$tag $end +$var string 1 R# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 k# addo__RB $end -$var wire 5 l# addo__RA $end -$var wire 5 m# addo__RT $end +$var wire 5 S# addo__RB $end +$var wire 5 T# addo__RA $end +$var wire 5 U# addo__RT $end $scope struct flag_reg_0_4 $end -$var string 1 n# \$tag $end +$var string 1 V# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_4 $end -$var string 1 o# \$tag $end +$var string 1 W# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 16 p# addic_SI $end -$var wire 5 q# addic_RA $end -$var wire 5 r# addic_RT $end +$var wire 16 X# addic_SI $end +$var wire 5 Y# addic_RA $end +$var wire 5 Z# addic_RT $end $scope struct flag_reg_1_5 $end -$var string 1 s# \$tag $end +$var string 1 [# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 16 t# addic__SI $end -$var wire 5 u# addic__RA $end -$var wire 5 v# addic__RT $end +$var wire 16 \# addic__SI $end +$var wire 5 ]# addic__RA $end +$var wire 5 ^# addic__RT $end $scope struct flag_reg_1_6 $end -$var string 1 w# \$tag $end +$var string 1 _# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 x# subf_RB $end -$var wire 5 y# subf_RA $end -$var wire 5 z# subf_RT $end +$var wire 5 `# subf_RB $end +$var wire 5 a# subf_RA $end +$var wire 5 b# subf_RT $end $scope struct flag_reg_0_5 $end -$var string 1 {# \$tag $end +$var string 1 c# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_7 $end -$var string 1 |# \$tag $end +$var string 1 d# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 }# subf__RB $end -$var wire 5 ~# subf__RA $end -$var wire 5 !$ subf__RT $end +$var wire 5 e# subf__RB $end +$var wire 5 f# subf__RA $end +$var wire 5 g# subf__RT $end $scope struct flag_reg_0_6 $end -$var string 1 "$ \$tag $end +$var string 1 h# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_8 $end -$var string 1 #$ \$tag $end +$var string 1 i# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 $$ subfo_RB $end -$var wire 5 %$ subfo_RA $end -$var wire 5 &$ subfo_RT $end +$var wire 5 j# subfo_RB $end +$var wire 5 k# subfo_RA $end +$var wire 5 l# subfo_RT $end $scope struct flag_reg_0_7 $end -$var string 1 '$ \$tag $end +$var string 1 m# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_9 $end -$var string 1 ($ \$tag $end +$var string 1 n# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 )$ subfo__RB $end -$var wire 5 *$ subfo__RA $end -$var wire 5 +$ subfo__RT $end +$var wire 5 o# subfo__RB $end +$var wire 5 p# subfo__RA $end +$var wire 5 q# subfo__RT $end $scope struct flag_reg_0_8 $end -$var string 1 ,$ \$tag $end +$var string 1 r# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_10 $end -$var string 1 -$ \$tag $end +$var string 1 s# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 16 .$ subfic_SI $end -$var wire 5 /$ subfic_RA $end -$var wire 5 0$ subfic_RT $end +$var wire 16 t# subfic_SI $end +$var wire 5 u# subfic_RA $end +$var wire 5 v# subfic_RT $end $scope struct flag_reg_1_11 $end -$var string 1 1$ \$tag $end +$var string 1 w# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 2$ addc_RB $end -$var wire 5 3$ addc_RA $end -$var wire 5 4$ addc_RT $end +$var wire 5 x# addc_RB $end +$var wire 5 y# addc_RA $end +$var wire 5 z# addc_RT $end $scope struct flag_reg_0_9 $end -$var string 1 5$ \$tag $end +$var string 1 {# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_12 $end -$var string 1 6$ \$tag $end +$var string 1 |# \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 7$ addc__RB $end -$var wire 5 8$ addc__RA $end -$var wire 5 9$ addc__RT $end +$var wire 5 }# addc__RB $end +$var wire 5 ~# addc__RA $end +$var wire 5 !$ addc__RT $end $scope struct flag_reg_0_10 $end -$var string 1 :$ \$tag $end +$var string 1 "$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_13 $end -$var string 1 ;$ \$tag $end +$var string 1 #$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 <$ addco_RB $end -$var wire 5 =$ addco_RA $end -$var wire 5 >$ addco_RT $end +$var wire 5 $$ addco_RB $end +$var wire 5 %$ addco_RA $end +$var wire 5 &$ addco_RT $end $scope struct flag_reg_0_11 $end -$var string 1 ?$ \$tag $end +$var string 1 '$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_14 $end -$var string 1 @$ \$tag $end +$var string 1 ($ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 A$ addco__RB $end -$var wire 5 B$ addco__RA $end -$var wire 5 C$ addco__RT $end +$var wire 5 )$ addco__RB $end +$var wire 5 *$ addco__RA $end +$var wire 5 +$ addco__RT $end $scope struct flag_reg_0_12 $end -$var string 1 D$ \$tag $end +$var string 1 ,$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_15 $end -$var string 1 E$ \$tag $end +$var string 1 -$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 F$ subfc_RB $end -$var wire 5 G$ subfc_RA $end -$var wire 5 H$ subfc_RT $end +$var wire 5 .$ subfc_RB $end +$var wire 5 /$ subfc_RA $end +$var wire 5 0$ subfc_RT $end $scope struct flag_reg_0_13 $end -$var string 1 I$ \$tag $end +$var string 1 1$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_16 $end -$var string 1 J$ \$tag $end +$var string 1 2$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 K$ subfc__RB $end -$var wire 5 L$ subfc__RA $end -$var wire 5 M$ subfc__RT $end +$var wire 5 3$ subfc__RB $end +$var wire 5 4$ subfc__RA $end +$var wire 5 5$ subfc__RT $end $scope struct flag_reg_0_14 $end -$var string 1 N$ \$tag $end +$var string 1 6$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_17 $end -$var string 1 O$ \$tag $end +$var string 1 7$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 P$ subfco_RB $end -$var wire 5 Q$ subfco_RA $end -$var wire 5 R$ subfco_RT $end +$var wire 5 8$ subfco_RB $end +$var wire 5 9$ subfco_RA $end +$var wire 5 :$ subfco_RT $end $scope struct flag_reg_0_15 $end -$var string 1 S$ \$tag $end +$var string 1 ;$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_18 $end -$var string 1 T$ \$tag $end +$var string 1 <$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 U$ subfco__RB $end -$var wire 5 V$ subfco__RA $end -$var wire 5 W$ subfco__RT $end +$var wire 5 =$ subfco__RB $end +$var wire 5 >$ subfco__RA $end +$var wire 5 ?$ subfco__RT $end $scope struct flag_reg_0_16 $end -$var string 1 X$ \$tag $end +$var string 1 @$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_19 $end -$var string 1 Y$ \$tag $end +$var string 1 A$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 Z$ adde_RB $end -$var wire 5 [$ adde_RA $end -$var wire 5 \$ adde_RT $end +$var wire 5 B$ adde_RB $end +$var wire 5 C$ adde_RA $end +$var wire 5 D$ adde_RT $end $scope struct flag_reg_0_17 $end -$var string 1 ]$ \$tag $end +$var string 1 E$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_20 $end -$var string 1 ^$ \$tag $end +$var string 1 F$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 _$ adde__RB $end -$var wire 5 `$ adde__RA $end -$var wire 5 a$ adde__RT $end +$var wire 5 G$ adde__RB $end +$var wire 5 H$ adde__RA $end +$var wire 5 I$ adde__RT $end $scope struct flag_reg_0_18 $end -$var string 1 b$ \$tag $end +$var string 1 J$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_21 $end -$var string 1 c$ \$tag $end +$var string 1 K$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 d$ addeo_RB $end -$var wire 5 e$ addeo_RA $end -$var wire 5 f$ addeo_RT $end +$var wire 5 L$ addeo_RB $end +$var wire 5 M$ addeo_RA $end +$var wire 5 N$ addeo_RT $end $scope struct flag_reg_0_19 $end -$var string 1 g$ \$tag $end +$var string 1 O$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_22 $end -$var string 1 h$ \$tag $end +$var string 1 P$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 i$ addeo__RB $end -$var wire 5 j$ addeo__RA $end -$var wire 5 k$ addeo__RT $end +$var wire 5 Q$ addeo__RB $end +$var wire 5 R$ addeo__RA $end +$var wire 5 S$ addeo__RT $end $scope struct flag_reg_0_20 $end -$var string 1 l$ \$tag $end +$var string 1 T$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_23 $end -$var string 1 m$ \$tag $end +$var string 1 U$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 n$ subfe_RB $end -$var wire 5 o$ subfe_RA $end -$var wire 5 p$ subfe_RT $end +$var wire 5 V$ subfe_RB $end +$var wire 5 W$ subfe_RA $end +$var wire 5 X$ subfe_RT $end $scope struct flag_reg_0_21 $end -$var string 1 q$ \$tag $end +$var string 1 Y$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_24 $end -$var string 1 r$ \$tag $end +$var string 1 Z$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 s$ subfe__RB $end -$var wire 5 t$ subfe__RA $end -$var wire 5 u$ subfe__RT $end +$var wire 5 [$ subfe__RB $end +$var wire 5 \$ subfe__RA $end +$var wire 5 ]$ subfe__RT $end $scope struct flag_reg_0_22 $end -$var string 1 v$ \$tag $end +$var string 1 ^$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_25 $end -$var string 1 w$ \$tag $end +$var string 1 _$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 x$ subfeo_RB $end -$var wire 5 y$ subfeo_RA $end -$var wire 5 z$ subfeo_RT $end +$var wire 5 `$ subfeo_RB $end +$var wire 5 a$ subfeo_RA $end +$var wire 5 b$ subfeo_RT $end $scope struct flag_reg_0_23 $end -$var string 1 {$ \$tag $end +$var string 1 c$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_26 $end -$var string 1 |$ \$tag $end +$var string 1 d$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 }$ subfeo__RB $end -$var wire 5 ~$ subfeo__RA $end -$var wire 5 !% subfeo__RT $end +$var wire 5 e$ subfeo__RB $end +$var wire 5 f$ subfeo__RA $end +$var wire 5 g$ subfeo__RT $end $scope struct flag_reg_0_24 $end -$var string 1 "% \$tag $end +$var string 1 h$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_27 $end -$var string 1 #% \$tag $end +$var string 1 i$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 $% addme_RA $end -$var wire 5 %% addme_RT $end +$var wire 5 j$ addme_RA $end +$var wire 5 k$ addme_RT $end $scope struct flag_reg_0_25 $end -$var string 1 &% \$tag $end +$var string 1 l$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_28 $end -$var string 1 '% \$tag $end +$var string 1 m$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 (% addme__RA $end -$var wire 5 )% addme__RT $end +$var wire 5 n$ addme__RA $end +$var wire 5 o$ addme__RT $end $scope struct flag_reg_0_26 $end -$var string 1 *% \$tag $end +$var string 1 p$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_29 $end -$var string 1 +% \$tag $end +$var string 1 q$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 ,% addmeo_RA $end -$var wire 5 -% addmeo_RT $end +$var wire 5 r$ addmeo_RA $end +$var wire 5 s$ addmeo_RT $end $scope struct flag_reg_0_27 $end -$var string 1 .% \$tag $end +$var string 1 t$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_30 $end -$var string 1 /% \$tag $end +$var string 1 u$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 0% addmeo__RA $end -$var wire 5 1% addmeo__RT $end +$var wire 5 v$ addmeo__RA $end +$var wire 5 w$ addmeo__RT $end $scope struct flag_reg_0_28 $end -$var string 1 2% \$tag $end +$var string 1 x$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_31 $end -$var string 1 3% \$tag $end +$var string 1 y$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 4% addze_RA $end -$var wire 5 5% addze_RT $end +$var wire 5 z$ addze_RA $end +$var wire 5 {$ addze_RT $end $scope struct flag_reg_0_29 $end -$var string 1 6% \$tag $end +$var string 1 |$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_32 $end -$var string 1 7% \$tag $end +$var string 1 }$ \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 8% addze__RA $end -$var wire 5 9% addze__RT $end +$var wire 5 ~$ addze__RA $end +$var wire 5 !% addze__RT $end $scope struct flag_reg_0_30 $end -$var string 1 :% \$tag $end +$var string 1 "% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_33 $end -$var string 1 ;% \$tag $end +$var string 1 #% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 <% addzeo_RA $end -$var wire 5 =% addzeo_RT $end +$var wire 5 $% addzeo_RA $end +$var wire 5 %% addzeo_RT $end $scope struct flag_reg_0_31 $end -$var string 1 >% \$tag $end +$var string 1 &% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_34 $end -$var string 1 ?% \$tag $end +$var string 1 '% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 @% addzeo__RA $end -$var wire 5 A% addzeo__RT $end +$var wire 5 (% addzeo__RA $end +$var wire 5 )% addzeo__RT $end $scope struct flag_reg_0_32 $end -$var string 1 B% \$tag $end +$var string 1 *% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_35 $end -$var string 1 C% \$tag $end +$var string 1 +% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 D% subfme_RA $end -$var wire 5 E% subfme_RT $end +$var wire 5 ,% subfme_RA $end +$var wire 5 -% subfme_RT $end $scope struct flag_reg_0_33 $end -$var string 1 F% \$tag $end +$var string 1 .% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_36 $end -$var string 1 G% \$tag $end +$var string 1 /% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 H% subfme__RA $end -$var wire 5 I% subfme__RT $end +$var wire 5 0% subfme__RA $end +$var wire 5 1% subfme__RT $end $scope struct flag_reg_0_34 $end -$var string 1 J% \$tag $end +$var string 1 2% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_37 $end -$var string 1 K% \$tag $end +$var string 1 3% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 L% subfmeo_RA $end -$var wire 5 M% subfmeo_RT $end +$var wire 5 4% subfmeo_RA $end +$var wire 5 5% subfmeo_RT $end $scope struct flag_reg_0_35 $end -$var string 1 N% \$tag $end +$var string 1 6% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_38 $end -$var string 1 O% \$tag $end +$var string 1 7% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 P% subfmeo__RA $end -$var wire 5 Q% subfmeo__RT $end +$var wire 5 8% subfmeo__RA $end +$var wire 5 9% subfmeo__RT $end $scope struct flag_reg_0_36 $end -$var string 1 R% \$tag $end +$var string 1 :% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_39 $end -$var string 1 S% \$tag $end +$var string 1 ;% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 T% subfze_RA $end -$var wire 5 U% subfze_RT $end +$var wire 5 <% subfze_RA $end +$var wire 5 =% subfze_RT $end $scope struct flag_reg_0_37 $end -$var string 1 V% \$tag $end +$var string 1 >% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_40 $end -$var string 1 W% \$tag $end +$var string 1 ?% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 X% subfze__RA $end -$var wire 5 Y% subfze__RT $end +$var wire 5 @% subfze__RA $end +$var wire 5 A% subfze__RT $end $scope struct flag_reg_0_38 $end -$var string 1 Z% \$tag $end +$var string 1 B% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_41 $end -$var string 1 [% \$tag $end +$var string 1 C% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 \% subfzeo_RA $end -$var wire 5 ]% subfzeo_RT $end +$var wire 5 D% subfzeo_RA $end +$var wire 5 E% subfzeo_RT $end $scope struct flag_reg_0_39 $end -$var string 1 ^% \$tag $end +$var string 1 F% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_42 $end -$var string 1 _% \$tag $end +$var string 1 G% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 `% subfzeo__RA $end -$var wire 5 a% subfzeo__RT $end +$var wire 5 H% subfzeo__RA $end +$var wire 5 I% subfzeo__RT $end $scope struct flag_reg_0_40 $end -$var string 1 b% \$tag $end +$var string 1 J% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_43 $end -$var string 1 c% \$tag $end +$var string 1 K% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 d% neg_RA $end -$var wire 5 e% neg_RT $end +$var wire 5 L% neg_RA $end +$var wire 5 M% neg_RT $end $scope struct flag_reg_0_41 $end -$var string 1 f% \$tag $end +$var string 1 N% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_44 $end -$var string 1 g% \$tag $end +$var string 1 O% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 h% neg__RA $end -$var wire 5 i% neg__RT $end +$var wire 5 P% neg__RA $end +$var wire 5 Q% neg__RT $end $scope struct flag_reg_0_42 $end -$var string 1 j% \$tag $end +$var string 1 R% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_45 $end -$var string 1 k% \$tag $end +$var string 1 S% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 l% nego_RA $end -$var wire 5 m% nego_RT $end +$var wire 5 T% nego_RA $end +$var wire 5 U% nego_RT $end $scope struct flag_reg_0_43 $end -$var string 1 n% \$tag $end +$var string 1 V% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_46 $end -$var string 1 o% \$tag $end +$var string 1 W% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 5 p% nego__RA $end -$var wire 5 q% nego__RT $end +$var wire 5 X% nego__RA $end +$var wire 5 Y% nego__RT $end $scope struct flag_reg_0_44 $end -$var string 1 r% \$tag $end +$var string 1 Z% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end $scope struct flag_reg_1_47 $end -$var string 1 s% \$tag $end +$var string 1 [% \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 16 t% cmpi_SI $end -$var wire 5 u% cmpi_RA $end -$var wire 1 v% cmpi_L $end -$var wire 3 w% cmpi_BF $end -$var string 1 x% compare_mode $end +$var wire 16 \% cmpi_SI $end +$var wire 5 ]% cmpi_RA $end +$var wire 1 ^% cmpi_L $end +$var wire 3 _% cmpi_BF $end +$var string 1 `% compare_mode $end $scope struct power_isa_cr_reg $end +$var wire 8 a% value $end +$upscope $end +$var wire 5 b% cmp_RB $end +$var wire 5 c% cmp_RA $end +$var wire 1 d% cmp_L $end +$var wire 3 e% cmp_BF $end +$var string 1 f% compare_mode_2 $end +$scope struct power_isa_cr_reg_2 $end +$var wire 8 g% value $end +$upscope $end +$var wire 16 h% cmpli_UI $end +$var wire 5 i% cmpli_RA $end +$var wire 1 j% cmpli_L $end +$var wire 3 k% cmpli_BF $end +$var string 1 l% compare_mode_3 $end +$scope struct power_isa_cr_reg_3 $end +$var wire 8 m% value $end +$upscope $end +$var wire 5 n% cmpl_RB $end +$var wire 5 o% cmpl_RA $end +$var wire 1 p% cmpl_L $end +$var wire 3 q% cmpl_BF $end +$var string 1 r% compare_mode_4 $end +$scope struct power_isa_cr_reg_4 $end +$var wire 8 s% value $end +$upscope $end +$var wire 5 t% cmprb_RB $end +$var wire 5 u% cmprb_RA $end +$var wire 1 v% cmprb_L $end +$var wire 3 w% cmprb_BF $end +$var string 1 x% compare_mode_5 $end +$scope struct power_isa_cr_reg_5 $end $var wire 8 y% value $end $upscope $end -$var wire 5 z% cmp_RB $end -$var wire 5 {% cmp_RA $end -$var wire 1 |% cmp_L $end -$var wire 3 }% cmp_BF $end -$var string 1 ~% compare_mode_2 $end -$scope struct power_isa_cr_reg_2 $end -$var wire 8 !& value $end -$upscope $end -$var wire 16 "& cmpli_UI $end -$var wire 5 #& cmpli_RA $end -$var wire 1 $& cmpli_L $end -$var wire 3 %& cmpli_BF $end -$var string 1 && compare_mode_3 $end -$scope struct power_isa_cr_reg_3 $end -$var wire 8 '& value $end -$upscope $end -$var wire 5 (& cmpl_RB $end -$var wire 5 )& cmpl_RA $end -$var wire 1 *& cmpl_L $end -$var wire 3 +& cmpl_BF $end -$var string 1 ,& compare_mode_4 $end -$scope struct power_isa_cr_reg_4 $end -$var wire 8 -& value $end -$upscope $end -$var wire 5 .& cmprb_RB $end -$var wire 5 /& cmprb_RA $end -$var wire 1 0& cmprb_L $end -$var wire 3 1& cmprb_BF $end -$var string 1 2& compare_mode_5 $end -$scope struct power_isa_cr_reg_5 $end -$var wire 8 3& value $end -$upscope $end -$var wire 5 4& cmpeqb_RB $end -$var wire 5 5& cmpeqb_RA $end -$var wire 3 6& cmpeqb_BF $end +$var wire 5 z% cmpeqb_RB $end +$var wire 5 {% cmpeqb_RA $end +$var wire 3 |% cmpeqb_BF $end $scope struct power_isa_cr_reg_6 $end -$var wire 8 7& value $end -$upscope $end -$var wire 16 8& andi__UI $end -$var wire 5 9& andi__RA $end -$var wire 5 :& andi__RS $end -$scope struct flag_reg_1_48 $end -$var string 1 ;& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 16 <& andis__UI $end -$var wire 5 =& andis__RA $end -$var wire 5 >& andis__RS $end -$scope struct flag_reg_1_49 $end -$var string 1 ?& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 16 @& ori_UI $end -$var wire 5 A& ori_RA $end -$var wire 5 B& ori_RS $end -$scope struct flag_reg_1_50 $end -$var string 1 C& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 16 D& oris_UI $end -$var wire 5 E& oris_RA $end -$var wire 5 F& oris_RS $end -$scope struct flag_reg_1_51 $end -$var string 1 G& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 16 H& xori_UI $end -$var wire 5 I& xori_RA $end -$var wire 5 J& xori_RS $end -$scope struct flag_reg_1_52 $end -$var string 1 K& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 16 L& xoris_UI $end -$var wire 5 M& xoris_RA $end -$var wire 5 N& xoris_RS $end -$scope struct flag_reg_1_53 $end -$var string 1 O& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 P& and_RB $end -$var wire 5 Q& and_RA $end -$var wire 5 R& and_RS $end -$scope struct flag_reg_1_54 $end -$var string 1 S& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 T& and__RB $end -$var wire 5 U& and__RA $end -$var wire 5 V& and__RS $end -$scope struct flag_reg_1_55 $end -$var string 1 W& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 X& xor_RB $end -$var wire 5 Y& xor_RA $end -$var wire 5 Z& xor_RS $end -$scope struct flag_reg_1_56 $end -$var string 1 [& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 \& xor__RB $end -$var wire 5 ]& xor__RA $end -$var wire 5 ^& xor__RS $end -$scope struct flag_reg_1_57 $end -$var string 1 _& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 `& nand_RB $end -$var wire 5 a& nand_RA $end -$var wire 5 b& nand_RS $end -$scope struct flag_reg_1_58 $end -$var string 1 c& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 d& nand__RB $end -$var wire 5 e& nand__RA $end -$var wire 5 f& nand__RS $end -$scope struct flag_reg_1_59 $end -$var string 1 g& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 h& or_RB $end -$var wire 5 i& or_RA $end -$var wire 5 j& or_RS $end -$scope struct flag_reg_1_60 $end -$var string 1 k& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 l& or__RB $end -$var wire 5 m& or__RA $end -$var wire 5 n& or__RS $end -$scope struct flag_reg_1_61 $end -$var string 1 o& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 p& orc_RB $end -$var wire 5 q& orc_RA $end -$var wire 5 r& orc_RS $end -$scope struct flag_reg_1_62 $end -$var string 1 s& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 t& orc__RB $end -$var wire 5 u& orc__RA $end -$var wire 5 v& orc__RS $end -$scope struct flag_reg_1_63 $end -$var string 1 w& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 x& nor_RB $end -$var wire 5 y& nor_RA $end -$var wire 5 z& nor_RS $end -$scope struct flag_reg_1_64 $end -$var string 1 {& \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 |& nor__RB $end -$var wire 5 }& nor__RA $end -$var wire 5 ~& nor__RS $end -$scope struct flag_reg_1_65 $end -$var string 1 !' \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 "' eqv_RB $end -$var wire 5 #' eqv_RA $end -$var wire 5 $' eqv_RS $end -$scope struct flag_reg_1_66 $end -$var string 1 %' \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 &' eqv__RB $end -$var wire 5 '' eqv__RA $end -$var wire 5 (' eqv__RS $end -$scope struct flag_reg_1_67 $end -$var string 1 )' \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 *' andc_RB $end -$var wire 5 +' andc_RA $end -$var wire 5 ,' andc_RS $end -$scope struct flag_reg_1_68 $end -$var string 1 -' \$tag $end -$scope struct HdlSome $end -$upscope $end -$upscope $end -$var wire 5 .' andc__RB $end -$var wire 5 /' andc__RA $end -$var wire 5 0' andc__RS $end -$scope struct flag_reg_1_69 $end -$var string 1 1' \$tag $end -$scope struct HdlSome $end -$upscope $end +$var wire 8 }% value $end $upscope $end $upscope $end $enddefinitions $end @@ -1613,7 +1357,7 @@ b0 T b1001000110100 U 0V sFull64\x20(0) W -b0 X +sU64\x20(0) X s0 Y b100011 Z b0 [ @@ -1626,81 +1370,81 @@ b1001000110100 a 0b sFull64\x20(0) c sU64\x20(0) d -s0 e -b100011 f +b1 e +b1000110 f b0 g sHdlNone\x20(0) h sHdlNone\x20(0) i -b100100 j +b1001000 j b0 k b0 l -b1001000110100 m +b10010001101000 m 0n -sFull64\x20(0) o -sU64\x20(0) p -b1 q -b100011 r -b0 s +sStore\x20(1) o +0p +b1000110 q +b0 r +sHdlNone\x20(0) s sHdlNone\x20(0) t -sHdlNone\x20(0) u -b100100 v +b1001000 u +b0 v b0 w -b0 x -b1001000110100 y +b10010001101000 x +0y 0z -sStore\x20(1) { +b1000110 { b0 | -b100011 } -b0 ~ -sHdlNone\x20(0) !" -sHdlNone\x20(0) "" -b100100 #" -b0 $" -b0 %" -b1001000110100 &" -0'" -b0 (" -b100011 )" +sHdlNone\x20(0) } +sHdlNone\x20(0) ~ +b1001000 !" +b0 "" +b0 #" +b10010001101000 $" +0%" +sAluBranch\x20(0) &" +sAddSub\x20(0) '" +s0 (" +b0 )" b0 *" sHdlNone\x20(0) +" sHdlNone\x20(0) ," -b100100 -" +b0 -" b0 ." b0 /" -b1001000110100 0" +b0 0" 01" -sAluBranch\x20(0) 2" -sAddSub\x20(0) 3" -s0 4" -b0 5" -b0 6" -sHdlNone\x20(0) 7" -sHdlNone\x20(0) 8" +sFull64\x20(0) 2" +03" +04" +05" +06" +s0 7" +b0 8" b0 9" -b0 :" -b0 ;" +sHdlNone\x20(0) :" +sHdlNone\x20(0) ;" b0 <" -0=" -sFull64\x20(0) >" -0?" +b0 =" +b0 >" +b0 ?" 0@" -0A" +sFull64\x20(0) A" 0B" -s0 C" -b0 D" -b0 E" -sHdlNone\x20(0) F" -sHdlNone\x20(0) G" +0C" +0D" +0E" +s0 F" +b0 G" b0 H" -b0 I" -b0 J" +sHdlNone\x20(0) I" +sHdlNone\x20(0) J" b0 K" -0L" -sFull64\x20(0) M" -0N" +b0 L" +b0 M" +b0 N" 0O" -0P" -0Q" +sFull64\x20(0) P" +b0 Q" s0 R" b0 S" b0 T" @@ -1712,7 +1456,7 @@ b0 Y" b0 Z" 0[" sFull64\x20(0) \" -b0 ]" +sU64\x20(0) ]" s0 ^" b0 _" b0 `" @@ -1724,8 +1468,8 @@ b0 e" b0 f" 0g" sFull64\x20(0) h" -b0 i" -s0 j" +sU64\x20(0) i" +b0 j" b0 k" b0 l" sHdlNone\x20(0) m" @@ -1735,104 +1479,104 @@ b0 p" b0 q" b0 r" 0s" -sFull64\x20(0) t" -sU64\x20(0) u" -s0 v" +sLoad\x20(0) t" +0u" +b0 v" b0 w" -b0 x" +sHdlNone\x20(0) x" sHdlNone\x20(0) y" -sHdlNone\x20(0) z" +b0 z" b0 {" b0 |" b0 }" -b0 ~" +0~" 0!# -sFull64\x20(0) "# -sU64\x20(0) ## -b0 $# -b0 %# +b0 "# +b0 ## +sHdlNone\x20(0) $# +sHdlNone\x20(0) %# b0 &# -sHdlNone\x20(0) '# -sHdlNone\x20(0) (# +b0 '# +b0 (# b0 )# -b0 *# -b0 +# -b0 ,# +0*# +b1 +# +sPhantomConst(\"0..=2\") ,# 0-# -sLoad\x20(0) .# -b0 /# +b111000011001000001001000110100 .# +sHdlNone\x20(0) /# b0 0# -b0 1# -sHdlNone\x20(0) 2# -sHdlNone\x20(0) 3# -b0 4# -b0 5# -b0 6# -b0 7# -08# +01# +b1001000110100 2# +b100 3# +b11 4# +b100100 5# +b1001000110100 6# +07# +b0 8# b0 9# b0 :# b0 ;# -sHdlNone\x20(0) <# -sHdlNone\x20(0) =# -b0 ># -b0 ?# -b0 @# -b0 A# -0B# -b1 C# -sPhantomConst(\"0..=2\") D# -0E# -b111000011001000001001000110100 F# +b1001000110100 <# +b100 =# +b11 ># +b100100 ?# +0@# +b1001000 A# +b100 B# +b11 C# +b10 D# +b100 E# +b11 F# sHdlNone\x20(0) G# -b0 H# -0I# -b1001000110100 J# -b100 K# -b11 L# -b100100 M# -b1001000110100 N# -0O# -b0 P# -b0 Q# -b0 R# -b0 S# -b1001000110100 T# -b100 U# -b11 V# -b100100 W# -0X# -b1001000 Y# -b100 Z# -b11 [# -b10 \# +sHdlNone\x20(0) H# +b10 I# +b100 J# +b11 K# +sHdlNone\x20(0) L# +sHdlSome\x20(1) M# +b10 N# +b100 O# +b11 P# +sHdlSome\x20(1) Q# +sHdlNone\x20(0) R# +b10 S# +b100 T# +b11 U# +sHdlSome\x20(1) V# +sHdlSome\x20(1) W# +b1001000110100 X# +b100 Y# +b11 Z# +sHdlNone\x20(0) [# +b1001000110100 \# b100 ]# b11 ^# -sHdlNone\x20(0) _# -sHdlNone\x20(0) `# -b10 a# -b100 b# -b11 c# +sHdlSome\x20(1) _# +b10 `# +b100 a# +b11 b# +sHdlNone\x20(0) c# sHdlNone\x20(0) d# -sHdlSome\x20(1) e# -b10 f# -b100 g# -b11 h# +b10 e# +b100 f# +b11 g# +sHdlNone\x20(0) h# sHdlSome\x20(1) i# -sHdlNone\x20(0) j# -b10 k# -b100 l# -b11 m# -sHdlSome\x20(1) n# -sHdlSome\x20(1) o# -b1001000110100 p# -b100 q# -b11 r# -sHdlNone\x20(0) s# +b10 j# +b100 k# +b11 l# +sHdlSome\x20(1) m# +sHdlNone\x20(0) n# +b10 o# +b100 p# +b11 q# +sHdlSome\x20(1) r# +sHdlSome\x20(1) s# b1001000110100 t# b100 u# b11 v# -sHdlSome\x20(1) w# +sHdlNone\x20(0) w# b10 x# b100 y# b11 z# @@ -1853,292 +1597,180 @@ b100 *$ b11 +$ sHdlSome\x20(1) ,$ sHdlSome\x20(1) -$ -b1001000110100 .$ +b10 .$ b100 /$ b11 0$ sHdlNone\x20(0) 1$ -b10 2$ -b100 3$ -b11 4$ -sHdlNone\x20(0) 5$ +sHdlNone\x20(0) 2$ +b10 3$ +b100 4$ +b11 5$ sHdlNone\x20(0) 6$ -b10 7$ -b100 8$ -b11 9$ -sHdlNone\x20(0) :$ +sHdlSome\x20(1) 7$ +b10 8$ +b100 9$ +b11 :$ sHdlSome\x20(1) ;$ -b10 <$ -b100 =$ -b11 >$ -sHdlSome\x20(1) ?$ -sHdlNone\x20(0) @$ -b10 A$ -b100 B$ -b11 C$ -sHdlSome\x20(1) D$ -sHdlSome\x20(1) E$ -b10 F$ -b100 G$ -b11 H$ -sHdlNone\x20(0) I$ +sHdlNone\x20(0) <$ +b10 =$ +b100 >$ +b11 ?$ +sHdlSome\x20(1) @$ +sHdlSome\x20(1) A$ +b10 B$ +b100 C$ +b11 D$ +sHdlNone\x20(0) E$ +sHdlNone\x20(0) F$ +b10 G$ +b100 H$ +b11 I$ sHdlNone\x20(0) J$ -b10 K$ -b100 L$ -b11 M$ -sHdlNone\x20(0) N$ +sHdlSome\x20(1) K$ +b10 L$ +b100 M$ +b11 N$ sHdlSome\x20(1) O$ -b10 P$ -b100 Q$ -b11 R$ -sHdlSome\x20(1) S$ -sHdlNone\x20(0) T$ -b10 U$ -b100 V$ -b11 W$ -sHdlSome\x20(1) X$ -sHdlSome\x20(1) Y$ -b10 Z$ -b100 [$ -b11 \$ -sHdlNone\x20(0) ]$ +sHdlNone\x20(0) P$ +b10 Q$ +b100 R$ +b11 S$ +sHdlSome\x20(1) T$ +sHdlSome\x20(1) U$ +b10 V$ +b100 W$ +b11 X$ +sHdlNone\x20(0) Y$ +sHdlNone\x20(0) Z$ +b10 [$ +b100 \$ +b11 ]$ sHdlNone\x20(0) ^$ -b10 _$ -b100 `$ -b11 a$ -sHdlNone\x20(0) b$ +sHdlSome\x20(1) _$ +b10 `$ +b100 a$ +b11 b$ sHdlSome\x20(1) c$ -b10 d$ -b100 e$ -b11 f$ -sHdlSome\x20(1) g$ -sHdlNone\x20(0) h$ -b10 i$ +sHdlNone\x20(0) d$ +b10 e$ +b100 f$ +b11 g$ +sHdlSome\x20(1) h$ +sHdlSome\x20(1) i$ b100 j$ b11 k$ -sHdlSome\x20(1) l$ -sHdlSome\x20(1) m$ -b10 n$ -b100 o$ -b11 p$ -sHdlNone\x20(0) q$ -sHdlNone\x20(0) r$ -b10 s$ -b100 t$ -b11 u$ -sHdlNone\x20(0) v$ -sHdlSome\x20(1) w$ -b10 x$ -b100 y$ -b11 z$ -sHdlSome\x20(1) {$ +sHdlNone\x20(0) l$ +sHdlNone\x20(0) m$ +b100 n$ +b11 o$ +sHdlNone\x20(0) p$ +sHdlSome\x20(1) q$ +b100 r$ +b11 s$ +sHdlSome\x20(1) t$ +sHdlNone\x20(0) u$ +b100 v$ +b11 w$ +sHdlSome\x20(1) x$ +sHdlSome\x20(1) y$ +b100 z$ +b11 {$ sHdlNone\x20(0) |$ -b10 }$ +sHdlNone\x20(0) }$ b100 ~$ b11 !% -sHdlSome\x20(1) "% +sHdlNone\x20(0) "% sHdlSome\x20(1) #% b100 $% b11 %% -sHdlNone\x20(0) &% +sHdlSome\x20(1) &% sHdlNone\x20(0) '% b100 (% b11 )% -sHdlNone\x20(0) *% +sHdlSome\x20(1) *% sHdlSome\x20(1) +% b100 ,% b11 -% -sHdlSome\x20(1) .% +sHdlNone\x20(0) .% sHdlNone\x20(0) /% b100 0% b11 1% -sHdlSome\x20(1) 2% +sHdlNone\x20(0) 2% sHdlSome\x20(1) 3% b100 4% b11 5% -sHdlNone\x20(0) 6% +sHdlSome\x20(1) 6% sHdlNone\x20(0) 7% b100 8% b11 9% -sHdlNone\x20(0) :% +sHdlSome\x20(1) :% sHdlSome\x20(1) ;% b100 <% b11 =% -sHdlSome\x20(1) >% +sHdlNone\x20(0) >% sHdlNone\x20(0) ?% b100 @% b11 A% -sHdlSome\x20(1) B% +sHdlNone\x20(0) B% sHdlSome\x20(1) C% b100 D% b11 E% -sHdlNone\x20(0) F% +sHdlSome\x20(1) F% sHdlNone\x20(0) G% b100 H% b11 I% -sHdlNone\x20(0) J% +sHdlSome\x20(1) J% sHdlSome\x20(1) K% b100 L% b11 M% -sHdlSome\x20(1) N% +sHdlNone\x20(0) N% sHdlNone\x20(0) O% b100 P% b11 Q% -sHdlSome\x20(1) R% +sHdlNone\x20(0) R% sHdlSome\x20(1) S% b100 T% b11 U% -sHdlNone\x20(0) V% +sHdlSome\x20(1) V% sHdlNone\x20(0) W% b100 X% b11 Y% -sHdlNone\x20(0) Z% +sHdlSome\x20(1) Z% sHdlSome\x20(1) [% -b100 \% -b11 ]% -sHdlSome\x20(1) ^% -sHdlNone\x20(0) _% -b100 `% -b11 a% -sHdlSome\x20(1) b% -sHdlSome\x20(1) c% -b100 d% -b11 e% -sHdlNone\x20(0) f% -sHdlNone\x20(0) g% -b100 h% -b11 i% -sHdlNone\x20(0) j% -sHdlSome\x20(1) k% -b100 l% -b11 m% -sHdlSome\x20(1) n% -sHdlNone\x20(0) o% -b100 p% -b11 q% -sHdlSome\x20(1) r% -sHdlSome\x20(1) s% -b1001000110100 t% +b1001000110100 \% +b100 ]% +1^% +b0 _% +sS64\x20(1) `% +b11111111 a% +b10 b% +b100 c% +1d% +b0 e% +sS64\x20(1) f% +b11111111 g% +b1001000110100 h% +b100 i% +1j% +b0 k% +sU64\x20(0) l% +b11111111 m% +b10 n% +b100 o% +1p% +b0 q% +sU64\x20(0) r% +b11111111 s% +b10 t% b100 u% 1v% b0 w% -sS64\x20(1) x% +sCmpRBTwo\x20(9) x% b11111111 y% b10 z% b100 {% -1|% -b0 }% -sS64\x20(1) ~% -b11111111 !& -b1001000110100 "& -b100 #& -1$& -b0 %& -sU64\x20(0) && -b11111111 '& -b10 (& -b100 )& -1*& -b0 +& -sU64\x20(0) ,& -b11111111 -& -b10 .& -b100 /& -10& -b0 1& -sCmpRBTwo\x20(9) 2& -b11111111 3& -b10 4& -b100 5& -b0 6& -b11111111 7& -b1001000110100 8& -b100 9& -b11 :& -sHdlSome\x20(1) ;& -b1001000110100 <& -b100 =& -b11 >& -sHdlSome\x20(1) ?& -b1001000110100 @& -b100 A& -b11 B& -sHdlNone\x20(0) C& -b1001000110100 D& -b100 E& -b11 F& -sHdlNone\x20(0) G& -b1001000110100 H& -b100 I& -b11 J& -sHdlNone\x20(0) K& -b1001000110100 L& -b100 M& -b11 N& -sHdlNone\x20(0) O& -b10 P& -b100 Q& -b11 R& -sHdlNone\x20(0) S& -b10 T& -b100 U& -b11 V& -sHdlSome\x20(1) W& -b10 X& -b100 Y& -b11 Z& -sHdlNone\x20(0) [& -b10 \& -b100 ]& -b11 ^& -sHdlSome\x20(1) _& -b10 `& -b100 a& -b11 b& -sHdlNone\x20(0) c& -b10 d& -b100 e& -b11 f& -sHdlSome\x20(1) g& -b10 h& -b100 i& -b11 j& -sHdlNone\x20(0) k& -b10 l& -b100 m& -b11 n& -sHdlSome\x20(1) o& -b10 p& -b100 q& -b11 r& -sHdlNone\x20(0) s& -b10 t& -b100 u& -b11 v& -sHdlSome\x20(1) w& -b10 x& -b100 y& -b11 z& -sHdlNone\x20(0) {& -b10 |& -b100 }& -b11 ~& -sHdlSome\x20(1) !' -b10 "' -b100 #' -b11 $' -sHdlNone\x20(0) %' -b10 &' -b100 '' -b11 (' -sHdlSome\x20(1) )' -b10 *' -b100 +' -b11 ,' -sHdlNone\x20(0) -' -b10 .' -b100 /' -b11 0' -sHdlSome\x20(1) 1' +b0 |% +b11111111 }% $end #1000000 b10010001 * @@ -2151,50 +1783,66 @@ b10010001 T b1010001010110011110001001 U b10010001 ` b1010001010110011110001001 a -b10010001 l -b1010001010110011110001001 m -b10010001 x -b1010001010110011110001001 y -b10010001 %" -b1010001010110011110001001 &" -b10010001 /" -b1010001010110011110001001 0" -b110000000010010001101000101 F# -sHdlSome\x20(1) G# -b111000011001000110011110001001 H# -1I# -b10001101000101 J# -b1 K# -b10000 L# -b100001 M# -b10010001101000101 N# -b110011110001001 P# -b100 Q# -b11 R# -b100100 S# -b10001101000101 T# -b1 U# -b10000 V# -b100001 W# -1X# -b10001101 Y# -b1 Z# -b10000 [# -b100 \# +b100010 l +b100010101100111100010011 m +1n +b100010 w +b100010101100111100010011 x +1y +b100010 #" +b100010101100111100010011 $" +1%" +b110000000010010001101000101 .# +sHdlSome\x20(1) /# +b111000011001000110011110001001 0# +11# +b10001101000101 2# +b1 3# +b10000 4# +b100001 5# +b10010001101000101 6# +b110011110001001 8# +b100 9# +b11 :# +b100100 ;# +b10001101000101 <# +b1 =# +b10000 ># +b100001 ?# +1@# +b10001101 A# +b1 B# +b10000 C# +b100 D# +b1 E# +b10000 F# +b100 I# +b1 J# +b10000 K# +b100 N# +b1 O# +b10000 P# +b100 S# +b1 T# +b10000 U# +b10001101000101 X# +b1 Y# +b10000 Z# +b10001101000101 \# b1 ]# b10000 ^# -b100 a# -b1 b# -b10000 c# -b100 f# -b1 g# -b10000 h# -b100 k# -b1 l# -b10000 m# -b10001101000101 p# -b1 q# -b10000 r# +b100 `# +b1 a# +b10000 b# +b100 e# +b1 f# +b10000 g# +b100 j# +b1 k# +b10000 l# +b100 o# +b1 p# +b10000 q# b10001101000101 t# b1 u# b10000 v# @@ -2210,55 +1858,52 @@ b10000 &$ b100 )$ b1 *$ b10000 +$ -b10001101000101 .$ +b100 .$ b1 /$ b10000 0$ -b100 2$ -b1 3$ -b10000 4$ -b100 7$ -b1 8$ -b10000 9$ -b100 <$ -b1 =$ -b10000 >$ -b100 A$ -b1 B$ -b10000 C$ -b100 F$ -b1 G$ -b10000 H$ -b100 K$ -b1 L$ -b10000 M$ -b100 P$ -b1 Q$ -b10000 R$ -b100 U$ -b1 V$ -b10000 W$ -b100 Z$ -b1 [$ -b10000 \$ -b100 _$ -b1 `$ -b10000 a$ -b100 d$ -b1 e$ -b10000 f$ -b100 i$ +b100 3$ +b1 4$ +b10000 5$ +b100 8$ +b1 9$ +b10000 :$ +b100 =$ +b1 >$ +b10000 ?$ +b100 B$ +b1 C$ +b10000 D$ +b100 G$ +b1 H$ +b10000 I$ +b100 L$ +b1 M$ +b10000 N$ +b100 Q$ +b1 R$ +b10000 S$ +b100 V$ +b1 W$ +b10000 X$ +b100 [$ +b1 \$ +b10000 ]$ +b100 `$ +b1 a$ +b10000 b$ +b100 e$ +b1 f$ +b10000 g$ b1 j$ b10000 k$ -b100 n$ -b1 o$ -b10000 p$ -b100 s$ -b1 t$ -b10000 u$ -b100 x$ -b1 y$ -b10000 z$ -b100 }$ +b1 n$ +b10000 o$ +b1 r$ +b10000 s$ +b1 v$ +b10000 w$ +b1 z$ +b10000 {$ b1 ~$ b10000 !% b1 $% @@ -2289,118 +1934,40 @@ b1 T% b10000 U% b1 X% b10000 Y% -b1 \% -b10000 ]% -b1 `% -b10000 a% -b1 d% -b10000 e% -b1 h% -b10000 i% -b1 l% -b10000 m% -b1 p% -b10000 q% -b10001101000101 t% +b10001101000101 \% +b1 ]% +0^% +b100 _% +sS32\x20(3) `% +b1100 a% +b100 b% +b1 c% +0d% +b100 e% +sS32\x20(3) f% +b1100 g% +b10001101000101 h% +b1 i% +0j% +b100 k% +sU32\x20(2) l% +b1100 m% +b100 n% +b1 o% +0p% +b100 q% +sU32\x20(2) r% +b1100 s% +b100 t% b1 u% 0v% b100 w% -sS32\x20(3) x% +sCmpRBOne\x20(8) x% b1100 y% b100 z% b1 {% -0|% -b100 }% -sS32\x20(3) ~% -b1100 !& -b10001101000101 "& -b1 #& -0$& -b100 %& -sU32\x20(2) && -b1100 '& -b100 (& -b1 )& -0*& -b100 +& -sU32\x20(2) ,& -b1100 -& -b100 .& -b1 /& -00& -b100 1& -sCmpRBOne\x20(8) 2& -b1100 3& -b100 4& -b1 5& -b100 6& -b1100 7& -b10001101000101 8& -b1 9& -b10000 :& -b10001101000101 <& -b1 =& -b10000 >& -b10001101000101 @& -b1 A& -b10000 B& -b10001101000101 D& -b1 E& -b10000 F& -b10001101000101 H& -b1 I& -b10000 J& -b10001101000101 L& -b1 M& -b10000 N& -b100 P& -b1 Q& -b10000 R& -b100 T& -b1 U& -b10000 V& -b100 X& -b1 Y& -b10000 Z& -b100 \& -b1 ]& -b10000 ^& -b100 `& -b1 a& -b10000 b& -b100 d& -b1 e& -b10000 f& -b100 h& -b1 i& -b10000 j& -b100 l& -b1 m& -b10000 n& -b100 p& -b1 q& -b10000 r& -b100 t& -b1 u& -b10000 v& -b100 x& -b1 y& -b10000 z& -b100 |& -b1 }& -b10000 ~& -b100 "' -b1 #' -b10000 $' -b100 &' -b1 '' -b10000 (' -b100 *' -b1 +' -b10000 ,' -b100 .' -b1 /' -b10000 0' +b100 |% +b1100 }% #2000000 b0 ( 11 @@ -2409,50 +1976,54 @@ b0 7 b0 F b1000 L b0 R -b1000 X +sCmpRBOne\x20(8) X b0 ^ sCmpRBOne\x20(8) d b0 j -sCmpRBOne\x20(8) p -b0 v -b0 #" -b0 -" -b110000100010010001101000101 F# -b111000011000000110011110001001 H# -b10001 K# -b110001 M# -1O# -b0 Q# -b0 S# -b10001 U# -b110001 W# -b10001 Z# +b0 u +b0 !" +b110000100010010001101000101 .# +b111000011000000110011110001001 0# +b10001 3# +b110001 5# +17# +b0 9# +b0 ;# +b10001 =# +b110001 ?# +b10001 B# +b10001 E# +b10001 J# +b10001 O# +b10001 T# +b10001 Y# b10001 ]# -b10001 b# -b10001 g# -b10001 l# -b10001 q# +b10001 a# +b10001 f# +b10001 k# +b10001 p# b10001 u# b10001 y# b10001 ~# b10001 %$ b10001 *$ b10001 /$ -b10001 3$ -b10001 8$ -b10001 =$ -b10001 B$ -b10001 G$ -b10001 L$ -b10001 Q$ -b10001 V$ -b10001 [$ -b10001 `$ -b10001 e$ +b10001 4$ +b10001 9$ +b10001 >$ +b10001 C$ +b10001 H$ +b10001 M$ +b10001 R$ +b10001 W$ +b10001 \$ +b10001 a$ +b10001 f$ b10001 j$ -b10001 o$ -b10001 t$ -b10001 y$ +b10001 n$ +b10001 r$ +b10001 v$ +b10001 z$ b10001 ~$ b10001 $% b10001 (% @@ -2468,40 +2039,12 @@ b10001 L% b10001 P% b10001 T% b10001 X% -b10001 \% -b10001 `% -b10001 d% -b10001 h% -b10001 l% -b10001 p% +b10001 ]% +b10001 c% +b10001 i% +b10001 o% b10001 u% b10001 {% -b10001 #& -b10001 )& -b10001 /& -b10001 5& -b10001 9& -b10001 =& -b10001 A& -b10001 E& -b10001 I& -b10001 M& -b10001 Q& -b10001 U& -b10001 Y& -b10001 ]& -b10001 a& -b10001 e& -b10001 i& -b10001 m& -b10001 q& -b10001 u& -b10001 y& -b10001 }& -b10001 #' -b10001 '' -b10001 +' -b10001 /' #3000000 b100100 ( b1001 * @@ -2518,59 +2061,73 @@ b0 L b100100 R b1001 T b1101000000000000000000 U -b0 X +sU64\x20(0) X b100100 ^ b1001 ` b1101000000000000000000 a sU64\x20(0) d -b100100 j -b1001 l -b1101000000000000000000 m -sU64\x20(0) p -b100100 v -b1001 x -b1101000000000000000000 y -b100100 #" -b1001 %" -b1101000000000000000000 &" -b100100 -" -b1001 /" -b1101000000000000000000 0" -b111100011001000001001000110100 F# -sHdlNone\x20(0) G# -b0 H# -0I# -b1001000110100 J# -b100 K# -b11 L# -b100100 M# -b1001000110100 N# -0O# -b0 P# -b0 R# -b1001000110100 T# -b100 U# -b11 V# -b100100 W# -0X# -b1001000 Y# -b100 Z# -b11 [# -b10 \# +b1001000 j +b10010 l +b11010000000000000000000 m +0n +b1001000 u +b10010 w +b11010000000000000000000 x +0y +b1001000 !" +b10010 #" +b11010000000000000000000 $" +0%" +b111100011001000001001000110100 .# +sHdlNone\x20(0) /# +b0 0# +01# +b1001000110100 2# +b100 3# +b11 4# +b100100 5# +b1001000110100 6# +07# +b0 8# +b0 :# +b1001000110100 <# +b100 =# +b11 ># +b100100 ?# +0@# +b1001000 A# +b100 B# +b11 C# +b10 D# +b100 E# +b11 F# +b10 I# +b100 J# +b11 K# +b10 N# +b100 O# +b11 P# +b10 S# +b100 T# +b11 U# +b1001000110100 X# +b100 Y# +b11 Z# +b1001000110100 \# b100 ]# b11 ^# -b10 a# -b100 b# -b11 c# -b10 f# -b100 g# -b11 h# -b10 k# -b100 l# -b11 m# -b1001000110100 p# -b100 q# -b11 r# +b10 `# +b100 a# +b11 b# +b10 e# +b100 f# +b11 g# +b10 j# +b100 k# +b11 l# +b10 o# +b100 p# +b11 q# b1001000110100 t# b100 u# b11 v# @@ -2586,55 +2143,52 @@ b11 &$ b10 )$ b100 *$ b11 +$ -b1001000110100 .$ +b10 .$ b100 /$ b11 0$ -b10 2$ -b100 3$ -b11 4$ -b10 7$ -b100 8$ -b11 9$ -b10 <$ -b100 =$ -b11 >$ -b10 A$ -b100 B$ -b11 C$ -b10 F$ -b100 G$ -b11 H$ -b10 K$ -b100 L$ -b11 M$ -b10 P$ -b100 Q$ -b11 R$ -b10 U$ -b100 V$ -b11 W$ -b10 Z$ -b100 [$ -b11 \$ -b10 _$ -b100 `$ -b11 a$ -b10 d$ -b100 e$ -b11 f$ -b10 i$ +b10 3$ +b100 4$ +b11 5$ +b10 8$ +b100 9$ +b11 :$ +b10 =$ +b100 >$ +b11 ?$ +b10 B$ +b100 C$ +b11 D$ +b10 G$ +b100 H$ +b11 I$ +b10 L$ +b100 M$ +b11 N$ +b10 Q$ +b100 R$ +b11 S$ +b10 V$ +b100 W$ +b11 X$ +b10 [$ +b100 \$ +b11 ]$ +b10 `$ +b100 a$ +b11 b$ +b10 e$ +b100 f$ +b11 g$ b100 j$ b11 k$ -b10 n$ -b100 o$ -b11 p$ -b10 s$ -b100 t$ -b11 u$ -b10 x$ -b100 y$ -b11 z$ -b10 }$ +b100 n$ +b11 o$ +b100 r$ +b11 s$ +b100 v$ +b11 w$ +b100 z$ +b11 {$ b100 ~$ b11 !% b100 $% @@ -2665,118 +2219,40 @@ b100 T% b11 U% b100 X% b11 Y% -b100 \% -b11 ]% -b100 `% -b11 a% -b100 d% -b11 e% -b100 h% -b11 i% -b100 l% -b11 m% -b100 p% -b11 q% -b1001000110100 t% +b1001000110100 \% +b100 ]% +1^% +b0 _% +sS64\x20(1) `% +b11111111 a% +b10 b% +b100 c% +1d% +b0 e% +sS64\x20(1) f% +b11111111 g% +b1001000110100 h% +b100 i% +1j% +b0 k% +sU64\x20(0) l% +b11111111 m% +b10 n% +b100 o% +1p% +b0 q% +sU64\x20(0) r% +b11111111 s% +b10 t% b100 u% 1v% b0 w% -sS64\x20(1) x% +sCmpRBTwo\x20(9) x% b11111111 y% b10 z% b100 {% -1|% -b0 }% -sS64\x20(1) ~% -b11111111 !& -b1001000110100 "& -b100 #& -1$& -b0 %& -sU64\x20(0) && -b11111111 '& -b10 (& -b100 )& -1*& -b0 +& -sU64\x20(0) ,& -b11111111 -& -b10 .& -b100 /& -10& -b0 1& -sCmpRBTwo\x20(9) 2& -b11111111 3& -b10 4& -b100 5& -b0 6& -b11111111 7& -b1001000110100 8& -b100 9& -b11 :& -b1001000110100 <& -b100 =& -b11 >& -b1001000110100 @& -b100 A& -b11 B& -b1001000110100 D& -b100 E& -b11 F& -b1001000110100 H& -b100 I& -b11 J& -b1001000110100 L& -b100 M& -b11 N& -b10 P& -b100 Q& -b11 R& -b10 T& -b100 U& -b11 V& -b10 X& -b100 Y& -b11 Z& -b10 \& -b100 ]& -b11 ^& -b10 `& -b100 a& -b11 b& -b10 d& -b100 e& -b11 f& -b10 h& -b100 i& -b11 j& -b10 l& -b100 m& -b11 n& -b10 p& -b100 q& -b11 r& -b10 t& -b100 u& -b11 v& -b10 x& -b100 y& -b11 z& -b10 |& -b100 }& -b11 ~& -b10 "' -b100 #' -b11 $' -b10 &' -b100 '' -b11 (' -b10 *' -b100 +' -b11 ,' -b10 .' -b100 /' -b11 0' +b0 |% +b11111111 }% #4000000 b0 ( b1101000000000000000100 + @@ -2789,58 +2265,61 @@ b1101000000000000000100 I b1000 L b0 R b1101000000000000000100 U -b1000 X +sCmpRBOne\x20(8) X b0 ^ b1101000000000000000100 a sCmpRBOne\x20(8) d b0 j -b1101000000000000000100 m -sCmpRBOne\x20(8) p -b0 v -b1101000000000000000100 y -b0 #" -b1101000000000000000100 &" -b0 -" -b1101000000000000000100 0" -b1001100011110100001001000000100 F# -b1001000000100 J# -b11010 K# -b111010 M# -b100001001000000100 N# -1O# -b1001000000100 T# -b11010 U# -b111010 W# -b11010 Z# +b11010000000000000001000 m +b0 u +b11010000000000000001000 x +b0 !" +b11010000000000000001000 $" +b1001100011110100001001000000100 .# +b1001000000100 2# +b11010 3# +b111010 5# +b100001001000000100 6# +17# +b1001000000100 <# +b11010 =# +b111010 ?# +b11010 B# +b11010 E# +b11010 J# +b11010 O# +b11010 T# +b1001000000100 X# +b11010 Y# +b1001000000100 \# b11010 ]# -b11010 b# -b11010 g# -b11010 l# -b1001000000100 p# -b11010 q# +b11010 a# +b11010 f# +b11010 k# +b11010 p# b1001000000100 t# b11010 u# b11010 y# b11010 ~# b11010 %$ b11010 *$ -b1001000000100 .$ b11010 /$ -b11010 3$ -b11010 8$ -b11010 =$ -b11010 B$ -b11010 G$ -b11010 L$ -b11010 Q$ -b11010 V$ -b11010 [$ -b11010 `$ -b11010 e$ +b11010 4$ +b11010 9$ +b11010 >$ +b11010 C$ +b11010 H$ +b11010 M$ +b11010 R$ +b11010 W$ +b11010 \$ +b11010 a$ +b11010 f$ b11010 j$ -b11010 o$ -b11010 t$ -b11010 y$ +b11010 n$ +b11010 r$ +b11010 v$ +b11010 z$ b11010 ~$ b11010 $% b11010 (% @@ -2856,48 +2335,14 @@ b11010 L% b11010 P% b11010 T% b11010 X% -b11010 \% -b11010 `% -b11010 d% -b11010 h% -b11010 l% -b11010 p% -b1001000000100 t% +b1001000000100 \% +b11010 ]% +b11010 c% +b1001000000100 h% +b11010 i% +b11010 o% b11010 u% b11010 {% -b1001000000100 "& -b11010 #& -b11010 )& -b11010 /& -b11010 5& -b1001000000100 8& -b11010 9& -b1001000000100 <& -b11010 =& -b1001000000100 @& -b11010 A& -b1001000000100 D& -b11010 E& -b1001000000100 H& -b11010 I& -b1001000000100 L& -b11010 M& -b11010 Q& -b11010 U& -b11010 Y& -b11010 ]& -b11010 a& -b11010 e& -b11010 i& -b11010 m& -b11010 q& -b11010 u& -b11010 y& -b11010 }& -b11010 #' -b11010 '' -b11010 +' -b11010 /' #5000000 sAddSub\x20(0) " sHdlSome\x20(1) ' @@ -2923,58 +2368,59 @@ b100100 R b100101 S b0 T b0 U -b0 X +sU64\x20(0) X sHdlSome\x20(1) ] b100100 ^ b100101 _ b0 ` b0 a sU64\x20(0) d -sHdlSome\x20(1) i -b100100 j -b100101 k +b0 e +b1001001 j +b1001010 k b0 l b0 m -sU64\x20(0) p -b0 q -sHdlSome\x20(1) u -b100100 v -b100101 w +sLoad\x20(0) o +b1001001 u +b1001010 v +b0 w b0 x -b0 y -sLoad\x20(0) { -sHdlSome\x20(1) "" -b100100 #" -b100101 $" -b0 %" -b0 &" -sHdlSome\x20(1) ," -b100100 -" -b100101 ." -b0 /" -b0 0" -b1111100011001000010101000010101 F# -b10101000010101 J# -b100 K# -b100100 M# -b10101000010101 N# -0O# -b10101000010101 T# -b100 U# -b100100 W# -1X# -b10101000 Y# -b100 Z# -b101 \# +b1001001 !" +b1001010 "" +b0 #" +b0 $" +b1111100011001000010101000010101 .# +b10101000010101 2# +b100 3# +b100100 5# +b10101000010101 6# +07# +b10101000010101 <# +b100 =# +b100100 ?# +1@# +b10101000 A# +b100 B# +b101 D# +b100 E# +b101 I# +b100 J# +b101 N# +b100 O# +b101 S# +b100 T# +b10101000010101 X# +b100 Y# +b10101000010101 \# b100 ]# -b101 a# -b100 b# -b101 f# -b100 g# -b101 k# -b100 l# -b10101000010101 p# -b100 q# +b101 `# +b100 a# +b101 e# +b100 f# +b101 j# +b100 k# +b101 o# +b100 p# b10101000010101 t# b100 u# b101 x# @@ -2985,39 +2431,35 @@ b101 $$ b100 %$ b101 )$ b100 *$ -b10101000010101 .$ +b101 .$ b100 /$ -b101 2$ -b100 3$ -b101 7$ -b100 8$ -b101 <$ -b100 =$ -b101 A$ -b100 B$ -b101 F$ -b100 G$ -b101 K$ -b100 L$ -b101 P$ -b100 Q$ -b101 U$ -b100 V$ -b101 Z$ -b100 [$ -b101 _$ -b100 `$ -b101 d$ -b100 e$ -b101 i$ +b101 3$ +b100 4$ +b101 8$ +b100 9$ +b101 =$ +b100 >$ +b101 B$ +b100 C$ +b101 G$ +b100 H$ +b101 L$ +b100 M$ +b101 Q$ +b100 R$ +b101 V$ +b100 W$ +b101 [$ +b100 \$ +b101 `$ +b100 a$ +b101 e$ +b100 f$ b100 j$ -b101 n$ -b100 o$ -b101 s$ -b100 t$ -b101 x$ -b100 y$ -b101 }$ +b100 n$ +b100 r$ +b100 v$ +b100 z$ b100 ~$ b100 $% b100 (% @@ -3033,68 +2475,18 @@ b100 L% b100 P% b100 T% b100 X% -b100 \% -b100 `% -b100 d% -b100 h% -b100 l% -b100 p% -b10101000010101 t% +b10101000010101 \% +b100 ]% +b101 b% +b100 c% +b10101000010101 h% +b100 i% +b101 n% +b100 o% +b101 t% b100 u% b101 z% b100 {% -b10101000010101 "& -b100 #& -b101 (& -b100 )& -b101 .& -b100 /& -b101 4& -b100 5& -b10101000010101 8& -b100 9& -b10101000010101 <& -b100 =& -b10101000010101 @& -b100 A& -b10101000010101 D& -b100 E& -b10101000010101 H& -b100 I& -b10101000010101 L& -b100 M& -b101 P& -b100 Q& -b101 T& -b100 U& -b101 X& -b100 Y& -b101 \& -b100 ]& -b101 `& -b100 a& -b101 d& -b100 e& -b101 h& -b100 i& -b101 l& -b100 m& -b101 p& -b100 q& -b101 t& -b100 u& -b101 x& -b100 y& -b101 |& -b100 }& -b101 "' -b100 #' -b101 &' -b100 '' -b101 *' -b100 +' -b101 .' -b100 /' #6000000 sAddSubI\x20(1) " b100 % @@ -3112,81 +2504,56 @@ b1001000110100 U b100 [ b0 _ b1001000110100 a -b100 g +b1 e +b1000 g b0 k -b1001000110100 m -b1 q -b100 s -b0 w -b1001000110100 y -sStore\x20(1) { -b100 ~ -b0 $" -b1001000110100 &" -b100 *" -b0 ." -b1001000110100 0" -b110100011001000001001000110100 F# -b1001000110100 J# -b1001000110100 N# -b1001000110100 T# -0X# -b1001000 Y# -b10 \# -b10 a# -b10 f# -b10 k# -b1001000110100 p# +b10010001101000 m +sStore\x20(1) o +b1000 r +b0 v +b10010001101000 x +b1000 | +b0 "" +b10010001101000 $" +b110100011001000001001000110100 .# +b1001000110100 2# +b1001000110100 6# +b1001000110100 <# +0@# +b1001000 A# +b10 D# +b10 I# +b10 N# +b10 S# +b1001000110100 X# +b1001000110100 \# +b10 `# +b10 e# +b10 j# +b10 o# b1001000110100 t# b10 x# b10 }# b10 $$ b10 )$ -b1001000110100 .$ -b10 2$ -b10 7$ -b10 <$ -b10 A$ -b10 F$ -b10 K$ -b10 P$ -b10 U$ -b10 Z$ -b10 _$ -b10 d$ -b10 i$ -b10 n$ -b10 s$ -b10 x$ -b10 }$ -b1001000110100 t% +b10 .$ +b10 3$ +b10 8$ +b10 =$ +b10 B$ +b10 G$ +b10 L$ +b10 Q$ +b10 V$ +b10 [$ +b10 `$ +b10 e$ +b1001000110100 \% +b10 b% +b1001000110100 h% +b10 n% +b10 t% b10 z% -b1001000110100 "& -b10 (& -b10 .& -b10 4& -b1001000110100 8& -b1001000110100 <& -b1001000110100 @& -b1001000110100 D& -b1001000110100 H& -b1001000110100 L& -b10 P& -b10 T& -b10 X& -b10 \& -b10 `& -b10 d& -b10 h& -b10 l& -b10 p& -b10 t& -b10 x& -b10 |& -b10 "' -b10 &' -b10 *' -b10 .' #7000000 sAddSub\x20(0) " b0 % @@ -3206,87 +2573,61 @@ b101 L b0 O b100101 S b0 U -b101 X +sS16\x20(5) X b0 [ b100101 _ b0 a sS16\x20(5) d +b0 e b0 g -b100101 k +b1001010 k b0 m -sS16\x20(5) p -b0 q -b0 s -b100101 w -b0 y -sLoad\x20(0) { -b0 ~ -b100101 $" -b0 &" -b0 *" -b100101 ." -b0 0" -b1111100011001000010100001010001 F# -b10100001010001 J# -b10100001010001 N# -b10100001010001 T# -1X# -b10100001 Y# -b101 \# -b101 a# -b101 f# -b101 k# -b10100001010001 p# +sLoad\x20(0) o +b0 r +b1001010 v +b0 x +b0 | +b1001010 "" +b0 $" +b1111100011001000010100001010001 .# +b10100001010001 2# +b10100001010001 6# +b10100001010001 <# +1@# +b10100001 A# +b101 D# +b101 I# +b101 N# +b101 S# +b10100001010001 X# +b10100001010001 \# +b101 `# +b101 e# +b101 j# +b101 o# b10100001010001 t# b101 x# b101 }# b101 $$ b101 )$ -b10100001010001 .$ -b101 2$ -b101 7$ -b101 <$ -b101 A$ -b101 F$ -b101 K$ -b101 P$ -b101 U$ -b101 Z$ -b101 _$ -b101 d$ -b101 i$ -b101 n$ -b101 s$ -b101 x$ -b101 }$ -b10100001010001 t% +b101 .$ +b101 3$ +b101 8$ +b101 =$ +b101 B$ +b101 G$ +b101 L$ +b101 Q$ +b101 V$ +b101 [$ +b101 `$ +b101 e$ +b10100001010001 \% +b101 b% +b10100001010001 h% +b101 n% +b101 t% b101 z% -b10100001010001 "& -b101 (& -b101 .& -b101 4& -b10100001010001 8& -b10100001010001 <& -b10100001010001 @& -b10100001010001 D& -b10100001010001 H& -b10100001010001 L& -b101 P& -b101 T& -b101 X& -b101 \& -b101 `& -b101 d& -b101 h& -b101 l& -b101 p& -b101 t& -b101 x& -b101 |& -b101 "' -b101 &' -b101 *' -b101 .' #8000000 sAddSubI\x20(1) " b100 % @@ -3309,85 +2650,59 @@ b100 [ sHdlNone\x20(0) ] b0 _ b1001000110100 a -b100 g -sHdlNone\x20(0) i +b1 e +b1000 g +b1001000 j b0 k -b1001000110100 m -b1 q -b100 s -sHdlNone\x20(0) u -b0 w -b1001000110100 y -sStore\x20(1) { -b100 ~ -sHdlNone\x20(0) "" -b0 $" -b1001000110100 &" -b100 *" -sHdlNone\x20(0) ," -b0 ." -b1001000110100 0" -b100000011001000001001000110100 F# -b1001000110100 J# -b1001000110100 N# -b1001000110100 T# -0X# -b1001000 Y# -b10 \# -b10 a# -b10 f# -b10 k# -b1001000110100 p# +b10010001101000 m +sStore\x20(1) o +b1000 r +b1001000 u +b0 v +b10010001101000 x +b1000 | +b1001000 !" +b0 "" +b10010001101000 $" +b100000011001000001001000110100 .# +b1001000110100 2# +b1001000110100 6# +b1001000110100 <# +0@# +b1001000 A# +b10 D# +b10 I# +b10 N# +b10 S# +b1001000110100 X# +b1001000110100 \# +b10 `# +b10 e# +b10 j# +b10 o# b1001000110100 t# b10 x# b10 }# b10 $$ b10 )$ -b1001000110100 .$ -b10 2$ -b10 7$ -b10 <$ -b10 A$ -b10 F$ -b10 K$ -b10 P$ -b10 U$ -b10 Z$ -b10 _$ -b10 d$ -b10 i$ -b10 n$ -b10 s$ -b10 x$ -b10 }$ -b1001000110100 t% +b10 .$ +b10 3$ +b10 8$ +b10 =$ +b10 B$ +b10 G$ +b10 L$ +b10 Q$ +b10 V$ +b10 [$ +b10 `$ +b10 e$ +b1001000110100 \% +b10 b% +b1001000110100 h% +b10 n% +b10 t% b10 z% -b1001000110100 "& -b10 (& -b10 .& -b10 4& -b1001000110100 8& -b1001000110100 <& -b1001000110100 @& -b1001000110100 D& -b1001000110100 H& -b1001000110100 L& -b10 P& -b10 T& -b10 X& -b10 \& -b10 `& -b10 d& -b10 h& -b10 l& -b10 p& -b10 t& -b10 x& -b10 |& -b10 "' -b10 &' -b10 *' -b10 .' #9000000 sAddSub\x20(0) " sHdlSome\x20(1) ' @@ -3407,111 +2722,78 @@ b0 L sHdlSome\x20(1) Q b100101 S b0 U -b0 X +sU64\x20(0) X sHdlSome\x20(1) ] b100101 _ b0 a sU64\x20(0) d -sHdlSome\x20(1) i -b100101 k +b0 e +b1001001 j +b1001010 k b0 m -sU64\x20(0) p -b0 q -sHdlSome\x20(1) u -b100101 w -b0 y -sLoad\x20(0) { -sHdlSome\x20(1) "" -b100101 $" -b0 &" -sHdlSome\x20(1) ," -b100101 ." -b0 0" -b1111100011001000010100000010101 F# -b10100000010101 J# -b10100000010101 N# -b10100000010101 T# -1X# -b10100000 Y# -b101 \# -b101 a# -b101 f# -b101 k# -b10100000010101 p# +sLoad\x20(0) o +b1001001 u +b1001010 v +b0 x +b1001001 !" +b1001010 "" +b0 $" +b1111100011001000010100000010101 .# +b10100000010101 2# +b10100000010101 6# +b10100000010101 <# +1@# +b10100000 A# +b101 D# +b101 I# +b101 N# +b101 S# +b10100000010101 X# +b10100000010101 \# +b101 `# +b101 e# +b101 j# +b101 o# b10100000010101 t# b101 x# b101 }# b101 $$ b101 )$ -b10100000010101 .$ -b101 2$ -b101 7$ -b101 <$ -b101 A$ -b101 F$ -b101 K$ -b101 P$ -b101 U$ -b101 Z$ -b101 _$ -b101 d$ -b101 i$ -b101 n$ -b101 s$ -b101 x$ -b101 }$ -b10100000010101 t% +b101 .$ +b101 3$ +b101 8$ +b101 =$ +b101 B$ +b101 G$ +b101 L$ +b101 Q$ +b101 V$ +b101 [$ +b101 `$ +b101 e$ +b10100000010101 \% +b101 b% +b10100000010101 h% +b101 n% +b101 t% b101 z% -b10100000010101 "& -b101 (& -b101 .& -b101 4& -b10100000010101 8& -b10100000010101 <& -b10100000010101 @& -b10100000010101 D& -b10100000010101 H& -b10100000010101 L& -b101 P& -b101 T& -b101 X& -b101 \& -b101 `& -b101 d& -b101 h& -b101 l& -b101 p& -b101 t& -b101 x& -b101 |& -b101 "' -b101 &' -b101 *' -b101 .' #10000000 1. 10 1= 1? b101 L -b101 X +sS16\x20(5) X sS16\x20(5) d -sS16\x20(5) p -b1111100011001000010100000010001 F# -b10100000010001 J# -b10100000010001 N# -b10100000010001 T# -b10100000010001 p# +b1111100011001000010100000010001 .# +b10100000010001 2# +b10100000010001 6# +b10100000010001 <# +b10100000010001 X# +b10100000010001 \# b10100000010001 t# -b10100000010001 .$ -b10100000010001 t% -b10100000010001 "& -b10100000010001 8& -b10100000010001 <& -b10100000010001 @& -b10100000010001 D& -b10100000010001 H& -b10100000010001 L& +b10100000010001 \% +b10100000010001 h% #11000000 b100 ) b100101 * @@ -3528,57 +2810,41 @@ b100101 H b10 L b100 S b100101 T -b10 X +sU32\x20(2) X b100 _ b100101 ` sU32\x20(2) d -b100 k -b100101 l -sU32\x20(2) p -b100 w -b100101 x -b100 $" -b100101 %" -b100 ." -b100101 /" -b1111100011001000010100100010101 F# -b10100100010101 J# -b10100100010101 N# -b10100100010101 T# -b10100100 Y# -b10100100010101 p# +b1000 k +b1001010 l +b1000 v +b1001010 w +b1000 "" +b1001010 #" +b1111100011001000010100100010101 .# +b10100100010101 2# +b10100100010101 6# +b10100100010101 <# +b10100100 A# +b10100100010101 X# +b10100100010101 \# b10100100010101 t# -b10100100010101 .$ -b10100100010101 t% -b10100100010101 "& -b10100100010101 8& -b10100100010101 <& -b10100100010101 @& -b10100100010101 D& -b10100100010101 H& -b10100100010101 L& +b10100100010101 \% +b10100100010101 h% #12000000 1. 1= b11 L -b11 X +sS32\x20(3) X sS32\x20(3) d -sS32\x20(3) p -b1111100011001000010100100010001 F# -b10100100010001 J# -b10100100010001 N# -b10100100010001 T# -b10100100010001 p# +b1111100011001000010100100010001 .# +b10100100010001 2# +b10100100010001 6# +b10100100010001 <# +b10100100010001 X# +b10100100010001 \# b10100100010001 t# -b10100100010001 .$ -b10100100010001 t% -b10100100010001 "& -b10100100010001 8& -b10100100010001 <& -b10100100010001 @& -b10100100010001 D& -b10100100010001 H& -b10100100010001 L& +b10100100010001 \% +b10100100010001 h% #13000000 b0 * b1111111111111111111111111 + @@ -3595,106 +2861,73 @@ b10 L b0 T b1111111111111111111111111 U 1V -b10 X +sU32\x20(2) X b0 ` b1111111111111111111111111 a 1b sU32\x20(2) d b0 l -b1111111111111111111111111 m +b1111111111111111111111110 m 1n -sU32\x20(2) p -b0 x -b1111111111111111111111111 y -1z -b0 %" -b1111111111111111111111111 &" -1'" -b0 /" -b1111111111111111111111111 0" -11" -b1111100011001000000000111010101 F# -b111010101 J# -b111010101 N# -b111010101 T# -b111 Y# -b0 \# -b0 a# -b0 f# -b0 k# -b111010101 p# +b0 w +b1111111111111111111111110 x +1y +b0 #" +b1111111111111111111111110 $" +1%" +b1111100011001000000000111010101 .# +b111010101 2# +b111010101 6# +b111010101 <# +b111 A# +b0 D# +b0 I# +b0 N# +b0 S# +b111010101 X# +b111010101 \# +b0 `# +b0 e# +b0 j# +b0 o# b111010101 t# b0 x# b0 }# b0 $$ b0 )$ -b111010101 .$ -b0 2$ -b0 7$ -b0 <$ -b0 A$ -b0 F$ -b0 K$ -b0 P$ -b0 U$ -b0 Z$ -b0 _$ -b0 d$ -b0 i$ -b0 n$ -b0 s$ -b0 x$ -b0 }$ -b111010101 t% +b0 .$ +b0 3$ +b0 8$ +b0 =$ +b0 B$ +b0 G$ +b0 L$ +b0 Q$ +b0 V$ +b0 [$ +b0 `$ +b0 e$ +b111010101 \% +b0 b% +b111010101 h% +b0 n% +b0 t% b0 z% -b111010101 "& -b0 (& -b0 .& -b0 4& -b111010101 8& -b111010101 <& -b111010101 @& -b111010101 D& -b111010101 H& -b111010101 L& -b0 P& -b0 T& -b0 X& -b0 \& -b0 `& -b0 d& -b0 h& -b0 l& -b0 p& -b0 t& -b0 x& -b0 |& -b0 "' -b0 &' -b0 *' -b0 .' #14000000 1. 1= b11 L -b11 X +sS32\x20(3) X sS32\x20(3) d -sS32\x20(3) p -b1111100011001000000000111010001 F# -b111010001 J# -b111010001 N# -b111010001 T# -b111010001 p# +b1111100011001000000000111010001 .# +b111010001 2# +b111010001 6# +b111010001 <# +b111010001 X# +b111010001 \# b111010001 t# -b111010001 .$ -b111010001 t% -b111010001 "& -b111010001 8& -b111010001 <& -b111010001 @& -b111010001 D& -b111010001 H& -b111010001 L& +b111010001 \% +b111010001 h% #15000000 b0 + 0, @@ -3707,57 +2940,41 @@ b0 I b10 L b0 U 0V -b10 X +sU32\x20(2) X b0 a 0b sU32\x20(2) d b0 m 0n -sU32\x20(2) p -b0 y -0z -b0 &" -0'" -b0 0" -01" -b1111100011001000000000110010101 F# -b110010101 J# -b110010101 N# -b110010101 T# -b110 Y# -b110010101 p# +b0 x +0y +b0 $" +0%" +b1111100011001000000000110010101 .# +b110010101 2# +b110010101 6# +b110010101 <# +b110 A# +b110010101 X# +b110010101 \# b110010101 t# -b110010101 .$ -b110010101 t% -b110010101 "& -b110010101 8& -b110010101 <& -b110010101 @& -b110010101 D& -b110010101 H& -b110010101 L& +b110010101 \% +b110010101 h% #16000000 1. 1= b11 L -b11 X +sS32\x20(3) X sS32\x20(3) d -sS32\x20(3) p -b1111100011001000000000110010001 F# -b110010001 J# -b110010001 N# -b110010001 T# -b110010001 p# +b1111100011001000000000110010001 .# +b110010001 2# +b110010001 6# +b110010001 <# +b110010001 X# +b110010001 \# b110010001 t# -b110010001 .$ -b110010001 t% -b110010001 "& -b110010001 8& -b110010001 <& -b110010001 @& -b110010001 D& -b110010001 H& -b110010001 L& +b110010001 \% +b110010001 h% #17000000 b0 % b0 ) @@ -3772,37 +2989,28 @@ b0 G b101 L b0 O b0 S -b101 X +sS16\x20(5) X b0 [ b0 _ sS16\x20(5) d b0 g b0 k -sS16\x20(5) p -b0 s -b0 w -b0 ~ -b0 $" -b0 *" -b0 ." -b1111100011001000000000011010001 F# -b11010001 J# -b11010001 N# -b11010001 T# -b11 Y# -b11010001 p# +b0 r +b0 v +b0 | +b0 "" +b1111100011001000000000011010001 .# +b11010001 2# +b11010001 6# +b11010001 <# +b11 A# +b11010001 X# +b11010001 \# b11010001 t# -b11010001 .$ -b11010001 t% -b11010001 "& -b11010001 8& -b11010001 <& -b11010001 @& -b11010001 D& -b11010001 H& -b11010001 L& +b11010001 \% +b11010001 h% #18000000 -sCompareI\x20(5) " +sCompareI\x20(4) " b1011 $ sHdlNone\x20(0) ' b1001000110100 + @@ -3820,47 +3028,49 @@ b11 L b1011 N sHdlNone\x20(0) Q b1001000110100 U -b11 X +sS32\x20(3) X b1011 Z sHdlNone\x20(0) ] b1001000110100 a sS32\x20(3) d -b1011 f -sHdlNone\x20(0) i -b1001000110100 m -sS32\x20(3) p -b101 q -b1011 r -sHdlNone\x20(0) u -b1001000110100 y -sStore\x20(1) { -b10 | -b1011 } -sHdlNone\x20(0) "" -b1001000110100 &" -b10 (" -b1011 )" -sHdlNone\x20(0) ," -b1001000110100 0" -b101101100001000001001000110100 F# -b1001000110100 J# -b1100 L# -b1001000110100 N# -b1001000110100 T# -b1100 V# -0X# -b1001000 Y# -b1100 [# -b10 \# +b10111 f +b1001000 j +b10010001101000 m +b10111 q +b1001000 u +b10010001101000 x +b10111 { +b1001000 !" +b10010001101000 $" +b101101100001000001001000110100 .# +b1001000110100 2# +b1100 4# +b1001000110100 6# +b1001000110100 <# +b1100 ># +0@# +b1001000 A# +b1100 C# +b10 D# +b1100 F# +b10 I# +b1100 K# +b10 N# +b1100 P# +b10 S# +b1100 U# +b1001000110100 X# +b1100 Z# +b1001000110100 \# b1100 ^# -b10 a# -b1100 c# -b10 f# -b1100 h# -b10 k# -b1100 m# -b1001000110100 p# -b1100 r# +b10 `# +b1100 b# +b10 e# +b1100 g# +b10 j# +b1100 l# +b10 o# +b1100 q# b1001000110100 t# b1100 v# b10 x# @@ -3871,39 +3081,35 @@ b10 $$ b1100 &$ b10 )$ b1100 +$ -b1001000110100 .$ +b10 .$ b1100 0$ -b10 2$ -b1100 4$ -b10 7$ -b1100 9$ -b10 <$ -b1100 >$ -b10 A$ -b1100 C$ -b10 F$ -b1100 H$ -b10 K$ -b1100 M$ -b10 P$ -b1100 R$ -b10 U$ -b1100 W$ -b10 Z$ -b1100 \$ -b10 _$ -b1100 a$ -b10 d$ -b1100 f$ -b10 i$ +b10 3$ +b1100 5$ +b10 8$ +b1100 :$ +b10 =$ +b1100 ?$ +b10 B$ +b1100 D$ +b10 G$ +b1100 I$ +b10 L$ +b1100 N$ +b10 Q$ +b1100 S$ +b10 V$ +b1100 X$ +b10 [$ +b1100 ]$ +b10 `$ +b1100 b$ +b10 e$ +b1100 g$ b1100 k$ -b10 n$ -b1100 p$ -b10 s$ -b1100 u$ -b10 x$ -b1100 z$ -b10 }$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -3919,84 +3125,34 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b1001000110100 t% +b1001000110100 \% +0^% +b11 _% +sS32\x20(3) `% +b1011 a% +b10 b% +0d% +b11 e% +sS32\x20(3) f% +b1011 g% +b1001000110100 h% +0j% +b11 k% +sU32\x20(2) l% +b1011 m% +b10 n% +0p% +b11 q% +sU32\x20(2) r% +b1011 s% +b10 t% 0v% b11 w% -sS32\x20(3) x% +sCmpRBOne\x20(8) x% b1011 y% b10 z% -0|% -b11 }% -sS32\x20(3) ~% -b1011 !& -b1001000110100 "& -0$& -b11 %& -sU32\x20(2) && -b1011 '& -b10 (& -0*& -b11 +& -sU32\x20(2) ,& -b1011 -& -b10 .& -00& -b11 1& -sCmpRBOne\x20(8) 2& -b1011 3& -b10 4& -b11 6& -b1011 7& -b1001000110100 8& -b1100 :& -b1001000110100 <& -b1100 >& -b1001000110100 @& -b1100 B& -b1001000110100 D& -b1100 F& -b1001000110100 H& -b1100 J& -b1001000110100 L& -b1100 N& -b10 P& -b1100 R& -b10 T& -b1100 V& -b10 X& -b1100 Z& -b10 \& -b1100 ^& -b10 `& -b1100 b& -b10 d& -b1100 f& -b10 h& -b1100 j& -b10 l& -b1100 n& -b10 p& -b1100 r& -b10 t& -b1100 v& -b10 x& -b1100 z& -b10 |& -b1100 ~& -b10 "' -b1100 $' -b10 &' -b1100 (' -b10 *' -b1100 ,' -b10 .' -b1100 0' +b11 |% +b1011 }% #19000000 b11111111 * b1111111111000100110101011 + @@ -4013,43 +3169,49 @@ b1 L b11111111 T b1111111111000100110101011 U 1V -b1 X +sS64\x20(1) X b11111111 ` b1111111111000100110101011 a 1b sS64\x20(1) d -b11111111 l -b1111111111000100110101011 m +b11111110 l +b1111111110001001101010111 m 1n -sS64\x20(1) p -b11111111 x -b1111111111000100110101011 y -1z -b11111111 %" -b1111111111000100110101011 &" -1'" -b11111111 /" -b1111111111000100110101011 0" -11" -b101101101001001000100110101011 F# -b1000100110101011 J# -b1101 L# -b1000100110101011 N# -b1000100110101011 T# -b1101 V# -1X# -b1000100110 Y# -b1101 [# -b10001 \# +b11111110 w +b1111111110001001101010111 x +1y +b11111110 #" +b1111111110001001101010111 $" +1%" +b101101101001001000100110101011 .# +b1000100110101011 2# +b1101 4# +b1000100110101011 6# +b1000100110101011 <# +b1101 ># +1@# +b1000100110 A# +b1101 C# +b10001 D# +b1101 F# +b10001 I# +b1101 K# +b10001 N# +b1101 P# +b10001 S# +b1101 U# +b1000100110101011 X# +b1101 Z# +b1000100110101011 \# b1101 ^# -b10001 a# -b1101 c# -b10001 f# -b1101 h# -b10001 k# -b1101 m# -b1000100110101011 p# -b1101 r# +b10001 `# +b1101 b# +b10001 e# +b1101 g# +b10001 j# +b1101 l# +b10001 o# +b1101 q# b1000100110101011 t# b1101 v# b10001 x# @@ -4060,39 +3222,35 @@ b10001 $$ b1101 &$ b10001 )$ b1101 +$ -b1000100110101011 .$ +b10001 .$ b1101 0$ -b10001 2$ -b1101 4$ -b10001 7$ -b1101 9$ -b10001 <$ -b1101 >$ -b10001 A$ -b1101 C$ -b10001 F$ -b1101 H$ -b10001 K$ -b1101 M$ -b10001 P$ -b1101 R$ -b10001 U$ -b1101 W$ -b10001 Z$ -b1101 \$ -b10001 _$ -b1101 a$ -b10001 d$ -b1101 f$ -b10001 i$ +b10001 3$ +b1101 5$ +b10001 8$ +b1101 :$ +b10001 =$ +b1101 ?$ +b10001 B$ +b1101 D$ +b10001 G$ +b1101 I$ +b10001 L$ +b1101 N$ +b10001 Q$ +b1101 S$ +b10001 V$ +b1101 X$ +b10001 [$ +b1101 ]$ +b10001 `$ +b1101 b$ +b10001 e$ +b1101 g$ b1101 k$ -b10001 n$ -b1101 p$ -b10001 s$ -b1101 u$ -b10001 x$ -b1101 z$ -b10001 }$ +b1101 o$ +b1101 s$ +b1101 w$ +b1101 {$ b1101 !% b1101 %% b1101 )% @@ -4108,74 +3266,24 @@ b1101 M% b1101 Q% b1101 U% b1101 Y% -b1101 ]% -b1101 a% -b1101 e% -b1101 i% -b1101 m% -b1101 q% -b1000100110101011 t% +b1000100110101011 \% +1^% +sS64\x20(1) `% +b10001 b% +1d% +sS64\x20(1) f% +b1000100110101011 h% +1j% +sU64\x20(0) l% +b10001 n% +1p% +sU64\x20(0) r% +b10001 t% 1v% -sS64\x20(1) x% +sCmpRBTwo\x20(9) x% b10001 z% -1|% -sS64\x20(1) ~% -b1000100110101011 "& -1$& -sU64\x20(0) && -b10001 (& -1*& -sU64\x20(0) ,& -b10001 .& -10& -sCmpRBTwo\x20(9) 2& -b10001 4& -b1000100110101011 8& -b1101 :& -b1000100110101011 <& -b1101 >& -b1000100110101011 @& -b1101 B& -b1000100110101011 D& -b1101 F& -b1000100110101011 H& -b1101 J& -b1000100110101011 L& -b1101 N& -b10001 P& -b1101 R& -b10001 T& -b1101 V& -b10001 X& -b1101 Z& -b10001 \& -b1101 ^& -b10001 `& -b1101 b& -b10001 d& -b1101 f& -b10001 h& -b1101 j& -b10001 l& -b1101 n& -b10001 p& -b1101 r& -b10001 t& -b1101 v& -b10001 x& -b1101 z& -b10001 |& -b1101 ~& -b10001 "' -b1101 $' -b10001 &' -b1101 (' -b10001 *' -b1101 ,' -b10001 .' -b1101 0' #20000000 -sCompare\x20(4) " +sCompare\x20(3) " b100101 ) b0 * b0 + @@ -4195,50 +3303,60 @@ b100101 S b0 T b0 U 0V -b11 X +sS32\x20(3) X b100101 _ b0 ` b0 a 0b sS32\x20(3) d -b100101 k +b11 e +b10110 f +b1001010 k b0 l b0 m 0n -sS32\x20(3) p -b100 q -b100101 w +sStore\x20(1) o +1p +b10110 q +b1001010 v +b0 w b0 x -b0 y -0z -sLoad\x20(0) { -b100101 $" -b0 %" -b0 &" -0'" -b100101 ." -b0 /" -b0 0" -01" -b1111101100001000010100000000000 F# -b10100000000000 J# -b1100 L# -b10100000000000 N# -b10100000000000 T# -b1100 V# -0X# -b10100000 Y# -b1100 [# -b101 \# +0y +1z +b10110 { +b1001010 "" +b0 #" +b0 $" +0%" +b1111101100001000010100000000000 .# +b10100000000000 2# +b1100 4# +b10100000000000 6# +b10100000000000 <# +b1100 ># +0@# +b10100000 A# +b1100 C# +b101 D# +b1100 F# +b101 I# +b1100 K# +b101 N# +b1100 P# +b101 S# +b1100 U# +b10100000000000 X# +b1100 Z# +b10100000000000 \# b1100 ^# -b101 a# -b1100 c# -b101 f# -b1100 h# -b101 k# -b1100 m# -b10100000000000 p# -b1100 r# +b101 `# +b1100 b# +b101 e# +b1100 g# +b101 j# +b1100 l# +b101 o# +b1100 q# b10100000000000 t# b1100 v# b101 x# @@ -4249,39 +3367,35 @@ b101 $$ b1100 &$ b101 )$ b1100 +$ -b10100000000000 .$ +b101 .$ b1100 0$ -b101 2$ -b1100 4$ -b101 7$ -b1100 9$ -b101 <$ -b1100 >$ -b101 A$ -b1100 C$ -b101 F$ -b1100 H$ -b101 K$ -b1100 M$ -b101 P$ -b1100 R$ -b101 U$ -b1100 W$ -b101 Z$ -b1100 \$ -b101 _$ -b1100 a$ -b101 d$ -b1100 f$ -b101 i$ +b101 3$ +b1100 5$ +b101 8$ +b1100 :$ +b101 =$ +b1100 ?$ +b101 B$ +b1100 D$ +b101 G$ +b1100 I$ +b101 L$ +b1100 N$ +b101 Q$ +b1100 S$ +b101 V$ +b1100 X$ +b101 [$ +b1100 ]$ +b101 `$ +b1100 b$ +b101 e$ +b1100 g$ b1100 k$ -b101 n$ -b1100 p$ -b101 s$ -b1100 u$ -b101 x$ -b1100 z$ -b101 }$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -4297,109 +3411,64 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b10100000000000 t% +b10100000000000 \% +0^% +sS32\x20(3) `% +b101 b% +0d% +sS32\x20(3) f% +b10100000000000 h% +0j% +sU32\x20(2) l% +b101 n% +0p% +sU32\x20(2) r% +b101 t% 0v% -sS32\x20(3) x% +sCmpRBOne\x20(8) x% b101 z% -0|% -sS32\x20(3) ~% -b10100000000000 "& -0$& -sU32\x20(2) && -b101 (& -0*& -sU32\x20(2) ,& -b101 .& -00& -sCmpRBOne\x20(8) 2& -b101 4& -b10100000000000 8& -b1100 :& -b10100000000000 <& -b1100 >& -b10100000000000 @& -b1100 B& -b10100000000000 D& -b1100 F& -b10100000000000 H& -b1100 J& -b10100000000000 L& -b1100 N& -b101 P& -b1100 R& -b101 T& -b1100 V& -b101 X& -b1100 Z& -b101 \& -b1100 ^& -b101 `& -b1100 b& -b101 d& -b1100 f& -b101 h& -b1100 j& -b101 l& -b1100 n& -b101 p& -b1100 r& -b101 t& -b1100 v& -b101 x& -b1100 z& -b101 |& -b1100 ~& -b101 "' -b1100 $' -b101 &' -b1100 (' -b101 *' -b1100 ,' -b101 .' -b1100 0' #21000000 0/ 0> b1 L -b1 X +sS64\x20(1) X sS64\x20(1) d -sS64\x20(1) p -b1111101101001000010100000000000 F# -b1101 L# -b1101 V# -b1101 [# +b1111101101001000010100000000000 .# +b1101 4# +b1101 ># +b1101 C# +b1101 F# +b1101 K# +b1101 P# +b1101 U# +b1101 Z# b1101 ^# -b1101 c# -b1101 h# -b1101 m# -b1101 r# +b1101 b# +b1101 g# +b1101 l# +b1101 q# b1101 v# b1101 z# b1101 !$ b1101 &$ b1101 +$ b1101 0$ -b1101 4$ -b1101 9$ -b1101 >$ -b1101 C$ -b1101 H$ -b1101 M$ -b1101 R$ -b1101 W$ -b1101 \$ -b1101 a$ -b1101 f$ +b1101 5$ +b1101 :$ +b1101 ?$ +b1101 D$ +b1101 I$ +b1101 N$ +b1101 S$ +b1101 X$ +b1101 ]$ +b1101 b$ +b1101 g$ b1101 k$ -b1101 p$ -b1101 u$ -b1101 z$ +b1101 o$ +b1101 s$ +b1101 w$ +b1101 {$ b1101 !% b1101 %% b1101 )% @@ -4415,46 +3484,18 @@ b1101 M% b1101 Q% b1101 U% b1101 Y% -b1101 ]% -b1101 a% -b1101 e% -b1101 i% -b1101 m% -b1101 q% +1^% +sS64\x20(1) `% +1d% +sS64\x20(1) f% +1j% +sU64\x20(0) l% +1p% +sU64\x20(0) r% 1v% -sS64\x20(1) x% -1|% -sS64\x20(1) ~% -1$& -sU64\x20(0) && -1*& -sU64\x20(0) ,& -10& -sCmpRBTwo\x20(9) 2& -b1101 :& -b1101 >& -b1101 B& -b1101 F& -b1101 J& -b1101 N& -b1101 R& -b1101 V& -b1101 Z& -b1101 ^& -b1101 b& -b1101 f& -b1101 j& -b1101 n& -b1101 r& -b1101 v& -b1101 z& -b1101 ~& -b1101 $' -b1101 (' -b1101 ,' -b1101 0' +sCmpRBTwo\x20(9) x% #22000000 -sCompareI\x20(5) " +sCompareI\x20(4) " b0 ) b1001000110100 + 0. @@ -4468,39 +3509,51 @@ b1001000110100 I b10 L b0 S b1001000110100 U -b10 X +sU32\x20(2) X b0 _ b1001000110100 a sU32\x20(2) d +b0 e +b10111 f b0 k -b1001000110100 m -sU32\x20(2) p -b101 q -b0 w -b1001000110100 y -sStore\x20(1) { -b0 $" -b1001000110100 &" -b0 ." -b1001000110100 0" -b101001100001000001001000110100 F# -b1001000110100 J# -b1100 L# -b1001000110100 N# -b1001000110100 T# -b1100 V# -b1001000 Y# -b1100 [# -b10 \# +b10010001101000 m +sLoad\x20(0) o +0p +b10111 q +b0 v +b10010001101000 x +0z +b10111 { +b0 "" +b10010001101000 $" +b101001100001000001001000110100 .# +b1001000110100 2# +b1100 4# +b1001000110100 6# +b1001000110100 <# +b1100 ># +b1001000 A# +b1100 C# +b10 D# +b1100 F# +b10 I# +b1100 K# +b10 N# +b1100 P# +b10 S# +b1100 U# +b1001000110100 X# +b1100 Z# +b1001000110100 \# b1100 ^# -b10 a# -b1100 c# -b10 f# -b1100 h# -b10 k# -b1100 m# -b1001000110100 p# -b1100 r# +b10 `# +b1100 b# +b10 e# +b1100 g# +b10 j# +b1100 l# +b10 o# +b1100 q# b1001000110100 t# b1100 v# b10 x# @@ -4511,39 +3564,35 @@ b10 $$ b1100 &$ b10 )$ b1100 +$ -b1001000110100 .$ +b10 .$ b1100 0$ -b10 2$ -b1100 4$ -b10 7$ -b1100 9$ -b10 <$ -b1100 >$ -b10 A$ -b1100 C$ -b10 F$ -b1100 H$ -b10 K$ -b1100 M$ -b10 P$ -b1100 R$ -b10 U$ -b1100 W$ -b10 Z$ -b1100 \$ -b10 _$ -b1100 a$ -b10 d$ -b1100 f$ -b10 i$ +b10 3$ +b1100 5$ +b10 8$ +b1100 :$ +b10 =$ +b1100 ?$ +b10 B$ +b1100 D$ +b10 G$ +b1100 I$ +b10 L$ +b1100 N$ +b10 Q$ +b1100 S$ +b10 V$ +b1100 X$ +b10 [$ +b1100 ]$ +b10 `$ +b1100 b$ +b10 e$ +b1100 g$ b1100 k$ -b10 n$ -b1100 p$ -b10 s$ -b1100 u$ -b10 x$ -b1100 z$ -b10 }$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -4559,72 +3608,22 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b1001000110100 t% +b1001000110100 \% +0^% +sS32\x20(3) `% +b10 b% +0d% +sS32\x20(3) f% +b1001000110100 h% +0j% +sU32\x20(2) l% +b10 n% +0p% +sU32\x20(2) r% +b10 t% 0v% -sS32\x20(3) x% +sCmpRBOne\x20(8) x% b10 z% -0|% -sS32\x20(3) ~% -b1001000110100 "& -0$& -sU32\x20(2) && -b10 (& -0*& -sU32\x20(2) ,& -b10 .& -00& -sCmpRBOne\x20(8) 2& -b10 4& -b1001000110100 8& -b1100 :& -b1001000110100 <& -b1100 >& -b1001000110100 @& -b1100 B& -b1001000110100 D& -b1100 F& -b1001000110100 H& -b1100 J& -b1001000110100 L& -b1100 N& -b10 P& -b1100 R& -b10 T& -b1100 V& -b10 X& -b1100 Z& -b10 \& -b1100 ^& -b10 `& -b1100 b& -b10 d& -b1100 f& -b10 h& -b1100 j& -b10 l& -b1100 n& -b10 p& -b1100 r& -b10 t& -b1100 v& -b10 x& -b1100 z& -b10 |& -b1100 ~& -b10 "' -b1100 $' -b10 &' -b1100 (' -b10 *' -b1100 ,' -b10 .' -b1100 0' #23000000 b1000100110101011 + 0/ @@ -4633,33 +3632,41 @@ b1000100110101011 : b1000100110101011 I b0 L b1000100110101011 U -b0 X +sU64\x20(0) X b1000100110101011 a sU64\x20(0) d -b1000100110101011 m -sU64\x20(0) p -b1000100110101011 y -b1000100110101011 &" -b1000100110101011 0" -b101001101001001000100110101011 F# -b1000100110101011 J# -b1101 L# -b1000100110101011 N# -b1000100110101011 T# -b1101 V# -1X# -b1000100110 Y# -b1101 [# -b10001 \# +b10001001101010110 m +b10001001101010110 x +b10001001101010110 $" +b101001101001001000100110101011 .# +b1000100110101011 2# +b1101 4# +b1000100110101011 6# +b1000100110101011 <# +b1101 ># +1@# +b1000100110 A# +b1101 C# +b10001 D# +b1101 F# +b10001 I# +b1101 K# +b10001 N# +b1101 P# +b10001 S# +b1101 U# +b1000100110101011 X# +b1101 Z# +b1000100110101011 \# b1101 ^# -b10001 a# -b1101 c# -b10001 f# -b1101 h# -b10001 k# -b1101 m# -b1000100110101011 p# -b1101 r# +b10001 `# +b1101 b# +b10001 e# +b1101 g# +b10001 j# +b1101 l# +b10001 o# +b1101 q# b1000100110101011 t# b1101 v# b10001 x# @@ -4670,39 +3677,35 @@ b10001 $$ b1101 &$ b10001 )$ b1101 +$ -b1000100110101011 .$ +b10001 .$ b1101 0$ -b10001 2$ -b1101 4$ -b10001 7$ -b1101 9$ -b10001 <$ -b1101 >$ -b10001 A$ -b1101 C$ -b10001 F$ -b1101 H$ -b10001 K$ -b1101 M$ -b10001 P$ -b1101 R$ -b10001 U$ -b1101 W$ -b10001 Z$ -b1101 \$ -b10001 _$ -b1101 a$ -b10001 d$ -b1101 f$ -b10001 i$ +b10001 3$ +b1101 5$ +b10001 8$ +b1101 :$ +b10001 =$ +b1101 ?$ +b10001 B$ +b1101 D$ +b10001 G$ +b1101 I$ +b10001 L$ +b1101 N$ +b10001 Q$ +b1101 S$ +b10001 V$ +b1101 X$ +b10001 [$ +b1101 ]$ +b10001 `$ +b1101 b$ +b10001 e$ +b1101 g$ b1101 k$ -b10001 n$ -b1101 p$ -b10001 s$ -b1101 u$ -b10001 x$ -b1101 z$ -b10001 }$ +b1101 o$ +b1101 s$ +b1101 w$ +b1101 {$ b1101 !% b1101 %% b1101 )% @@ -4718,74 +3721,24 @@ b1101 M% b1101 Q% b1101 U% b1101 Y% -b1101 ]% -b1101 a% -b1101 e% -b1101 i% -b1101 m% -b1101 q% -b1000100110101011 t% +b1000100110101011 \% +1^% +sS64\x20(1) `% +b10001 b% +1d% +sS64\x20(1) f% +b1000100110101011 h% +1j% +sU64\x20(0) l% +b10001 n% +1p% +sU64\x20(0) r% +b10001 t% 1v% -sS64\x20(1) x% +sCmpRBTwo\x20(9) x% b10001 z% -1|% -sS64\x20(1) ~% -b1000100110101011 "& -1$& -sU64\x20(0) && -b10001 (& -1*& -sU64\x20(0) ,& -b10001 .& -10& -sCmpRBTwo\x20(9) 2& -b10001 4& -b1000100110101011 8& -b1101 :& -b1000100110101011 <& -b1101 >& -b1000100110101011 @& -b1101 B& -b1000100110101011 D& -b1101 F& -b1000100110101011 H& -b1101 J& -b1000100110101011 L& -b1101 N& -b10001 P& -b1101 R& -b10001 T& -b1101 V& -b10001 X& -b1101 Z& -b10001 \& -b1101 ^& -b10001 `& -b1101 b& -b10001 d& -b1101 f& -b10001 h& -b1101 j& -b10001 l& -b1101 n& -b10001 p& -b1101 r& -b10001 t& -b1101 v& -b10001 x& -b1101 z& -b10001 |& -b1101 ~& -b10001 "' -b1101 $' -b10001 &' -b1101 (' -b10001 *' -b1101 ,' -b10001 .' -b1101 0' #24000000 -sCompare\x20(4) " +sCompare\x20(3) " b100101 ) b0 + 1/ @@ -4797,40 +3750,52 @@ b0 I b10 L b100101 S b0 U -b10 X +sU32\x20(2) X b100101 _ b0 a sU32\x20(2) d -b100101 k +b11 e +b10110 f +b1001010 k b0 m -sU32\x20(2) p -b100 q -b100101 w -b0 y -sLoad\x20(0) { -b100101 $" -b0 &" -b100101 ." -b0 0" -b1111101100001000010100001000000 F# -b10100001000000 J# -b1100 L# -b10100001000000 N# -b10100001000000 T# -b1100 V# -0X# -b10100001 Y# -b1100 [# -b101 \# +sStore\x20(1) o +1p +b10110 q +b1001010 v +b0 x +1z +b10110 { +b1001010 "" +b0 $" +b1111101100001000010100001000000 .# +b10100001000000 2# +b1100 4# +b10100001000000 6# +b10100001000000 <# +b1100 ># +0@# +b10100001 A# +b1100 C# +b101 D# +b1100 F# +b101 I# +b1100 K# +b101 N# +b1100 P# +b101 S# +b1100 U# +b10100001000000 X# +b1100 Z# +b10100001000000 \# b1100 ^# -b101 a# -b1100 c# -b101 f# -b1100 h# -b101 k# -b1100 m# -b10100001000000 p# -b1100 r# +b101 `# +b1100 b# +b101 e# +b1100 g# +b101 j# +b1100 l# +b101 o# +b1100 q# b10100001000000 t# b1100 v# b101 x# @@ -4841,39 +3806,35 @@ b101 $$ b1100 &$ b101 )$ b1100 +$ -b10100001000000 .$ +b101 .$ b1100 0$ -b101 2$ -b1100 4$ -b101 7$ -b1100 9$ -b101 <$ -b1100 >$ -b101 A$ -b1100 C$ -b101 F$ -b1100 H$ -b101 K$ -b1100 M$ -b101 P$ -b1100 R$ -b101 U$ -b1100 W$ -b101 Z$ -b1100 \$ -b101 _$ -b1100 a$ -b101 d$ -b1100 f$ -b101 i$ +b101 3$ +b1100 5$ +b101 8$ +b1100 :$ +b101 =$ +b1100 ?$ +b101 B$ +b1100 D$ +b101 G$ +b1100 I$ +b101 L$ +b1100 N$ +b101 Q$ +b1100 S$ +b101 V$ +b1100 X$ +b101 [$ +b1100 ]$ +b101 `$ +b1100 b$ +b101 e$ +b1100 g$ b1100 k$ -b101 n$ -b1100 p$ -b101 s$ -b1100 u$ -b101 x$ -b1100 z$ -b101 }$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -4889,109 +3850,64 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b10100001000000 t% +b10100001000000 \% +0^% +sS32\x20(3) `% +b101 b% +0d% +sS32\x20(3) f% +b10100001000000 h% +0j% +sU32\x20(2) l% +b101 n% +0p% +sU32\x20(2) r% +b101 t% 0v% -sS32\x20(3) x% +sCmpRBOne\x20(8) x% b101 z% -0|% -sS32\x20(3) ~% -b10100001000000 "& -0$& -sU32\x20(2) && -b101 (& -0*& -sU32\x20(2) ,& -b101 .& -00& -sCmpRBOne\x20(8) 2& -b101 4& -b10100001000000 8& -b1100 :& -b10100001000000 <& -b1100 >& -b10100001000000 @& -b1100 B& -b10100001000000 D& -b1100 F& -b10100001000000 H& -b1100 J& -b10100001000000 L& -b1100 N& -b101 P& -b1100 R& -b101 T& -b1100 V& -b101 X& -b1100 Z& -b101 \& -b1100 ^& -b101 `& -b1100 b& -b101 d& -b1100 f& -b101 h& -b1100 j& -b101 l& -b1100 n& -b101 p& -b1100 r& -b101 t& -b1100 v& -b101 x& -b1100 z& -b101 |& -b1100 ~& -b101 "' -b1100 $' -b101 &' -b1100 (' -b101 *' -b1100 ,' -b101 .' -b1100 0' #25000000 0/ 0> b0 L -b0 X +sU64\x20(0) X sU64\x20(0) d -sU64\x20(0) p -b1111101101001000010100001000000 F# -b1101 L# -b1101 V# -b1101 [# +b1111101101001000010100001000000 .# +b1101 4# +b1101 ># +b1101 C# +b1101 F# +b1101 K# +b1101 P# +b1101 U# +b1101 Z# b1101 ^# -b1101 c# -b1101 h# -b1101 m# -b1101 r# +b1101 b# +b1101 g# +b1101 l# +b1101 q# b1101 v# b1101 z# b1101 !$ b1101 &$ b1101 +$ b1101 0$ -b1101 4$ -b1101 9$ -b1101 >$ -b1101 C$ -b1101 H$ -b1101 M$ -b1101 R$ -b1101 W$ -b1101 \$ -b1101 a$ -b1101 f$ +b1101 5$ +b1101 :$ +b1101 ?$ +b1101 D$ +b1101 I$ +b1101 N$ +b1101 S$ +b1101 X$ +b1101 ]$ +b1101 b$ +b1101 g$ b1101 k$ -b1101 p$ -b1101 u$ -b1101 z$ +b1101 o$ +b1101 s$ +b1101 w$ +b1101 {$ b1101 !% b1101 %% b1101 )% @@ -5007,88 +3923,65 @@ b1101 M% b1101 Q% b1101 U% b1101 Y% -b1101 ]% -b1101 a% -b1101 e% -b1101 i% -b1101 m% -b1101 q% +1^% +sS64\x20(1) `% +1d% +sS64\x20(1) f% +1j% +sU64\x20(0) l% +1p% +sU64\x20(0) r% 1v% -sS64\x20(1) x% -1|% -sS64\x20(1) ~% -1$& -sU64\x20(0) && -1*& -sU64\x20(0) ,& -10& -sCmpRBTwo\x20(9) 2& -b1101 :& -b1101 >& -b1101 B& -b1101 F& -b1101 J& -b1101 N& -b1101 R& -b1101 V& -b1101 Z& -b1101 ^& -b1101 b& -b1101 f& -b1101 j& -b1101 n& -b1101 r& -b1101 v& -b1101 z& -b1101 ~& -b1101 $' -b1101 (' -b1101 ,' -b1101 0' +sCmpRBTwo\x20(9) x% #26000000 11 1@ b1000 L -b1000 X +sCmpRBOne\x20(8) X sCmpRBOne\x20(8) d -sCmpRBOne\x20(8) p -b1111101100001000010100110000000 F# -b10100110000000 J# -b1100 L# -b10100110000000 N# -b10100110000000 T# -b1100 V# -b10100110 Y# -b1100 [# +b1111101100001000010100110000000 .# +b10100110000000 2# +b1100 4# +b10100110000000 6# +b10100110000000 <# +b1100 ># +b10100110 A# +b1100 C# +b1100 F# +b1100 K# +b1100 P# +b1100 U# +b10100110000000 X# +b1100 Z# +b10100110000000 \# b1100 ^# -b1100 c# -b1100 h# -b1100 m# -b10100110000000 p# -b1100 r# +b1100 b# +b1100 g# +b1100 l# +b1100 q# b10100110000000 t# b1100 v# b1100 z# b1100 !$ b1100 &$ b1100 +$ -b10100110000000 .$ b1100 0$ -b1100 4$ -b1100 9$ -b1100 >$ -b1100 C$ -b1100 H$ -b1100 M$ -b1100 R$ -b1100 W$ -b1100 \$ -b1100 a$ -b1100 f$ +b1100 5$ +b1100 :$ +b1100 ?$ +b1100 D$ +b1100 I$ +b1100 N$ +b1100 S$ +b1100 X$ +b1100 ]$ +b1100 b$ +b1100 g$ b1100 k$ -b1100 p$ -b1100 u$ -b1100 z$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -5104,89 +3997,60 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b10100110000000 t% +b10100110000000 \% +0^% +sS32\x20(3) `% +0d% +sS32\x20(3) f% +b10100110000000 h% +0j% +sU32\x20(2) l% +0p% +sU32\x20(2) r% 0v% -sS32\x20(3) x% -0|% -sS32\x20(3) ~% -b10100110000000 "& -0$& -sU32\x20(2) && -0*& -sU32\x20(2) ,& -00& -sCmpRBOne\x20(8) 2& -b10100110000000 8& -b1100 :& -b10100110000000 <& -b1100 >& -b10100110000000 @& -b1100 B& -b10100110000000 D& -b1100 F& -b10100110000000 H& -b1100 J& -b10100110000000 L& -b1100 N& -b1100 R& -b1100 V& -b1100 Z& -b1100 ^& -b1100 b& -b1100 f& -b1100 j& -b1100 n& -b1100 r& -b1100 v& -b1100 z& -b1100 ~& -b1100 $' -b1100 (' -b1100 ,' -b1100 0' +sCmpRBOne\x20(8) x% #27000000 1. 1= b1001 L -b1001 X +sCmpRBTwo\x20(9) X sCmpRBTwo\x20(9) d -sCmpRBTwo\x20(9) p -b1111101101001000010100110000000 F# -b1101 L# -b1101 V# -b1101 [# +b1111101101001000010100110000000 .# +b1101 4# +b1101 ># +b1101 C# +b1101 F# +b1101 K# +b1101 P# +b1101 U# +b1101 Z# b1101 ^# -b1101 c# -b1101 h# -b1101 m# -b1101 r# +b1101 b# +b1101 g# +b1101 l# +b1101 q# b1101 v# b1101 z# b1101 !$ b1101 &$ b1101 +$ b1101 0$ -b1101 4$ -b1101 9$ -b1101 >$ -b1101 C$ -b1101 H$ -b1101 M$ -b1101 R$ -b1101 W$ -b1101 \$ -b1101 a$ -b1101 f$ +b1101 5$ +b1101 :$ +b1101 ?$ +b1101 D$ +b1101 I$ +b1101 N$ +b1101 S$ +b1101 X$ +b1101 ]$ +b1101 b$ +b1101 g$ b1101 k$ -b1101 p$ -b1101 u$ -b1101 z$ +b1101 o$ +b1101 s$ +b1101 w$ +b1101 {$ b1101 !% b1101 %% b1101 )% @@ -5202,90 +4066,67 @@ b1101 M% b1101 Q% b1101 U% b1101 Y% -b1101 ]% -b1101 a% -b1101 e% -b1101 i% -b1101 m% -b1101 q% +1^% +sS64\x20(1) `% +1d% +sS64\x20(1) f% +1j% +sU64\x20(0) l% +1p% +sU64\x20(0) r% 1v% -sS64\x20(1) x% -1|% -sS64\x20(1) ~% -1$& -sU64\x20(0) && -1*& -sU64\x20(0) ,& -10& -sCmpRBTwo\x20(9) 2& -b1101 :& -b1101 >& -b1101 B& -b1101 F& -b1101 J& -b1101 N& -b1101 R& -b1101 V& -b1101 Z& -b1101 ^& -b1101 b& -b1101 f& -b1101 j& -b1101 n& -b1101 r& -b1101 v& -b1101 z& -b1101 ~& -b1101 $' -b1101 (' -b1101 ,' -b1101 0' +sCmpRBTwo\x20(9) x% #28000000 0. 1/ 0= 1> b1010 L -b1010 X +sCmpEqB\x20(10) X sCmpEqB\x20(10) d -sCmpEqB\x20(10) p -b1111101100001000010100111000000 F# -b10100111000000 J# -b1100 L# -b10100111000000 N# -b10100111000000 T# -b1100 V# -b10100111 Y# -b1100 [# +b1111101100001000010100111000000 .# +b10100111000000 2# +b1100 4# +b10100111000000 6# +b10100111000000 <# +b1100 ># +b10100111 A# +b1100 C# +b1100 F# +b1100 K# +b1100 P# +b1100 U# +b10100111000000 X# +b1100 Z# +b10100111000000 \# b1100 ^# -b1100 c# -b1100 h# -b1100 m# -b10100111000000 p# -b1100 r# +b1100 b# +b1100 g# +b1100 l# +b1100 q# b10100111000000 t# b1100 v# b1100 z# b1100 !$ b1100 &$ b1100 +$ -b10100111000000 .$ b1100 0$ -b1100 4$ -b1100 9$ -b1100 >$ -b1100 C$ -b1100 H$ -b1100 M$ -b1100 R$ -b1100 W$ -b1100 \$ -b1100 a$ -b1100 f$ +b1100 5$ +b1100 :$ +b1100 ?$ +b1100 D$ +b1100 I$ +b1100 N$ +b1100 S$ +b1100 X$ +b1100 ]$ +b1100 b$ +b1100 g$ b1100 k$ -b1100 p$ -b1100 u$ -b1100 z$ +b1100 o$ +b1100 s$ +b1100 w$ +b1100 {$ b1100 !% b1100 %% b1100 )% @@ -5301,2270 +4142,16 @@ b1100 M% b1100 Q% b1100 U% b1100 Y% -b1100 ]% -b1100 a% -b1100 e% -b1100 i% -b1100 m% -b1100 q% -b10100111000000 t% +b10100111000000 \% +0^% +sS32\x20(3) `% +0d% +sS32\x20(3) f% +b10100111000000 h% +0j% +sU32\x20(2) l% +0p% +sU32\x20(2) r% 0v% -sS32\x20(3) x% -0|% -sS32\x20(3) ~% -b10100111000000 "& -0$& -sU32\x20(2) && -0*& -sU32\x20(2) ,& -00& -sCmpRBOne\x20(8) 2& -b10100111000000 8& -b1100 :& -b10100111000000 <& -b1100 >& -b10100111000000 @& -b1100 B& -b10100111000000 D& -b1100 F& -b10100111000000 H& -b1100 J& -b10100111000000 L& -b1100 N& -b1100 R& -b1100 V& -b1100 Z& -b1100 ^& -b1100 b& -b1100 f& -b1100 j& -b1100 n& -b1100 r& -b1100 v& -b1100 z& -b1100 ~& -b1100 $' -b1100 (' -b1100 ,' -b1100 0' +sCmpRBOne\x20(8) x% #29000000 -sLogicalI\x20(3) " -b100011 $ -sHdlSome\x20(1) ' -b0 ) -b1000100110101011 + -0/ -b100011 3 -sHdlSome\x20(1) 6 -b0 8 -b1000100110101011 : -0> -b100011 B -sHdlSome\x20(1) E -b0 G -b1000100110101011 I -b1000 L -b100011 N -sHdlSome\x20(1) Q -b0 S -b1000100110101011 U -b1000 X -b100011 Z -sHdlSome\x20(1) ] -b0 _ -b1000100110101011 a -sCmpRBOne\x20(8) d -b100011 f -sHdlSome\x20(1) i -b0 k -b1000100110101011 m -sCmpRBOne\x20(8) p -b11 q -b100011 r -sHdlSome\x20(1) u -b0 w -b1000100110101011 y -sStore\x20(1) { -b1 | -b100011 } -sHdlSome\x20(1) "" -b0 $" -b1000100110101011 &" -b1 (" -b100011 )" -sHdlSome\x20(1) ," -b0 ." -b1000100110101011 0" -b1110000100000111000100110101011 F# -b1000100110101011 J# -b11 K# -b100 L# -b100011 M# -b111000100110101011 N# -b1000100110101011 T# -b11 U# -b100 V# -b100011 W# -1X# -b1000100110 Y# -b11 Z# -b100 [# -b10001 \# -b11 ]# -b100 ^# -b10001 a# -b11 b# -b100 c# -b10001 f# -b11 g# -b100 h# -b10001 k# -b11 l# -b100 m# -b1000100110101011 p# -b11 q# -b100 r# -b1000100110101011 t# -b11 u# -b100 v# -b10001 x# -b11 y# -b100 z# -b10001 }# -b11 ~# -b100 !$ -b10001 $$ -b11 %$ -b100 &$ -b10001 )$ -b11 *$ -b100 +$ -b1000100110101011 .$ -b11 /$ -b100 0$ -b10001 2$ -b11 3$ -b100 4$ -b10001 7$ -b11 8$ -b100 9$ -b10001 <$ -b11 =$ -b100 >$ -b10001 A$ -b11 B$ -b100 C$ -b10001 F$ -b11 G$ -b100 H$ -b10001 K$ -b11 L$ -b100 M$ -b10001 P$ -b11 Q$ -b100 R$ -b10001 U$ -b11 V$ -b100 W$ -b10001 Z$ -b11 [$ -b100 \$ -b10001 _$ -b11 `$ -b100 a$ -b10001 d$ -b11 e$ -b100 f$ -b10001 i$ -b11 j$ -b100 k$ -b10001 n$ -b11 o$ -b100 p$ -b10001 s$ -b11 t$ -b100 u$ -b10001 x$ -b11 y$ -b100 z$ -b10001 }$ -b11 ~$ -b100 !% -b11 $% -b100 %% -b11 (% -b100 )% -b11 ,% -b100 -% -b11 0% -b100 1% -b11 4% -b100 5% -b11 8% -b100 9% -b11 <% -b100 =% -b11 @% -b100 A% -b11 D% -b100 E% -b11 H% -b100 I% -b11 L% -b100 M% -b11 P% -b100 Q% -b11 T% -b100 U% -b11 X% -b100 Y% -b11 \% -b100 ]% -b11 `% -b100 a% -b11 d% -b100 e% -b11 h% -b100 i% -b11 l% -b100 m% -b11 p% -b100 q% -b1000100110101011 t% -b11 u% -b1 w% -b1001 y% -b10001 z% -b11 {% -b1 }% -b1001 !& -b1000100110101011 "& -b11 #& -b1 %& -b1001 '& -b10001 (& -b11 )& -b1 +& -b1001 -& -b10001 .& -b11 /& -b1 1& -b1001 3& -b10001 4& -b11 5& -b1 6& -b1001 7& -b1000100110101011 8& -b11 9& -b100 :& -b1000100110101011 <& -b11 =& -b100 >& -b1000100110101011 @& -b11 A& -b100 B& -b1000100110101011 D& -b11 E& -b100 F& -b1000100110101011 H& -b11 I& -b100 J& -b1000100110101011 L& -b11 M& -b100 N& -b10001 P& -b11 Q& -b100 R& -b10001 T& -b11 U& -b100 V& -b10001 X& -b11 Y& -b100 Z& -b10001 \& -b11 ]& -b100 ^& -b10001 `& -b11 a& -b100 b& -b10001 d& -b11 e& -b100 f& -b10001 h& -b11 i& -b100 j& -b10001 l& -b11 m& -b100 n& -b10001 p& -b11 q& -b100 r& -b10001 t& -b11 u& -b100 v& -b10001 x& -b11 y& -b100 z& -b10001 |& -b11 }& -b100 ~& -b10001 "' -b11 #' -b100 $' -b10001 &' -b11 '' -b100 (' -b10001 *' -b11 +' -b100 ,' -b10001 .' -b11 /' -b100 0' -#30000000 -b1000100 * -b1101010110000000000000000 + -b1000100 9 -b1101010110000000000000000 : -b1000100 H -b1101010110000000000000000 I -b1000100 T -b1101010110000000000000000 U -b1000100 ` -b1101010110000000000000000 a -b1000100 l -b1101010110000000000000000 m -b1000100 x -b1101010110000000000000000 y -b1000100 %" -b1101010110000000000000000 &" -b1000100 /" -b1101010110000000000000000 0" -b1110100100000111000100110101011 F# -#31000000 -sHdlNone\x20(0) ' -b0 * -b1000100110101011 + -1/ -10 -sHdlNone\x20(0) 6 -b0 9 -b1000100110101011 : -1> -1? -sHdlNone\x20(0) E -b0 H -b1000100110101011 I -b1110 L -sHdlNone\x20(0) Q -b0 T -b1000100110101011 U -b1110 X -sHdlNone\x20(0) ] -b0 ` -b1000100110101011 a -s\x20(14) d -sHdlNone\x20(0) i -b0 l -b1000100110101011 m -s\x20(14) p -sHdlNone\x20(0) u -b0 x -b1000100110101011 y -sHdlNone\x20(0) "" -b0 %" -b1000100110101011 &" -sHdlNone\x20(0) ," -b0 /" -b1000100110101011 0" -b1100000100000111000100110101011 F# -#32000000 -b100000 $ -b100000 ( -b0 + -b100000 3 -b100000 7 -b0 : -b100000 B -b100000 F -b0 I -b100000 N -b100000 R -b0 U -b100000 Z -b100000 ^ -b0 a -b100000 f -b100000 j -b0 m -b100000 r -b100000 v -b0 y -b100000 } -b100000 #" -b0 &" -b100000 )" -b100000 -" -b0 0" -b0 C# -b1100000000000000000000000000000 F# -b0 J# -b0 K# -b0 L# -b0 M# -b0 N# -b0 T# -b0 U# -b0 V# -b0 W# -0X# -b0 Y# -b0 Z# -b0 [# -b0 \# -b0 ]# -b0 ^# -b0 a# -b0 b# -b0 c# -b0 f# -b0 g# -b0 h# -b0 k# -b0 l# -b0 m# -b0 p# -b0 q# -b0 r# -b0 t# -b0 u# -b0 v# -b0 x# -b0 y# -b0 z# -b0 }# -b0 ~# -b0 !$ -b0 $$ -b0 %$ -b0 &$ -b0 )$ -b0 *$ -b0 +$ -b0 .$ -b0 /$ -b0 0$ -b0 2$ -b0 3$ -b0 4$ -b0 7$ -b0 8$ -b0 9$ -b0 <$ -b0 =$ -b0 >$ -b0 A$ -b0 B$ -b0 C$ -b0 F$ -b0 G$ -b0 H$ -b0 K$ -b0 L$ -b0 M$ -b0 P$ -b0 Q$ -b0 R$ -b0 U$ -b0 V$ -b0 W$ -b0 Z$ -b0 [$ -b0 \$ -b0 _$ -b0 `$ -b0 a$ -b0 d$ -b0 e$ -b0 f$ -b0 i$ -b0 j$ -b0 k$ -b0 n$ -b0 o$ -b0 p$ -b0 s$ -b0 t$ -b0 u$ -b0 x$ -b0 y$ -b0 z$ -b0 }$ -b0 ~$ -b0 !% -b0 $% -b0 %% -b0 (% -b0 )% -b0 ,% -b0 -% -b0 0% -b0 1% -b0 4% -b0 5% -b0 8% -b0 9% -b0 <% -b0 =% -b0 @% -b0 A% -b0 D% -b0 E% -b0 H% -b0 I% -b0 L% -b0 M% -b0 P% -b0 Q% -b0 T% -b0 U% -b0 X% -b0 Y% -b0 \% -b0 ]% -b0 `% -b0 a% -b0 d% -b0 e% -b0 h% -b0 i% -b0 l% -b0 m% -b0 p% -b0 q% -b0 t% -b0 u% -b0 w% -b11111111 y% -b0 z% -b0 {% -b0 }% -b11111111 !& -b0 "& -b0 #& -b0 %& -b11111111 '& -b0 (& -b0 )& -b0 +& -b11111111 -& -b0 .& -b0 /& -b0 1& -b11111111 3& -b0 4& -b0 5& -b0 6& -b11111111 7& -b0 8& -b0 9& -b0 :& -b0 <& -b0 =& -b0 >& -b0 @& -b0 A& -b0 B& -b0 D& -b0 E& -b0 F& -b0 H& -b0 I& -b0 J& -b0 L& -b0 M& -b0 N& -b0 P& -b0 Q& -b0 R& -b0 T& -b0 U& -b0 V& -b0 X& -b0 Y& -b0 Z& -b0 \& -b0 ]& -b0 ^& -b0 `& -b0 a& -b0 b& -b0 d& -b0 e& -b0 f& -b0 h& -b0 i& -b0 j& -b0 l& -b0 m& -b0 n& -b0 p& -b0 q& -b0 r& -b0 t& -b0 u& -b0 v& -b0 x& -b0 y& -b0 z& -b0 |& -b0 }& -b0 ~& -b0 "' -b0 #' -b0 $' -b0 &' -b0 '' -b0 (' -b0 *' -b0 +' -b0 ,' -b0 .' -b0 /' -b0 0' -#33000000 -b100011 $ -b100100 ( -b1000100 * -b1101010110000000000000000 + -b100011 3 -b100100 7 -b1000100 9 -b1101010110000000000000000 : -b100011 B -b100100 F -b1000100 H -b1101010110000000000000000 I -b100011 N -b100100 R -b1000100 T -b1101010110000000000000000 U -b100011 Z -b100100 ^ -b1000100 ` -b1101010110000000000000000 a -b100011 f -b100100 j -b1000100 l -b1101010110000000000000000 m -b100011 r -b100100 v -b1000100 x -b1101010110000000000000000 y -b100011 } -b100100 #" -b1000100 %" -b1101010110000000000000000 &" -b100011 )" -b100100 -" -b1000100 /" -b1101010110000000000000000 0" -b1 C# -b1100100100000111000100110101011 F# -b1000100110101011 J# -b11 K# -b100 L# -b100011 M# -b111000100110101011 N# -b1000100110101011 T# -b11 U# -b100 V# -b100011 W# -1X# -b1000100110 Y# -b11 Z# -b100 [# -b10001 \# -b11 ]# -b100 ^# -b10001 a# -b11 b# -b100 c# -b10001 f# -b11 g# -b100 h# -b10001 k# -b11 l# -b100 m# -b1000100110101011 p# -b11 q# -b100 r# -b1000100110101011 t# -b11 u# -b100 v# -b10001 x# -b11 y# -b100 z# -b10001 }# -b11 ~# -b100 !$ -b10001 $$ -b11 %$ -b100 &$ -b10001 )$ -b11 *$ -b100 +$ -b1000100110101011 .$ -b11 /$ -b100 0$ -b10001 2$ -b11 3$ -b100 4$ -b10001 7$ -b11 8$ -b100 9$ -b10001 <$ -b11 =$ -b100 >$ -b10001 A$ -b11 B$ -b100 C$ -b10001 F$ -b11 G$ -b100 H$ -b10001 K$ -b11 L$ -b100 M$ -b10001 P$ -b11 Q$ -b100 R$ -b10001 U$ -b11 V$ -b100 W$ -b10001 Z$ -b11 [$ -b100 \$ -b10001 _$ -b11 `$ -b100 a$ -b10001 d$ -b11 e$ -b100 f$ -b10001 i$ -b11 j$ -b100 k$ -b10001 n$ -b11 o$ -b100 p$ -b10001 s$ -b11 t$ -b100 u$ -b10001 x$ -b11 y$ -b100 z$ -b10001 }$ -b11 ~$ -b100 !% -b11 $% -b100 %% -b11 (% -b100 )% -b11 ,% -b100 -% -b11 0% -b100 1% -b11 4% -b100 5% -b11 8% -b100 9% -b11 <% -b100 =% -b11 @% -b100 A% -b11 D% -b100 E% -b11 H% -b100 I% -b11 L% -b100 M% -b11 P% -b100 Q% -b11 T% -b100 U% -b11 X% -b100 Y% -b11 \% -b100 ]% -b11 `% -b100 a% -b11 d% -b100 e% -b11 h% -b100 i% -b11 l% -b100 m% -b11 p% -b100 q% -b1000100110101011 t% -b11 u% -b1 w% -b1001 y% -b10001 z% -b11 {% -b1 }% -b1001 !& -b1000100110101011 "& -b11 #& -b1 %& -b1001 '& -b10001 (& -b11 )& -b1 +& -b1001 -& -b10001 .& -b11 /& -b1 1& -b1001 3& -b10001 4& -b11 5& -b1 6& -b1001 7& -b1000100110101011 8& -b11 9& -b100 :& -b1000100110101011 <& -b11 =& -b100 >& -b1000100110101011 @& -b11 A& -b100 B& -b1000100110101011 D& -b11 E& -b100 F& -b1000100110101011 H& -b11 I& -b100 J& -b1000100110101011 L& -b11 M& -b100 N& -b10001 P& -b11 Q& -b100 R& -b10001 T& -b11 U& -b100 V& -b10001 X& -b11 Y& -b100 Z& -b10001 \& -b11 ]& -b100 ^& -b10001 `& -b11 a& -b100 b& -b10001 d& -b11 e& -b100 f& -b10001 h& -b11 i& -b100 j& -b10001 l& -b11 m& -b100 n& -b10001 p& -b11 q& -b100 r& -b10001 t& -b11 u& -b100 v& -b10001 x& -b11 y& -b100 z& -b10001 |& -b11 }& -b100 ~& -b10001 "' -b11 #' -b100 $' -b10001 &' -b11 '' -b100 (' -b10001 *' -b11 +' -b100 ,' -b10001 .' -b11 /' -b100 0' -#34000000 -b0 * -b1000100110101011 + -01 -b0 9 -b1000100110101011 : -0@ -b0 H -b1000100110101011 I -b110 L -b0 T -b1000100110101011 U -b110 X -b0 ` -b1000100110101011 a -sU8\x20(6) d -b0 l -b1000100110101011 m -sU8\x20(6) p -b0 x -b1000100110101011 y -b0 %" -b1000100110101011 &" -b0 /" -b1000100110101011 0" -b1101000100000111000100110101011 F# -#35000000 -b100000 $ -b100000 ( -b0 + -b100000 3 -b100000 7 -b0 : -b100000 B -b100000 F -b0 I -b100000 N -b100000 R -b0 U -b100000 Z -b100000 ^ -b0 a -b100000 f -b100000 j -b0 m -b100000 r -b100000 v -b0 y -b100000 } -b100000 #" -b0 &" -b100000 )" -b100000 -" -b0 0" -b1101000000000000000000000000000 F# -b0 J# -b0 K# -b0 L# -b0 M# -b0 N# -b0 T# -b0 U# -b0 V# -b0 W# -0X# -b0 Y# -b0 Z# -b0 [# -b0 \# -b0 ]# -b0 ^# -b0 a# -b0 b# -b0 c# -b0 f# -b0 g# -b0 h# -b0 k# -b0 l# -b0 m# -b0 p# -b0 q# -b0 r# -b0 t# -b0 u# -b0 v# -b0 x# -b0 y# -b0 z# -b0 }# -b0 ~# -b0 !$ -b0 $$ -b0 %$ -b0 &$ -b0 )$ -b0 *$ -b0 +$ -b0 .$ -b0 /$ -b0 0$ -b0 2$ -b0 3$ -b0 4$ -b0 7$ -b0 8$ -b0 9$ -b0 <$ -b0 =$ -b0 >$ -b0 A$ -b0 B$ -b0 C$ -b0 F$ -b0 G$ -b0 H$ -b0 K$ -b0 L$ -b0 M$ -b0 P$ -b0 Q$ -b0 R$ -b0 U$ -b0 V$ -b0 W$ -b0 Z$ -b0 [$ -b0 \$ -b0 _$ -b0 `$ -b0 a$ -b0 d$ -b0 e$ -b0 f$ -b0 i$ -b0 j$ -b0 k$ -b0 n$ -b0 o$ -b0 p$ -b0 s$ -b0 t$ -b0 u$ -b0 x$ -b0 y$ -b0 z$ -b0 }$ -b0 ~$ -b0 !% -b0 $% -b0 %% -b0 (% -b0 )% -b0 ,% -b0 -% -b0 0% -b0 1% -b0 4% -b0 5% -b0 8% -b0 9% -b0 <% -b0 =% -b0 @% -b0 A% -b0 D% -b0 E% -b0 H% -b0 I% -b0 L% -b0 M% -b0 P% -b0 Q% -b0 T% -b0 U% -b0 X% -b0 Y% -b0 \% -b0 ]% -b0 `% -b0 a% -b0 d% -b0 e% -b0 h% -b0 i% -b0 l% -b0 m% -b0 p% -b0 q% -b0 t% -b0 u% -b0 w% -b11111111 y% -b0 z% -b0 {% -b0 }% -b11111111 !& -b0 "& -b0 #& -b0 %& -b11111111 '& -b0 (& -b0 )& -b0 +& -b11111111 -& -b0 .& -b0 /& -b0 1& -b11111111 3& -b0 4& -b0 5& -b0 6& -b11111111 7& -b0 8& -b0 9& -b0 :& -b0 <& -b0 =& -b0 >& -b0 @& -b0 A& -b0 B& -b0 D& -b0 E& -b0 F& -b0 H& -b0 I& -b0 J& -b0 L& -b0 M& -b0 N& -b0 P& -b0 Q& -b0 R& -b0 T& -b0 U& -b0 V& -b0 X& -b0 Y& -b0 Z& -b0 \& -b0 ]& -b0 ^& -b0 `& -b0 a& -b0 b& -b0 d& -b0 e& -b0 f& -b0 h& -b0 i& -b0 j& -b0 l& -b0 m& -b0 n& -b0 p& -b0 q& -b0 r& -b0 t& -b0 u& -b0 v& -b0 x& -b0 y& -b0 z& -b0 |& -b0 }& -b0 ~& -b0 "' -b0 #' -b0 $' -b0 &' -b0 '' -b0 (' -b0 *' -b0 +' -b0 ,' -b0 .' -b0 /' -b0 0' -#36000000 -b100011 $ -b100100 ( -b1000100 * -b1101010110000000000000000 + -b100011 3 -b100100 7 -b1000100 9 -b1101010110000000000000000 : -b100011 B -b100100 F -b1000100 H -b1101010110000000000000000 I -b100011 N -b100100 R -b1000100 T -b1101010110000000000000000 U -b100011 Z -b100100 ^ -b1000100 ` -b1101010110000000000000000 a -b100011 f -b100100 j -b1000100 l -b1101010110000000000000000 m -b100011 r -b100100 v -b1000100 x -b1101010110000000000000000 y -b100011 } -b100100 #" -b1000100 %" -b1101010110000000000000000 &" -b100011 )" -b100100 -" -b1000100 /" -b1101010110000000000000000 0" -b1101100100000111000100110101011 F# -b1000100110101011 J# -b11 K# -b100 L# -b100011 M# -b111000100110101011 N# -b1000100110101011 T# -b11 U# -b100 V# -b100011 W# -1X# -b1000100110 Y# -b11 Z# -b100 [# -b10001 \# -b11 ]# -b100 ^# -b10001 a# -b11 b# -b100 c# -b10001 f# -b11 g# -b100 h# -b10001 k# -b11 l# -b100 m# -b1000100110101011 p# -b11 q# -b100 r# -b1000100110101011 t# -b11 u# -b100 v# -b10001 x# -b11 y# -b100 z# -b10001 }# -b11 ~# -b100 !$ -b10001 $$ -b11 %$ -b100 &$ -b10001 )$ -b11 *$ -b100 +$ -b1000100110101011 .$ -b11 /$ -b100 0$ -b10001 2$ -b11 3$ -b100 4$ -b10001 7$ -b11 8$ -b100 9$ -b10001 <$ -b11 =$ -b100 >$ -b10001 A$ -b11 B$ -b100 C$ -b10001 F$ -b11 G$ -b100 H$ -b10001 K$ -b11 L$ -b100 M$ -b10001 P$ -b11 Q$ -b100 R$ -b10001 U$ -b11 V$ -b100 W$ -b10001 Z$ -b11 [$ -b100 \$ -b10001 _$ -b11 `$ -b100 a$ -b10001 d$ -b11 e$ -b100 f$ -b10001 i$ -b11 j$ -b100 k$ -b10001 n$ -b11 o$ -b100 p$ -b10001 s$ -b11 t$ -b100 u$ -b10001 x$ -b11 y$ -b100 z$ -b10001 }$ -b11 ~$ -b100 !% -b11 $% -b100 %% -b11 (% -b100 )% -b11 ,% -b100 -% -b11 0% -b100 1% -b11 4% -b100 5% -b11 8% -b100 9% -b11 <% -b100 =% -b11 @% -b100 A% -b11 D% -b100 E% -b11 H% -b100 I% -b11 L% -b100 M% -b11 P% -b100 Q% -b11 T% -b100 U% -b11 X% -b100 Y% -b11 \% -b100 ]% -b11 `% -b100 a% -b11 d% -b100 e% -b11 h% -b100 i% -b11 l% -b100 m% -b11 p% -b100 q% -b1000100110101011 t% -b11 u% -b1 w% -b1001 y% -b10001 z% -b11 {% -b1 }% -b1001 !& -b1000100110101011 "& -b11 #& -b1 %& -b1001 '& -b10001 (& -b11 )& -b1 +& -b1001 -& -b10001 .& -b11 /& -b1 1& -b1001 3& -b10001 4& -b11 5& -b1 6& -b1001 7& -b1000100110101011 8& -b11 9& -b100 :& -b1000100110101011 <& -b11 =& -b100 >& -b1000100110101011 @& -b11 A& -b100 B& -b1000100110101011 D& -b11 E& -b100 F& -b1000100110101011 H& -b11 I& -b100 J& -b1000100110101011 L& -b11 M& -b100 N& -b10001 P& -b11 Q& -b100 R& -b10001 T& -b11 U& -b100 V& -b10001 X& -b11 Y& -b100 Z& -b10001 \& -b11 ]& -b100 ^& -b10001 `& -b11 a& -b100 b& -b10001 d& -b11 e& -b100 f& -b10001 h& -b11 i& -b100 j& -b10001 l& -b11 m& -b100 n& -b10001 p& -b11 q& -b100 r& -b10001 t& -b11 u& -b100 v& -b10001 x& -b11 y& -b100 z& -b10001 |& -b11 }& -b100 ~& -b10001 "' -b11 #' -b100 $' -b10001 &' -b11 '' -b100 (' -b10001 *' -b11 +' -b100 ,' -b10001 .' -b11 /' -b100 0' -#37000000 -sLogical\x20(2) " -b100101 ) -b0 * -b0 + -0/ -00 -11 -b100101 8 -b0 9 -b0 : -0> -0? -1@ -b100101 G -b0 H -b0 I -b1000 L -b100101 S -b0 T -b0 U -b1000 X -b100101 _ -b0 ` -b0 a -sCmpRBOne\x20(8) d -b100101 k -b0 l -b0 m -sCmpRBOne\x20(8) p -b10 q -b100101 w -b0 x -b0 y -sLoad\x20(0) { -b100101 $" -b0 %" -b0 &" -b100101 ." -b0 /" -b0 0" -b1111100100000110010100000111000 F# -b10100000111000 J# -b110010100000111000 N# -b10100000111000 T# -0X# -b10100000 Y# -b101 \# -b101 a# -b101 f# -b101 k# -b10100000111000 p# -b10100000111000 t# -b101 x# -b101 }# -b101 $$ -b101 )$ -b10100000111000 .$ -b101 2$ -b101 7$ -b101 <$ -b101 A$ -b101 F$ -b101 K$ -b101 P$ -b101 U$ -b101 Z$ -b101 _$ -b101 d$ -b101 i$ -b101 n$ -b101 s$ -b101 x$ -b101 }$ -b10100000111000 t% -b101 z% -b10100000111000 "& -b101 (& -b101 .& -b101 4& -b10100000111000 8& -b10100000111000 <& -b10100000111000 @& -b10100000111000 D& -b10100000111000 H& -b10100000111000 L& -b101 P& -b101 T& -b101 X& -b101 \& -b101 `& -b101 d& -b101 h& -b101 l& -b101 p& -b101 t& -b101 x& -b101 |& -b101 "' -b101 &' -b101 *' -b101 .' -#38000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010100000111001 F# -b10100000111001 J# -b110010100000111001 N# -b10100000111001 T# -1X# -b10100000111001 p# -b10100000111001 t# -b10100000111001 .$ -b10100000111001 t% -b10100000111001 "& -b10100000111001 8& -b10100000111001 <& -b10100000111001 @& -b10100000111001 D& -b10100000111001 H& -b10100000111001 L& -#39000000 -sHdlNone\x20(0) ' -1/ -10 -01 -sHdlNone\x20(0) 6 -1> -1? -0@ -sHdlNone\x20(0) E -b110 L -sHdlNone\x20(0) Q -b110 X -sHdlNone\x20(0) ] -sU8\x20(6) d -sHdlNone\x20(0) i -sU8\x20(6) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010101001111000 F# -b10101001111000 J# -b110010101001111000 N# -b10101001111000 T# -0X# -b10101001 Y# -b10101001111000 p# -b10101001111000 t# -b10101001111000 .$ -b10101001111000 t% -b10101001111000 "& -b10101001111000 8& -b10101001111000 <& -b10101001111000 @& -b10101001111000 D& -b10101001111000 H& -b10101001111000 L& -#40000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010101001111001 F# -b10101001111001 J# -b110010101001111001 N# -b10101001111001 T# -1X# -b10101001111001 p# -b10101001111001 t# -b10101001111001 .$ -b10101001111001 t% -b10101001111001 "& -b10101001111001 8& -b10101001111001 <& -b10101001111001 @& -b10101001111001 D& -b10101001111001 H& -b10101001111001 L& -#41000000 -sHdlNone\x20(0) ' -1. -sHdlNone\x20(0) 6 -1= -sHdlNone\x20(0) E -b111 L -sHdlNone\x20(0) Q -b111 X -sHdlNone\x20(0) ] -sS8\x20(7) d -sHdlNone\x20(0) i -sS8\x20(7) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010101110111000 F# -b10101110111000 J# -b110010101110111000 N# -b10101110111000 T# -0X# -b10101110 Y# -b10101110111000 p# -b10101110111000 t# -b10101110111000 .$ -b10101110111000 t% -b10101110111000 "& -b10101110111000 8& -b10101110111000 <& -b10101110111000 @& -b10101110111000 D& -b10101110111000 H& -b10101110111000 L& -#42000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010101110111001 F# -b10101110111001 J# -b110010101110111001 N# -b10101110111001 T# -1X# -b10101110111001 p# -b10101110111001 t# -b10101110111001 .$ -b10101110111001 t% -b10101110111001 "& -b10101110111001 8& -b10101110111001 <& -b10101110111001 @& -b10101110111001 D& -b10101110111001 H& -b10101110111001 L& -#43000000 -sHdlNone\x20(0) ' -0. -11 -sHdlNone\x20(0) 6 -0= -1@ -sHdlNone\x20(0) E -b1110 L -sHdlNone\x20(0) Q -b1110 X -sHdlNone\x20(0) ] -s\x20(14) d -sHdlNone\x20(0) i -s\x20(14) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010101101111000 F# -b10101101111000 J# -b110010101101111000 N# -b10101101111000 T# -0X# -b10101101 Y# -b10101101111000 p# -b10101101111000 t# -b10101101111000 .$ -b10101101111000 t% -b10101101111000 "& -b10101101111000 8& -b10101101111000 <& -b10101101111000 @& -b10101101111000 D& -b10101101111000 H& -b10101101111000 L& -#44000000 -sTransformedMove\x20(1) ! -sAddSub\x20(0) " -b0 ) -0/ -00 -01 -b0 8 -0> -0? -0@ -b0 G -b0 L -b0 S -b0 X -b0 _ -sU64\x20(0) d -b0 k -sU64\x20(0) p -b0 q -b0 w -b0 | -b0 $" -b0 (" -b0 ." -b1111100100000110010001101111000 F# -b10001101111000 J# -b110010001101111000 N# -b10001101111000 T# -b10001101 Y# -b100 \# -b100 a# -b100 f# -b100 k# -b10001101111000 p# -b10001101111000 t# -b100 x# -b100 }# -b100 $$ -b100 )$ -b10001101111000 .$ -b100 2$ -b100 7$ -b100 <$ -b100 A$ -b100 F$ -b100 K$ -b100 P$ -b100 U$ -b100 Z$ -b100 _$ -b100 d$ -b100 i$ -b100 n$ -b100 s$ -b100 x$ -b100 }$ -b10001101111000 t% -b100 z% -b10001101111000 "& -b100 (& -b100 .& -b100 4& -b10001101111000 8& -b10001101111000 <& -b10001101111000 @& -b10001101111000 D& -b10001101111000 H& -b10001101111000 L& -b100 P& -b100 T& -b100 X& -b100 \& -b100 `& -b100 d& -b100 h& -b100 l& -b100 p& -b100 t& -b100 x& -b100 |& -b100 "' -b100 &' -b100 *' -b100 .' -#45000000 -sAluBranch\x20(0) ! -sLogical\x20(2) " -sHdlSome\x20(1) ' -b100101 ) -1/ -10 -11 -sHdlSome\x20(1) 6 -b100101 8 -1> -1? -1@ -sHdlSome\x20(1) E -b100101 G -b1110 L -sHdlSome\x20(1) Q -b100101 S -b1110 X -sHdlSome\x20(1) ] -b100101 _ -s\x20(14) d -sHdlSome\x20(1) i -b100101 k -s\x20(14) p -b10 q -sHdlSome\x20(1) u -b100101 w -b1 | -sHdlSome\x20(1) "" -b100101 $" -b1 (" -sHdlSome\x20(1) ," -b100101 ." -b1111100100000110010101101111001 F# -b10101101111001 J# -b110010101101111001 N# -b10101101111001 T# -1X# -b10101101 Y# -b101 \# -b101 a# -b101 f# -b101 k# -b10101101111001 p# -b10101101111001 t# -b101 x# -b101 }# -b101 $$ -b101 )$ -b10101101111001 .$ -b101 2$ -b101 7$ -b101 <$ -b101 A$ -b101 F$ -b101 K$ -b101 P$ -b101 U$ -b101 Z$ -b101 _$ -b101 d$ -b101 i$ -b101 n$ -b101 s$ -b101 x$ -b101 }$ -b10101101111001 t% -b101 z% -b10101101111001 "& -b101 (& -b101 .& -b101 4& -b10101101111001 8& -b10101101111001 <& -b10101101111001 @& -b10101101111001 D& -b10101101111001 H& -b10101101111001 L& -b101 P& -b101 T& -b101 X& -b101 \& -b101 `& -b101 d& -b101 h& -b101 l& -b101 p& -b101 t& -b101 x& -b101 |& -b101 "' -b101 &' -b101 *' -b101 .' -#46000000 -b100100 ) -b100100 8 -b100100 G -b100100 S -b100100 _ -b100100 k -b100100 w -b100100 $" -b100100 ." -b1111100100000110010001101111001 F# -b10001101111001 J# -b110010001101111001 N# -b10001101111001 T# -b10001101 Y# -b100 \# -b100 a# -b100 f# -b100 k# -b10001101111001 p# -b10001101111001 t# -b100 x# -b100 }# -b100 $$ -b100 )$ -b10001101111001 .$ -b100 2$ -b100 7$ -b100 <$ -b100 A$ -b100 F$ -b100 K$ -b100 P$ -b100 U$ -b100 Z$ -b100 _$ -b100 d$ -b100 i$ -b100 n$ -b100 s$ -b100 x$ -b100 }$ -b10001101111001 t% -b100 z% -b10001101111001 "& -b100 (& -b100 .& -b100 4& -b10001101111001 8& -b10001101111001 <& -b10001101111001 @& -b10001101111001 D& -b10001101111001 H& -b10001101111001 L& -b100 P& -b100 T& -b100 X& -b100 \& -b100 `& -b100 d& -b100 h& -b100 l& -b100 p& -b100 t& -b100 x& -b100 |& -b100 "' -b100 &' -b100 *' -b100 .' -#47000000 -sHdlNone\x20(0) ' -b100101 ) -1. -00 -sHdlNone\x20(0) 6 -b100101 8 -1= -0? -sHdlNone\x20(0) E -b100101 G -b1011 L -sHdlNone\x20(0) Q -b100101 S -b1011 X -sHdlNone\x20(0) ] -b100101 _ -s\x20(11) d -sHdlNone\x20(0) i -b100101 k -s\x20(11) p -sHdlNone\x20(0) u -b100101 w -sHdlNone\x20(0) "" -b100101 $" -sHdlNone\x20(0) ," -b100101 ." -b1111100100000110010101100111000 F# -b10101100111000 J# -b110010101100111000 N# -b10101100111000 T# -0X# -b10101100 Y# -b101 \# -b101 a# -b101 f# -b101 k# -b10101100111000 p# -b10101100111000 t# -b101 x# -b101 }# -b101 $$ -b101 )$ -b10101100111000 .$ -b101 2$ -b101 7$ -b101 <$ -b101 A$ -b101 F$ -b101 K$ -b101 P$ -b101 U$ -b101 Z$ -b101 _$ -b101 d$ -b101 i$ -b101 n$ -b101 s$ -b101 x$ -b101 }$ -b10101100111000 t% -b101 z% -b10101100111000 "& -b101 (& -b101 .& -b101 4& -b10101100111000 8& -b10101100111000 <& -b10101100111000 @& -b10101100111000 D& -b10101100111000 H& -b10101100111000 L& -b101 P& -b101 T& -b101 X& -b101 \& -b101 `& -b101 d& -b101 h& -b101 l& -b101 p& -b101 t& -b101 x& -b101 |& -b101 "' -b101 &' -b101 *' -b101 .' -#48000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010101100111001 F# -b10101100111001 J# -b110010101100111001 N# -b10101100111001 T# -1X# -b10101100111001 p# -b10101100111001 t# -b10101100111001 .$ -b10101100111001 t% -b10101100111001 "& -b10101100111001 8& -b10101100111001 <& -b10101100111001 @& -b10101100111001 D& -b10101100111001 H& -b10101100111001 L& -#49000000 -sHdlNone\x20(0) ' -0/ -01 -sHdlNone\x20(0) 6 -0> -0@ -sHdlNone\x20(0) E -b1 L -sHdlNone\x20(0) Q -b1 X -sHdlNone\x20(0) ] -sS64\x20(1) d -sHdlNone\x20(0) i -sS64\x20(1) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010100011111000 F# -b10100011111000 J# -b110010100011111000 N# -b10100011111000 T# -0X# -b10100011 Y# -b10100011111000 p# -b10100011111000 t# -b10100011111000 .$ -b10100011111000 t% -b10100011111000 "& -b10100011111000 8& -b10100011111000 <& -b10100011111000 @& -b10100011111000 D& -b10100011111000 H& -b10100011111000 L& -#50000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010100011111001 F# -b10100011111001 J# -b110010100011111001 N# -b10100011111001 T# -1X# -b10100011111001 p# -b10100011111001 t# -b10100011111001 .$ -b10100011111001 t% -b10100011111001 "& -b10100011111001 8& -b10100011111001 <& -b10100011111001 @& -b10100011111001 D& -b10100011111001 H& -b10100011111001 L& -#51000000 -sHdlNone\x20(0) ' -11 -sHdlNone\x20(0) 6 -1@ -sHdlNone\x20(0) E -b1001 L -sHdlNone\x20(0) Q -b1001 X -sHdlNone\x20(0) ] -sCmpRBTwo\x20(9) d -sHdlNone\x20(0) i -sCmpRBTwo\x20(9) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010101000111000 F# -b10101000111000 J# -b110010101000111000 N# -b10101000111000 T# -0X# -b10101000 Y# -b10101000111000 p# -b10101000111000 t# -b10101000111000 .$ -b10101000111000 t% -b10101000111000 "& -b10101000111000 8& -b10101000111000 <& -b10101000111000 @& -b10101000111000 D& -b10101000111000 H& -b10101000111000 L& -#52000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010101000111001 F# -b10101000111001 J# -b110010101000111001 N# -b10101000111001 T# -1X# -b10101000111001 p# -b10101000111001 t# -b10101000111001 .$ -b10101000111001 t% -b10101000111001 "& -b10101000111001 8& -b10101000111001 <& -b10101000111001 @& -b10101000111001 D& -b10101000111001 H& -b10101000111001 L& -#53000000 -sHdlNone\x20(0) ' -0. -1/ -01 -sHdlNone\x20(0) 6 -0= -1> -0@ -sHdlNone\x20(0) E -b10 L -sHdlNone\x20(0) Q -b10 X -sHdlNone\x20(0) ] -sU32\x20(2) d -sHdlNone\x20(0) i -sU32\x20(2) p -sHdlNone\x20(0) u -sHdlNone\x20(0) "" -sHdlNone\x20(0) ," -b1111100100000110010100001111000 F# -b10100001111000 J# -b110010100001111000 N# -b10100001111000 T# -0X# -b10100001 Y# -b10100001111000 p# -b10100001111000 t# -b10100001111000 .$ -b10100001111000 t% -b10100001111000 "& -b10100001111000 8& -b10100001111000 <& -b10100001111000 @& -b10100001111000 D& -b10100001111000 H& -b10100001111000 L& -#54000000 -sHdlSome\x20(1) ' -sHdlSome\x20(1) 6 -sHdlSome\x20(1) E -sHdlSome\x20(1) Q -sHdlSome\x20(1) ] -sHdlSome\x20(1) i -sHdlSome\x20(1) u -sHdlSome\x20(1) "" -sHdlSome\x20(1) ," -b1111100100000110010100001111001 F# -b10100001111001 J# -b110010100001111001 N# -b10100001111001 T# -1X# -b10100001111001 p# -b10100001111001 t# -b10100001111001 .$ -b10100001111001 t% -b10100001111001 "& -b10100001111001 8& -b10100001111001 <& -b10100001111001 @& -b10100001111001 D& -b10100001111001 H& -b10100001111001 L& -#55000000 diff --git a/crates/cpu/tests/simple_power_isa_decoder.rs b/crates/cpu/tests/simple_power_isa_decoder.rs index aa73b3a..84196d0 100644 --- a/crates/cpu/tests/simple_power_isa_decoder.rs +++ b/crates/cpu/tests/simple_power_isa_decoder.rs @@ -4,8 +4,7 @@ use cpu::{ decoder::simple_power_isa::decode_one_insn, instruction::{ - AddSubMOp, CompareMOp, CompareMode, LogicalMOp, MOp, MOpDestReg, MOpRegNum, MoveRegMOp, - OutputIntegerMode, + AddSubMOp, CompareMOp, CompareMode, MOp, MOpDestReg, MOpRegNum, OutputIntegerMode, }, util::array_vec::ArrayVec, }; @@ -53,19 +52,6 @@ impl fmt::Debug for TestCase { fn test_cases() -> Vec { let mut retval = Vec::new(); #[track_caller] - fn insn_empty(mnemonic: &'static str, first_input: u32, second_input: Option) -> TestCase { - let zero_mop = UInt::new_dyn(MOp.canonical().bit_width()) - .zero() - .cast_bits_to(MOp); - TestCase { - mnemonic, - first_input, - second_input, - output: ArrayVec::new_sim(ArrayVec[MOp][ConstUsize], &zero_mop), - loc: std::panic::Location::caller(), - } - } - #[track_caller] fn insn_single( mnemonic: &'static str, first_input: u32, @@ -82,7 +68,7 @@ fn test_cases() -> Vec { mnemonic, first_input, second_input, - output: single_storage, + output: single_storage.clone(), loc: std::panic::Location::caller(), } } @@ -677,221 +663,6 @@ fn test_cases() -> Vec { CompareMode::CmpEqB(), ), )); - macro_rules! insn_logic_i { - ( - $mnemonic:literal $dest:literal, $src:literal, $imm:literal; - $encoding:literal; - |[$a:ident, $b:ident]| $lut_fn:expr; - ) => { - retval.push(insn_single( - concat!( - $mnemonic, - " ", - stringify!($dest), - ", ", - stringify!($src), - ", ", - stringify!($imm) - ), - $encoding, - None, - LogicalMOp::logical_i( - MOpDestReg::new_sim( - &[MOpRegNum::power_isa_gpr_reg_num($dest)], - if $mnemonic.contains('.') { - &[MOpRegNum::POWER_ISA_CR_0_REG_NUM] - } else { - &[] - }, - ), - [MOpRegNum::power_isa_gpr_reg( - ($src as u8).cast_to_static::>().to_expr(), - ) - .value], - (($imm as u32) << if $mnemonic.contains('s') { 16 } else { 0 }) - .cast_to_static::>(), - OutputIntegerMode.Full64(), - LogicalMOp::lut_from_fn(|[$a, $b]| $lut_fn), - ), - )); - }; - } - insn_logic_i! { - "andi." 3, 4, 0x89ab; - 0x708389ab; - |[a, b]| a & b; - } - insn_logic_i! { - "andis." 3, 4, 0x89ab; - 0x748389ab; - |[a, b]| a & b; - } - insn_logic_i! { - "ori" 3, 4, 0x89ab; - 0x608389ab; - |[a, b]| a | b; - } - // ensure nop decodes to zero instructions - retval.push(insn_empty("ori 0, 0, 0", 0x60000000, None)); - insn_logic_i! { - "oris" 3, 4, 0x89ab; - 0x648389ab; - |[a, b]| a | b; - } - insn_logic_i! { - "xori" 3, 4, 0x89ab; - 0x688389ab; - |[a, b]| a ^ b; - } - insn_logic_i! { - "xori" 0, 0, 0; // ensure xnop actually decodes to a normal ALU instruction - 0x68000000; - |[a, b]| a ^ b; - } - insn_logic_i! { - "xoris" 3, 4, 0x89ab; - 0x6c8389ab; - |[a, b]| a ^ b; - } - macro_rules! insn_logic { - ( - $mnemonic:literal $dest:literal, $src0:literal, $src1:literal; - $encoding:literal; - |[$a:ident, $b:ident]| $lut_fn:expr; - ) => { - retval.push(insn_single( - concat!( - $mnemonic, - " ", - stringify!($dest), - ", ", - stringify!($src0), - ", ", - stringify!($src1) - ), - $encoding, - None, - LogicalMOp::logical( - MOpDestReg::new_sim( - &[MOpRegNum::power_isa_gpr_reg_num($dest)], - if $mnemonic.contains('.') { - &[MOpRegNum::POWER_ISA_CR_0_REG_NUM] - } else { - &[] - }, - ), - [ - MOpRegNum::power_isa_gpr_reg( - ($src0 as u8).cast_to_static::>().to_expr(), - ) - .value, - MOpRegNum::power_isa_gpr_reg( - ($src1 as u8).cast_to_static::>().to_expr(), - ) - .value, - ], - 0.cast_to_static::>(), - OutputIntegerMode.Full64(), - LogicalMOp::lut_from_fn(|[$a, $b]| $lut_fn), - ), - )); - }; - } - insn_logic! { - "and" 3, 4, 5; - 0x7c832838; - |[a, b]| a & b; - } - insn_logic! { - "and." 3, 4, 5; - 0x7c832839; - |[a, b]| a & b; - } - insn_logic! { - "xor" 3, 4, 5; - 0x7c832a78; - |[a, b]| a ^ b; - } - insn_logic! { - "xor." 3, 4, 5; - 0x7c832a79; - |[a, b]| a ^ b; - } - insn_logic! { - "nand" 3, 4, 5; - 0x7c832bb8; - |[a, b]| !(a & b); - } - insn_logic! { - "nand." 3, 4, 5; - 0x7c832bb9; - |[a, b]| !(a & b); - } - insn_logic! { - "or" 3, 4, 5; - 0x7c832b78; - |[a, b]| a | b; - } - retval.push(insn_single( - "or 3, 4, 4", // mr 3, 4 - 0x7c832378, - None, - MoveRegMOp::move_reg( - MOpDestReg::new_sim(&[MOpRegNum::power_isa_gpr_reg_num(3)], &[]), - [MOpRegNum::power_isa_gpr_reg(4_hdl_u5).value], - 0.cast_to_static::>(), - ), - )); - insn_logic! { - "or." 3, 4, 5; - 0x7c832b79; - |[a, b]| a | b; - } - insn_logic! { - "or." 3, 4, 4; // mr. 3, 4 - 0x7c832379; - |[a, b]| a | b; - } - insn_logic! { - "orc" 3, 4, 5; - 0x7c832b38; - |[a, b]| a | !b; - } - insn_logic! { - "orc." 3, 4, 5; - 0x7c832b39; - |[a, b]| a | !b; - } - insn_logic! { - "nor" 3, 4, 5; - 0x7c8328f8; - |[a, b]| !(a | b); - } - insn_logic! { - "nor." 3, 4, 5; - 0x7c8328f9; - |[a, b]| !(a | b); - } - insn_logic! { - "eqv" 3, 4, 5; - 0x7c832a38; - |[a, b]| a == b; - } - insn_logic! { - "eqv." 3, 4, 5; - 0x7c832a39; - |[a, b]| a == b; - } - insn_logic! { - "andc" 3, 4, 5; - 0x7c832878; - |[a, b]| a & !b; - } - insn_logic! { - "andc." 3, 4, 5; - 0x7c832879; - |[a, b]| a & !b; - } retval }