diff --git a/crates/cpu/src/config.rs b/crates/cpu/src/config.rs index 9a66c68..b3d9905 100644 --- a/crates/cpu/src/config.rs +++ b/crates/cpu/src/config.rs @@ -34,6 +34,8 @@ pub struct CpuConfig { pub units: Vec, pub out_reg_num_width: usize, pub fetch_width: NonZeroUsize, + pub max_branches_per_fetch: NonZeroUsize, + pub log2_fetch_width_in_bytes: u8, /// default value for [`UnitConfig::max_in_flight`] pub default_unit_max_in_flight: NonZeroUsize, pub rob_size: NonZeroUsize, @@ -47,6 +49,13 @@ impl CpuConfig { }; v }; + pub const DEFAULT_MAX_BRANCHES_PER_FETCH: NonZeroUsize = { + let Some(v) = NonZeroUsize::new(1) else { + unreachable!(); + }; + v + }; + pub const DEFAULT_LOG2_FETCH_WIDTH_IN_BYTES: u8 = 3; pub const DEFAULT_UNIT_MAX_IN_FLIGHT: NonZeroUsize = { let Some(v) = NonZeroUsize::new(8) else { unreachable!(); @@ -58,6 +67,8 @@ impl CpuConfig { units, out_reg_num_width: Self::DEFAULT_OUT_REG_NUM_WIDTH, fetch_width: Self::DEFAULT_FETCH_WIDTH, + max_branches_per_fetch: Self::DEFAULT_MAX_BRANCHES_PER_FETCH, + log2_fetch_width_in_bytes: Self::DEFAULT_LOG2_FETCH_WIDTH_IN_BYTES, default_unit_max_in_flight: Self::DEFAULT_UNIT_MAX_IN_FLIGHT, rob_size, } @@ -117,4 +128,21 @@ impl CpuConfig { UnitToRegAlloc[mop_ty][extra_out_ty][self.unit_num_width()][self.out_reg_num_width] [self.non_const_unit_nums().len()] } + pub fn fetch_width_in_bytes(&self) -> usize { + 1usize + .checked_shl(self.log2_fetch_width_in_bytes.into()) + .expect("log2_fetch_width_in_bytes is too big") + } } + +#[hdl(get(|c| c.fetch_width.get()))] +pub type CpuConfigFetchWidth> = DynSize; + +#[hdl(get(|c| c.max_branches_per_fetch.get()))] +pub type CpuConfigMaxBranchesPerFetch> = DynSize; + +#[hdl(get(|c| c.log2_fetch_width_in_bytes.into()))] +pub type CpuConfigLog2FetchWidthInBytes> = DynSize; + +#[hdl(get(|c| c.fetch_width_in_bytes()))] +pub type CpuConfigFetchWidthInBytes> = DynSize; diff --git a/crates/cpu/src/lib.rs b/crates/cpu/src/lib.rs index bae3720..a00b668 100644 --- a/crates/cpu/src/lib.rs +++ b/crates/cpu/src/lib.rs @@ -2,6 +2,7 @@ // See Notices.txt for copyright information pub mod config; pub mod instruction; +pub mod next_pc; pub mod reg_alloc; pub mod register; pub mod unit; diff --git a/crates/cpu/src/next_pc.rs b/crates/cpu/src/next_pc.rs new file mode 100644 index 0000000..afabd90 --- /dev/null +++ b/crates/cpu/src/next_pc.rs @@ -0,0 +1,1159 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// See Notices.txt for copyright information + +//! [Next-Instruction Logic](https://git.libre-chip.org/libre-chip/grant-tracking/issues/10) +//! +//! The basic idea here is that there's a `next_pc` stage that sends predicted fetch PCs to the `fetch` stage, +//! the `fetch` stage's outputs eventually end up in the `decode` stage, +//! after the `decode` stage there's a `post_decode` stage (that may run in the same clock cycle as `decode`) +//! that checks that the fetched instructions' kinds match the predicted instruction kinds and that feeds +//! information back to the `fetch` stage to cancel fetches that need to be predicted differently. + +use crate::{ + config::{CpuConfig, CpuConfigFetchWidth}, + util::array_vec::ArrayVec, +}; +use fayalite::{ + int::{UIntInRange, UIntInRangeInclusive, UIntInRangeType}, + prelude::*, + sim::value::SimOnlyValueTrait, + ty::StaticType, + util::ready_valid::ReadyValid, +}; + +#[hdl] +pub enum PredictedCond { + Taken, + Fallthrough, +} + +#[hdl] +pub struct PredictedFallthrough {} + +#[hdl] +pub enum BranchPredictionKind { + Branch(HdlOption), + IndirectBranch(HdlOption), + Call(HdlOption), + IndirectCall(HdlOption), + Ret(HdlOption), +} + +#[hdl(get(|c| c.max_branches_per_fetch.get() - 1))] +pub type NextPcPredictionMaxBranchesBeforeLast> = DynSize; + +#[hdl(no_static)] +pub struct NextPcPrediction> { + pub fetch_pc: UInt<64>, + pub async_interrupt: Bool, + pub branches_before_last: ArrayVec< + BranchPredictionKind, + NextPcPredictionMaxBranchesBeforeLast, + >, + pub last_branch: HdlOption>, + pub last_branch_target_pc: UInt<64>, +} + +pub const FETCH_BLOCK_ID_WIDTH: usize = FetchBlockIdInt::BITS as usize; +type FetchBlockIdInt = u8; + +#[hdl] +pub struct NextPcToFetchInterfaceInner { + pub next_fetch_pc: UInt<64>, + pub fetch_block_id: UInt<{ FETCH_BLOCK_ID_WIDTH }>, + pub in_progress_fetches_to_cancel: UInt<{ FETCH_BLOCK_ID_WIDTH }>, +} + +#[hdl(no_static)] +pub struct NextPcToFetchInterface> { + pub inner: ReadyValid, + pub config: C, +} + +#[hdl] +/// WIP version of decoded instruction just good enough to represent stuff needed for [`next_pc()`] since the actual instruction definition isn't finalized yet. This will be replaced at a later point. +pub enum WipDecodedInsnKind { + NonBranch, + Branch(UInt<64>), + BranchCond(UInt<64>), + IndirectBranch, + IndirectBranchCond, + Call(UInt<64>), + CallCond(UInt<64>), + IndirectCall, + IndirectCallCond, + Ret, + RetCond, + /// not actually an instruction read from memory, covers stuff like external interrupts, page faults, memory errors, and so on. + Interrupt(UInt<64>), +} + +impl WipDecodedInsnKind { + /// if this instruction should behave like [`Self::Interrupt`], return the target PC. + #[hdl] + pub fn interrupt_target_pc_sim(this: &SimValue) -> Option<&SimValue>> { + #[hdl(sim)] + match this { + Self::NonBranch + | Self::Branch(_) + | Self::BranchCond(_) + | Self::IndirectBranch + | Self::IndirectBranchCond + | Self::Call(_) + | Self::CallCond(_) + | Self::IndirectCall + | Self::IndirectCallCond + | Self::Ret + | Self::RetCond + | Self::Unknown => None, + Self::Interrupt(target_pc) => Some(target_pc), + } + } +} + +#[hdl] +/// WIP version of decoded instruction just good enough to represent stuff needed for [`next_pc()`] since the actual instruction definition isn't finalized yet. This will be replaced at a later point. +pub struct WipDecodedInsn { + pub fetch_block_id: UInt<8>, + pub id: UInt<12>, + pub pc: UInt<64>, + pub size_in_bytes: UInt<4>, + pub kind: WipDecodedInsnKind, +} + +#[hdl(no_static)] +/// handles updating speculative branch predictor state (e.g. branch histories) when instructions retire, +/// as well as updating state when a branch instruction is mis-speculated. +pub struct NextPcToRetireInterface> { + // TODO: add needed fields + pub config: C, +} + +#[hdl(no_static)] +pub struct DecodeToPostDecodeInterfaceInner> { + pub insns: ArrayVec>, + // TODO: add needed fields + pub config: C, +} + +#[hdl(no_static)] +pub struct DecodeToPostDecodeInterface> { + pub inner: ReadyValid>, +} + +#[hdl(no_static)] +pub struct PostDecodeOutputInterface> { + // TODO: add needed fields + pub config: C, +} + +#[hdl] +enum BranchPredictionState { + StronglyNotTaken, + WeaklyNotTaken, + WeaklyTaken, + StronglyTaken, +} + +impl BranchPredictionState { + #[must_use] + #[hdl] + fn is_taken(this: &SimValue) -> bool { + #[hdl(sim)] + match this { + Self::StronglyNotTaken => false, + Self::WeaklyNotTaken => false, + Self::WeaklyTaken => true, + Self::StronglyTaken => true, + } + } + #[must_use] + #[hdl] + fn towards_taken(this: &SimValue) -> SimValue { + (#[hdl(sim)] + match this { + Self::StronglyNotTaken => BranchPredictionState.WeaklyNotTaken(), + Self::WeaklyNotTaken => BranchPredictionState.WeaklyTaken(), + Self::WeaklyTaken => BranchPredictionState.StronglyTaken(), + Self::StronglyTaken => BranchPredictionState.StronglyTaken(), + }) + .to_sim_value() + } + #[must_use] + #[hdl] + fn towards_not_taken(this: &SimValue) -> SimValue { + (#[hdl(sim)] + match this { + Self::StronglyNotTaken => BranchPredictionState.StronglyNotTaken(), + Self::WeaklyNotTaken => BranchPredictionState.StronglyNotTaken(), + Self::WeaklyTaken => BranchPredictionState.WeaklyNotTaken(), + Self::StronglyTaken => BranchPredictionState.WeaklyTaken(), + }) + .to_sim_value() + } +} + +impl SimValueDefault for BranchPredictionState { + fn sim_value_default(self) -> SimValue { + self.WeaklyNotTaken().to_sim_value() + } +} + +#[derive(Copy, Clone, Debug)] +#[must_use] +enum ResetStatus { + Done, + Working, +} + +impl ResetStatus { + fn and(self, other: Self) -> Self { + match (self, other) { + (ResetStatus::Done, ResetStatus::Done) => ResetStatus::Done, + (ResetStatus::Done | ResetStatus::Working, ResetStatus::Working) + | (ResetStatus::Working, ResetStatus::Done) => ResetStatus::Working, + } + } +} + +trait SimValueDefault: Type { + fn sim_value_default(self) -> SimValue; +} + +impl SimValueDefault for SimOnly { + fn sim_value_default(self) -> SimValue { + SimOnlyValue::::default().to_sim_value_with_type(self) + } +} + +impl SimValueDefault for HdlOption { + fn sim_value_default(self) -> SimValue { + self.HdlNone().to_sim_value_with_type(self) + } +} + +impl SimValueDefault for Bool { + fn sim_value_default(self) -> SimValue { + false.to_sim_value() + } +} + +impl SimValueDefault for UIntType { + fn sim_value_default(self) -> SimValue { + self.zero().to_sim_value() + } +} + +trait ResetSteps: Type { + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus; +} + +impl ResetSteps for ArrayType { + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus { + let element = this.ty().element(); + let len = this.ty().len(); + if step < len { + this[step] = element.sim_value_default(); + } + if step.saturating_add(1) >= len { + ResetStatus::Done + } else { + ResetStatus::Working + } + } +} + +#[hdl] +struct CallStack { + return_addresses: Array, { CallStack::SIZE }>, + len: UIntInRangeInclusive<0, { CallStack::SIZE }>, +} + +impl CallStack { + const SIZE: usize = 16; +} + +impl SimValueDefault for CallStack { + #[hdl] + fn sim_value_default(self) -> SimValue { + #[hdl(sim)] + CallStack { + // something other than zero so you can see the values getting reset + return_addresses: [!0u64; Self::SIZE], + len: 0usize.to_sim_value_with_type(self.len), + } + } +} + +impl ResetSteps for CallStack { + #[hdl] + fn reset_step(this: &mut SimValue, _step: usize) -> ResetStatus { + #[hdl(sim)] + let CallStack { + return_addresses, + len, + } = this; + // return_addresses is implemented as a shift register, so it can be all reset at once + return_addresses.fill(0u64.to_sim_value()); + **len = 0; + ResetStatus::Done + } +} + +#[hdl] +enum BTBEntryInsnKind { + Branch, + Call, + Ret, +} + +impl BTBEntryInsnKind { + #[hdl] + fn try_from_decoded_insn_kind(kind: &SimValue) -> Option> { + #[hdl(sim)] + match kind { + WipDecodedInsnKind::NonBranch => None, + WipDecodedInsnKind::Branch(_) + | WipDecodedInsnKind::BranchCond(_) + | WipDecodedInsnKind::IndirectBranch + | WipDecodedInsnKind::IndirectBranchCond => Some( + #[hdl(sim)] + BTBEntryInsnKind::Branch(), + ), + WipDecodedInsnKind::Call(_) + | WipDecodedInsnKind::CallCond(_) + | WipDecodedInsnKind::IndirectCall + | WipDecodedInsnKind::IndirectCallCond => Some( + #[hdl(sim)] + BTBEntryInsnKind::Call(), + ), + WipDecodedInsnKind::Ret | WipDecodedInsnKind::RetCond => Some( + #[hdl(sim)] + BTBEntryInsnKind::Ret(), + ), + WipDecodedInsnKind::Interrupt(_) => None, + WipDecodedInsnKind::Unknown => None, + } + } +} + +#[hdl] +enum BTBEntryAddrKind { + Unconditional, + Indirect, + CondTaken, + CondNotTaken, +} + +impl BTBEntryAddrKind { + #[hdl] + fn taken(this: &SimValue) -> bool { + #[hdl(sim)] + match this { + Self::Unconditional | Self::Indirect | Self::CondTaken => true, + Self::CondNotTaken => false, + } + } + /// `taken` is only called when choosing between [`Self::CondTaken`] and [`Self::CondNotTaken`] + #[hdl] + fn try_from_decoded_insn_kind( + kind: &SimValue, + taken: impl FnOnce() -> Option, + ) -> Option> { + let cond = || { + Some(if taken()? { + #[hdl(sim)] + Self::CondTaken() + } else { + #[hdl(sim)] + Self::CondNotTaken() + }) + }; + #[hdl(sim)] + match kind { + WipDecodedInsnKind::NonBranch => None, + WipDecodedInsnKind::Branch(_) + | WipDecodedInsnKind::Call(_) + | WipDecodedInsnKind::Ret => Some( + #[hdl(sim)] + Self::Unconditional(), + ), + WipDecodedInsnKind::BranchCond(_) + | WipDecodedInsnKind::CallCond(_) + | WipDecodedInsnKind::RetCond => cond(), + WipDecodedInsnKind::IndirectBranch | WipDecodedInsnKind::IndirectCall => Some( + #[hdl(sim)] + Self::Indirect(), + ), + WipDecodedInsnKind::IndirectBranchCond | WipDecodedInsnKind::IndirectCallCond => Some( + // our conditional branch prediction doesn't work with indirect branches + #[hdl(sim)] + Self::Indirect(), + ), + WipDecodedInsnKind::Interrupt(_) => None, + WipDecodedInsnKind::Unknown => None, + } + } +} + +#[hdl] +struct BTBEntry { + /// address of first instruction to run in this fetch block + start_pc: UInt<64>, + target_pc: UInt<64>, + /// when branch is not taken, the next pc to fetch from is `start_pc + fallthrough_offset`. + /// needed because there may be more than one branch in a fetch block + fallthrough_offset: UInt<8>, + insn_kind: BTBEntryInsnKind, + addr_kind: BTBEntryAddrKind, +} + +impl BTBEntry { + fn taken_pc(this: &SimValue) -> u64 { + this.target_pc.as_int() + } + fn not_taken_fetch_pc(this: &SimValue) -> u64 { + this.start_pc + .as_int() + .wrapping_add(this.fallthrough_offset.as_int().into()) + } +} + +#[hdl] +struct BranchTargetBuffer { + branch_pc_to_target_map: Array, { BranchTargetBuffer::SIZE }>, +} + +impl BranchTargetBuffer { + const SIZE: usize = 16; +} + +impl SimValueDefault for BranchTargetBuffer { + #[hdl] + fn sim_value_default(self) -> SimValue { + #[hdl(sim)] + BranchTargetBuffer { + // something other than zero so you can see the values getting reset + branch_pc_to_target_map: [HdlSome( + #[hdl(sim)] + BTBEntry { + start_pc: !0u64, + target_pc: !0u64, + fallthrough_offset: !0u8, + insn_kind: BTBEntryInsnKind.Call(), + addr_kind: BTBEntryAddrKind.CondNotTaken(), + }, + ); Self::SIZE], + } + } +} + +impl ResetSteps for BranchTargetBuffer { + #[hdl] + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus { + #[hdl(sim)] + let BranchTargetBuffer { + branch_pc_to_target_map, + } = this; + ResetSteps::reset_step(branch_pc_to_target_map, step) + } +} + +#[hdl] +struct BranchHistory { + history: Array, + /// exclusive + tail: UIntInRange<0, { BranchHistory::SIZE }>, + /// inclusive, always at or after tail, always at or before speculative_head + non_speculative_head: UIntInRange<0, { BranchHistory::SIZE }>, + /// inclusive, always at or after both tail and non_speculative_head + speculative_head: UIntInRange<0, { BranchHistory::SIZE }>, +} + +impl ResetSteps for BranchHistory { + #[hdl] + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus { + #[hdl(sim)] + let Self { + history, + tail, + non_speculative_head, + speculative_head, + } = this; + **tail = 0; + **non_speculative_head = 0; + **speculative_head = 0; + ResetSteps::reset_step(history, step) + } +} + +impl SimValueDefault for BranchHistory { + #[hdl] + fn sim_value_default(self) -> SimValue { + #[hdl(sim)] + BranchHistory { + // something other than zero so you can see the values getting reset + history: [true; Self::SIZE], + tail: 0usize.to_sim_value_with_type(self.tail), + non_speculative_head: 0usize.to_sim_value_with_type(self.non_speculative_head), + speculative_head: 0usize.to_sim_value_with_type(self.speculative_head), + } + } +} + +enum BranchHistoryTryPushSpeculativeError { + NoSpace, +} + +enum BranchHistoryTryPushNonSpeculativeError { + NoSpace, + Misprediction { speculated: bool }, +} + +impl BranchHistory { + const LOG2_SIZE: usize = 8; + const SIZE: usize = 1 << Self::LOG2_SIZE; + fn next_pos(pos: usize) -> usize { + (pos + 1) % Self::SIZE + } + fn prev_pos(pos: usize) -> usize { + (pos + Self::SIZE - 1) % Self::SIZE + } + fn history_from_head(this: &SimValue, head: usize) -> [bool; N] { + let mut retval = [false; N]; + let mut pos = head; + for entry in &mut retval { + if pos == *this.tail { + break; + } + *entry = *this.history[pos]; + pos = Self::prev_pos(pos); + } + retval + } + fn delete_speculative_history(this: &mut SimValue) { + let non_speculative_head = *this.non_speculative_head; + *this.speculative_head = non_speculative_head; + } + fn recent_history_including_speculative(this: &SimValue) -> [bool; N] { + let head = *this.speculative_head; + Self::history_from_head(this, head) + } + fn speculative_full(this: &SimValue) -> bool { + let speculative_head = *this.speculative_head; + Self::next_pos(speculative_head) == *this.tail + } + fn try_push_speculative( + this: &mut SimValue, + value: bool, + ) -> Result<(), BranchHistoryTryPushSpeculativeError> { + if Self::speculative_full(this) { + Err(BranchHistoryTryPushSpeculativeError::NoSpace) + } else { + let speculative_head = Self::next_pos(*this.speculative_head); + *this.speculative_head = speculative_head; + *this.history[speculative_head] = value; + Ok(()) + } + } + fn try_push_non_speculative( + this: &mut SimValue, + value: bool, + ) -> Result<(), BranchHistoryTryPushNonSpeculativeError> { + let speculative_head = *this.speculative_head; + let non_speculative_head = *this.non_speculative_head; + if speculative_head == non_speculative_head { + Err(BranchHistoryTryPushNonSpeculativeError::NoSpace) + } else { + let pos = Self::next_pos(non_speculative_head); + let speculated = *this.history[pos]; + if speculated != value { + Err(BranchHistoryTryPushNonSpeculativeError::Misprediction { speculated }) + } else { + *this.non_speculative_head = pos; + Ok(()) + } + } + } +} + +#[hdl] +struct Queue { + data: ArrayType, + /// inclusive + head: UIntInRangeType, Capacity>, + /// exclusive + tail: UIntInRangeType, Capacity>, +} + +impl Queue { + fn capacity(self) -> usize { + self.data.len() + } + fn next_pos(self, pos: usize) -> usize { + assert_ne!(self.capacity(), 0); + (pos + 1) % self.capacity() + } + fn prev_pos(self, pos: usize) -> usize { + assert_ne!(self.capacity(), 0); + (pos + self.capacity() - 1) % self.capacity() + } + fn is_empty(this: &SimValue) -> bool { + this.head == this.tail + } + fn is_full(this: &SimValue) -> bool { + let head = *this.head; + let tail = *this.tail; + this.ty().next_pos(head) == tail + } + fn len(this: &SimValue) -> usize { + let capacity = this.ty().capacity(); + (*this.tail + capacity - *this.head) % capacity + } + fn clear(this: &mut SimValue) { + *this.head = 0; + *this.tail = 0; + } + fn try_push(this: &mut SimValue, value: impl ToSimValueWithType) -> Result<(), ()> { + if Self::is_full(this) { + Err(()) + } else { + let head = *this.head; + let head = this.ty().next_pos(head); + *this.head = head; + let data = &mut this.data[head]; + *data = value.to_sim_value_with_type(data.ty()); + Ok(()) + } + } + fn undo_push(this: &mut SimValue) -> Option> { + if Self::is_empty(this) { + None + } else { + let head = *this.head; + let data = this.data[head].clone(); + let head = this.ty().prev_pos(head); + *this.head = head; + Some(data) + } + } + fn pop(this: &mut SimValue) -> Option> { + if Self::is_empty(this) { + None + } else { + let tail = *this.tail; + let data = this.data[tail].clone(); + *this.tail = this.ty().next_pos(tail); + Some(data) + } + } +} + +impl SimValueDefault for Queue { + #[hdl] + fn sim_value_default(self) -> SimValue { + let Self { data, head, tail } = self; + #[hdl(sim)] + Queue:: { + data: repeat( + data.element().sim_value_default(), + Capacity::from_usize(data.len()), + ), + head: 0usize.to_sim_value_with_type(head), + tail: 0usize.to_sim_value_with_type(tail), + } + } +} + +impl ResetSteps for Queue { + #[hdl] + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus { + #[hdl(sim)] + let Queue:: { data, head, tail } = this; + **head = 0; + **tail = 0; + ResetSteps::reset_step(data, step) + } +} + +#[hdl] +struct FetchQueueEntry { + fetch_block_id: UInt<{ FETCH_BLOCK_ID_WIDTH }>, + btb_entry: HdlOption, + btb_entry_index: UIntInRange<0, { BranchTargetBuffer::SIZE }>, + next_pc: UInt<64>, +} + +impl SimValueDefault for FetchQueueEntry { + #[hdl] + fn sim_value_default(self) -> SimValue { + #[hdl(sim)] + FetchQueueEntry { + fetch_block_id: 0 as FetchBlockIdInt, + btb_entry: #[hdl(sim)] + HdlNone(), + btb_entry_index: 0usize.to_sim_value_with_type(FetchQueueEntry.btb_entry_index), + next_pc: 0u64, + } + } +} + +const BRANCH_PREDICTOR_LOG2_SIZE: usize = 8; +const BRANCH_PREDICTOR_SIZE: usize = 1 << BRANCH_PREDICTOR_LOG2_SIZE; + +#[hdl] +pub struct NextPcState> { + speculative_call_stack: CallStack, + non_speculative_call_stack: CallStack, + branch_target_buffer: BranchTargetBuffer, + branch_history: BranchHistory, + branch_predictor: Array, + fetching_queue: Queue>, + cancel_in_progress_fetches: Bool, + pc: UInt<64>, + fetch_block_id: UInt<{ FETCH_BLOCK_ID_WIDTH }>, + config: C, +} + +impl> NextPcState { + fn branch_predictor_index(this: &SimValue, pc: u64) -> usize { + let mut history = 0u64; + let history_bits: [bool; BRANCH_PREDICTOR_LOG2_SIZE] = + BranchHistory::recent_history_including_speculative(&this.branch_history); + for history_bit in history_bits { + history <<= 1; + if history_bit { + history |= 1; + } + } + let mut t = history; + t ^= t.rotate_left(5) & !pc.rotate_right(3); + t ^= pc; + t ^= !t.rotate_left(2) & t.rotate_left(4); + let mut retval = 0; + for i in (0..BRANCH_PREDICTOR_LOG2_SIZE).step_by(BRANCH_PREDICTOR_LOG2_SIZE) { + retval ^= t >> i; + } + retval as usize % BRANCH_PREDICTOR_SIZE + } + #[hdl] + fn handle_to_fetch( + mut this: SimValue, + ) -> ( + SimValue, + SimValue>, + ) { + let in_progress_fetches_to_cancel = if *this.cancel_in_progress_fetches { + let old_len = Queue::len(&this.fetching_queue); + if old_len == 0 { + // did a full cycle of cancelling + *this.cancel_in_progress_fetches = false; + } else { + Queue::clear(&mut this.fetching_queue); + } + old_len.cast_to_static::>() + } else if Queue::is_full(&this.fetching_queue) { + return ( + this, + #[hdl(sim)] + HdlNone(), + ); + } else { + 0u8.cast_to_static::>() + }; + + let fetch_block_id: FetchBlockIdInt = this.fetch_block_id.as_int(); + *this.fetch_block_id = fetch_block_id.wrapping_add(1).into(); + + let next_fetch_pc = + this.pc.as_int() & (!0u64 << this.config.ty().get().log2_fetch_width_in_bytes); + + let (found_btb_entry_index, found_btb_entry) = this + .branch_target_buffer + .branch_pc_to_target_map + .iter() + .enumerate() + .filter_map(|(index, entry)| { + #[hdl(sim)] + match entry { + HdlNone => None, + HdlSome(entry) => Some((index, entry)), + } + }) + .find(|(_, entry)| entry.start_pc == this.pc) + .unzip(); + let found_btb_entry = found_btb_entry.cloned(); + // TODO: handle instructions not aligned with fetch blocks + let new_pc = if let Some(entry) = &found_btb_entry { + if BTBEntryAddrKind::taken(&entry.addr_kind) { + BTBEntry::taken_pc(entry) + } else { + BTBEntry::not_taken_fetch_pc(entry) + } + } else { + next_fetch_pc.wrapping_add(this.config.ty().get().fetch_width_in_bytes() as u64) + }; + Queue::try_push( + &mut this.fetching_queue, + #[hdl(sim)] + FetchQueueEntry { + fetch_block_id, + btb_entry: found_btb_entry + .map(|entry| { + #[hdl(sim)] + HdlSome(entry) + }) + .unwrap_or_else(|| { + #[hdl(sim)] + HdlNone() + }), + btb_entry_index: found_btb_entry_index + .unwrap_or(0) + .to_sim_value_with_type(FetchQueueEntry.btb_entry_index), + next_pc: new_pc, + }, + ) + .expect("checked is_full above"); + *this.pc = new_pc.into(); + ( + this, + #[hdl(sim)] + HdlSome( + #[hdl(sim)] + NextPcToFetchInterfaceInner { + next_fetch_pc, + fetch_block_id, + in_progress_fetches_to_cancel, + }, + ), + ) + } + #[hdl] + fn handle_from_decode( + this: &mut SimValue, + from_decode: SimValue>, + ) { + #[hdl(sim)] + let DecodeToPostDecodeInterfaceInner::<_> { insns, config } = from_decode; + assert_eq!(this.config.ty(), config.ty()); + assert_ne!( + **ArrayVec::len_sim(&insns), + 0, + "fetch/decode must always return at least one instruction \ + -- either the decoded instructions or a WipDecodedInsnKind::Interrupt", + ); + let Some(fetch_queue_entry) = Queue::pop(&mut this.fetching_queue) else { + unreachable!(); + }; + #[hdl(sim)] + let FetchQueueEntry { + fetch_block_id: expected_fetch_block_id, + btb_entry, + btb_entry_index, + next_pc, + } = fetch_queue_entry; + let insns = ArrayVec::elements_sim_ref(&insns); + if let Some(target_pc) = WipDecodedInsnKind::interrupt_target_pc_sim(&insns[0].kind) { + if **target_pc != *next_pc { + *this.cancel_in_progress_fetches = true; + this.pc = target_pc.clone(); + } + return; + } + let start_pc = insns[0].pc.as_int(); + let mut fallthrough_offset = 0u8; + let mut btb_entry_fields = None; + let mut eval_cond_branch = || -> SimValue { + todo!(); + }; + for insn in insns { + #[hdl(sim)] + let WipDecodedInsn { + fetch_block_id, + id, + pc, + size_in_bytes, + kind, + } = insn; + assert_eq!( + *fetch_block_id, expected_fetch_block_id, + "fetch decode pipeline's output isn't in-sync with fetching_queue", + ); + let insn_kind; + let addr_kind; + let target_pc = #[hdl(sim)] + match kind { + WipDecodedInsnKind::NonBranch => continue, + WipDecodedInsnKind::Branch(target_pc) => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Branch(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Unconditional(); + Some(target_pc.clone()) + } + WipDecodedInsnKind::BranchCond(target_pc) => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Branch(); + addr_kind = eval_cond_branch(); + Some(target_pc.clone()) + } + WipDecodedInsnKind::IndirectBranch => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Branch(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Indirect(); + None + } + WipDecodedInsnKind::IndirectBranchCond => { + // our conditional branch prediction doesn't work with indirect branches + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Branch(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Indirect(); + None + } + WipDecodedInsnKind::Call(target_pc) => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Call(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Unconditional(); + Some(target_pc.clone()) + } + WipDecodedInsnKind::CallCond(target_pc) => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Call(); + addr_kind = eval_cond_branch(); + Some(target_pc.clone()) + } + WipDecodedInsnKind::IndirectCall => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Call(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Indirect(); + None + } + WipDecodedInsnKind::IndirectCallCond => { + // our conditional branch prediction doesn't work with indirect calls + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Call(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Indirect(); + None + } + WipDecodedInsnKind::Ret => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Ret(); + addr_kind = #[hdl(sim)] + BTBEntryAddrKind::Unconditional(); + None + } + WipDecodedInsnKind::RetCond => { + insn_kind = #[hdl(sim)] + BTBEntryInsnKind::Ret(); + addr_kind = eval_cond_branch(); + None + } + WipDecodedInsnKind::Interrupt(_) => { + // interrupt after other instructions, just truncate the fetch block before the interrupt + break; + } + WipDecodedInsnKind::Unknown => unreachable!(), + }; + + // all branches/calls/returns end up here + + if btb_entry_fields.is_some() { + // TODO: maybe implement handling multiple ctrl transfer insns in the same fetch block, + // for now we just truncate the fetch block right before the second ctrl transfer insn. + break; + } + btb_entry_fields = Some((insn_kind, addr_kind, target_pc)); + fallthrough_offset += size_in_bytes.cast_to_static::>().as_int(); + } + if let Some((insn_kind, addr_kind, target_pc)) = btb_entry_fields { + let expected_btb_entry = #[hdl(sim)] + BTBEntry { + start_pc, + target_pc: target_pc.unwrap_or_else(|| 0u64.to_sim_value()), + fallthrough_offset, + insn_kind, + addr_kind, + }; + // add/update BTBEntry if it doesn't match + #[hdl(sim)] + if let HdlSome(btb_entry) = btb_entry { + todo!() + } else { + // add BTBEntry + todo!() + } + } else { + #[hdl(sim)] + if let HdlSome(btb_entry) = btb_entry { + // remove BTBEntry + let entry_mut = + &mut this.branch_target_buffer.branch_pc_to_target_map[*btb_entry_index]; + // verify it hasn't been changed meanwhile + #[hdl(sim)] + if let HdlSome(entry) = &entry_mut { + if entry.start_pc == btb_entry.start_pc { + *entry_mut = #[hdl(sim)] + HdlNone(); + } + } + } + } + } +} + +impl SimValueDefault for NextPcState> { + #[hdl] + fn sim_value_default(self) -> SimValue { + let Self { + speculative_call_stack, + non_speculative_call_stack, + branch_target_buffer, + branch_history, + branch_predictor: _, + fetching_queue, + cancel_in_progress_fetches: _, + pc: _, + fetch_block_id: _, + config, + } = self; + #[hdl(sim)] + Self { + speculative_call_stack: speculative_call_stack.sim_value_default(), + non_speculative_call_stack: non_speculative_call_stack.sim_value_default(), + branch_target_buffer: branch_target_buffer.sim_value_default(), + branch_history: branch_history.sim_value_default(), + // use something other than the default so you can see the reset progress + branch_predictor: std::array::from_fn(|_| { + BranchPredictionState::towards_not_taken(&BranchPredictionState.sim_value_default()) + }), + fetching_queue: fetching_queue.sim_value_default(), + cancel_in_progress_fetches: false, + // use something other than the default so you can see the reset progress + pc: !0u64, + // use something other than the default so you can see the reset progress + fetch_block_id: !0u8, + config, + } + } +} + +impl> ResetSteps for NextPcState { + #[hdl] + fn reset_step(this: &mut SimValue, step: usize) -> ResetStatus { + #[hdl(sim)] + let NextPcState:: { + speculative_call_stack, + non_speculative_call_stack, + branch_target_buffer, + branch_history, + branch_predictor, + fetching_queue, + cancel_in_progress_fetches, + pc, + fetch_block_id, + config: _, + } = this; + **cancel_in_progress_fetches = false; + **pc = 0u64.into(); // match Microwatt's reset PC + **fetch_block_id = 0u8.into(); + let speculative_call_stack = ResetSteps::reset_step(speculative_call_stack, step); + let non_speculative_call_stack = ResetSteps::reset_step(non_speculative_call_stack, step); + let branch_target_buffer = ResetSteps::reset_step(branch_target_buffer, step); + let branch_history = ResetSteps::reset_step(branch_history, step); + let branch_predictor = ResetSteps::reset_step(branch_predictor, step); + let fetching_queue = ResetSteps::reset_step(fetching_queue, step); + speculative_call_stack + .and(non_speculative_call_stack) + .and(branch_target_buffer) + .and(branch_history) + .and(branch_predictor) + .and(fetching_queue) + } +} + +#[hdl_module(extern)] +pub fn next_pc(config: PhantomConst) { + #[hdl] + let cd: ClockDomain = m.input(); + #[hdl] + let to_fetch: NextPcToFetchInterface> = + m.output(NextPcToFetchInterface[config]); + #[hdl] + let from_decode: DecodeToPostDecodeInterface> = + m.input(DecodeToPostDecodeInterface[config]); + #[hdl] + let state_for_debug: NextPcState> = m.output(NextPcState[config]); + m.register_clock_for_past(cd.clk); + #[hdl] + async fn run( + mut sim: ExternModuleSimulationState, + cd: Expr, + to_fetch: Expr>>, + from_decode: Expr>>, + state_expr: Expr>>, + ) { + let mut state = sim.read(state_expr).await; + for step in 0usize.. { + sim.write(state_expr, state).await; + sim.wait_for_clock_edge(cd.clk).await; + state = sim.read_past(state_expr, cd.clk).await; + let reset_status = ResetSteps::reset_step(&mut state, step); + match reset_status { + ResetStatus::Done => break, + ResetStatus::Working => {} + } + } + loop { + sim.write( + from_decode.inner.ready, + !Queue::is_empty(&state.fetching_queue), + ) + .await; + + // ignore current stuff from decode when cancelling + if !*state.cancel_in_progress_fetches + && sim.read_past_bool(from_decode.inner.ready, cd.clk).await + { + #[hdl(sim)] + if let HdlSome(from_decode_data) = + sim.read_past(from_decode.inner.data, cd.clk).await + { + NextPcState::handle_from_decode(&mut state, from_decode_data); + } + } + + let to_fetch_data; + if sim.read_past_bool(to_fetch.inner.ready, cd.clk).await { + (state, to_fetch_data) = NextPcState::handle_to_fetch(state); + } else { + (_, to_fetch_data) = NextPcState::handle_to_fetch(state.clone()); + }; + sim.write(to_fetch.inner.data, to_fetch_data).await; + + sim.write(state_expr, state).await; + sim.wait_for_clock_edge(cd.clk).await; + state = sim.read_past(state_expr, cd.clk).await; + } + } + m.extern_module_simulation_fn( + (cd, to_fetch, from_decode, state_for_debug), + |(cd, to_fetch, from_decode, state_for_debug), mut sim| async move { + sim.write(state_for_debug, state_for_debug.ty().sim_value_default()) + .await; + sim.resettable( + cd, + async |mut sim: ExternModuleSimulationState| { + sim.write(to_fetch.inner.data, HdlNone()).await; + sim.write(from_decode.inner.ready, false).await; + }, + |sim, ()| run(sim, cd, to_fetch, from_decode, state_for_debug), + ) + .await; + }, + ); +} diff --git a/crates/cpu/src/util/array_vec.rs b/crates/cpu/src/util/array_vec.rs index 3d49e6f..16be553 100644 --- a/crates/cpu/src/util/array_vec.rs +++ b/crates/cpu/src/util/array_vec.rs @@ -22,6 +22,18 @@ impl ArrayVec { len: 0u8.cast_to(self.len), } } + #[hdl] + pub fn new_sim(self, uninit_element: impl ToSimValueWithType) -> SimValue { + let uninit_element = uninit_element.into_sim_value_with_type(self.element()); + #[hdl(sim)] + ArrayVec::<_, _> { + elements: SimValue::from_array_elements( + self.elements, + (0..self.elements.len()).map(|_| uninit_element.clone()), + ), + len: 0u8.cast_to(self.len), + } + } pub fn element(self) -> T { self.elements.element() } @@ -52,6 +64,9 @@ impl ArrayVec { pub fn len(this: impl ToExpr) -> Expr> { this.to_expr().len } + pub fn len_sim(this: &SimValue) -> &SimValue> { + &this.len + } pub fn is_empty(this: impl ToExpr) -> Expr { let len = Self::len(this); len.cmp_eq(0u8) @@ -75,6 +90,69 @@ impl ArrayVec { } } } + pub fn elements_sim_ref(this: &SimValue) -> &[SimValue] { + &this.elements[..*this.len] + } + pub fn elements_sim_mut(this: &mut SimValue) -> &mut [SimValue] { + let len = *this.len; + &mut this.elements[..len] + } + #[hdl] + pub async fn async_for_each_sim( + this: impl ToSimValue, + mut f: impl AsyncFnMut(usize, SimValue), + ) { + #[hdl(sim)] + let ArrayVec::<_, _> { elements, len } = this.into_sim_value(); + for (index, element) in elements.into_iter().enumerate() { + if index.cmp_lt(*len) { + f(index, element).await; + } + } + } + #[hdl] + pub async fn async_for_each_sim_ref<'a>( + this: &'a SimValue, + mut f: impl AsyncFnMut(usize, &'a SimValue), + ) { + #[hdl(sim)] + let ArrayVec::<_, _> { elements, len } = this; + for (index, element) in elements.iter().enumerate() { + if index.cmp_lt(**len) { + f(index, element).await; + } + } + } + #[hdl] + pub async fn async_for_each_sim_mut<'a>( + this: &'a mut SimValue, + mut f: impl AsyncFnMut(usize, &'a mut SimValue), + ) { + #[hdl(sim)] + let ArrayVec::<_, _> { elements, len } = this; + for (index, element) in elements.iter_mut().enumerate() { + if index.cmp_lt(**len) { + f(index, element).await; + } + } + } + #[hdl] + pub fn try_push_sim( + this: &mut SimValue, + value: impl ToSimValueWithType, + ) -> Result<(), SimValue> { + let value = value.into_sim_value_with_type(this.ty().element()); + let capacity = this.ty().capacity(); + #[hdl(sim)] + let ArrayVec::<_, _> { elements, len } = this; + if **len < capacity { + elements[**len] = value; + **len += 1; + Ok(()) + } else { + Err(value) + } + } pub fn mapped_ty(self, new_element_ty: U) -> ArrayVec { ArrayVec { elements: ArrayType[new_element_ty][N::from_usize(self.elements.len())], @@ -100,10 +178,8 @@ impl ArrayVec { pub fn as_array_of_options(this: impl ToExpr) -> Expr, N>> { let this = this.to_expr(); #[hdl] - let array_vec_as_array_of_options = wire( - ArrayType[HdlOption[this.ty().element()]] - [N::from_usize(this.ty().capacity())], - ); + let array_vec_as_array_of_options = + wire(ArrayType[HdlOption[this.ty().element()]][N::from_usize(this.ty().capacity())]); for element in array_vec_as_array_of_options { connect(element, element.ty().HdlNone()); } diff --git a/crates/cpu/tests/expected/next_pc.vcd b/crates/cpu/tests/expected/next_pc.vcd new file mode 100644 index 0000000..087e510 --- /dev/null +++ b/crates/cpu/tests/expected/next_pc.vcd @@ -0,0 +1,13046 @@ +$timescale 1 ps $end +$scope module dut $end +$scope struct cd $end +$var wire 1 ! clk $end +$var wire 1 " rst $end +$upscope $end +$scope struct next_pc $end +$scope struct cd $end +$var wire 1 ++ clk $end +$var wire 1 ,+ rst $end +$upscope $end +$scope struct to_fetch $end +$scope struct inner $end +$scope struct data $end +$var string 1 -+ \$tag $end +$scope struct HdlSome $end +$var wire 64 .+ next_fetch_pc $end +$var wire 8 /+ fetch_block_id $end +$var wire 8 0+ in_progress_fetches_to_cancel $end +$upscope $end +$upscope $end +$var wire 1 1+ ready $end +$upscope $end +$var string 1 2+ config $end +$upscope $end +$scope struct from_decode $end +$scope struct inner $end +$scope struct data $end +$var string 1 3+ \$tag $end +$scope struct HdlSome $end +$var wire 8 4+ fetch_block_id $end +$scope struct insns $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 8 5+ fetch_block_id $end +$var wire 12 6+ id $end +$var wire 64 7+ pc $end +$var wire 4 8+ size_in_bytes $end +$scope struct kind $end +$var string 1 9+ \$tag $end +$var wire 64 :+ Branch $end +$var wire 64 ;+ BranchCond $end +$var wire 64 <+ Call $end +$var wire 64 =+ CallCond $end +$var wire 64 >+ Interrupt $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var wire 8 ?+ fetch_block_id $end +$var wire 12 @+ id $end +$var wire 64 A+ pc $end +$var wire 4 B+ size_in_bytes $end +$scope struct kind $end +$var string 1 C+ \$tag $end +$var wire 64 D+ Branch $end +$var wire 64 E+ BranchCond $end +$var wire 64 F+ Call $end +$var wire 64 G+ CallCond $end +$var wire 64 H+ Interrupt $end +$upscope $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 2 I+ value $end +$var string 1 J+ range $end +$upscope $end +$upscope $end +$var string 1 K+ config $end +$upscope $end +$upscope $end +$var wire 1 L+ ready $end +$upscope $end +$upscope $end +$scope struct state_for_debug $end +$scope struct speculative_call_stack $end +$scope struct return_addresses $end +$var wire 64 M+ \[0] $end +$var wire 64 N+ \[1] $end +$var wire 64 O+ \[2] $end +$var wire 64 P+ \[3] $end +$var wire 64 Q+ \[4] $end +$var wire 64 R+ \[5] $end +$var wire 64 S+ \[6] $end +$var wire 64 T+ \[7] $end +$var wire 64 U+ \[8] $end +$var wire 64 V+ \[9] $end +$var wire 64 W+ \[10] $end +$var wire 64 X+ \[11] $end +$var wire 64 Y+ \[12] $end +$var wire 64 Z+ \[13] $end +$var wire 64 [+ \[14] $end +$var wire 64 \+ \[15] $end +$upscope $end +$scope struct len $end +$var wire 5 ]+ value $end +$var string 1 ^+ range $end +$upscope $end +$upscope $end +$scope struct non_speculative_call_stack $end +$scope struct return_addresses $end +$var wire 64 _+ \[0] $end +$var wire 64 `+ \[1] $end +$var wire 64 a+ \[2] $end +$var wire 64 b+ \[3] $end +$var wire 64 c+ \[4] $end +$var wire 64 d+ \[5] $end +$var wire 64 e+ \[6] $end +$var wire 64 f+ \[7] $end +$var wire 64 g+ \[8] $end +$var wire 64 h+ \[9] $end +$var wire 64 i+ \[10] $end +$var wire 64 j+ \[11] $end +$var wire 64 k+ \[12] $end +$var wire 64 l+ \[13] $end +$var wire 64 m+ \[14] $end +$var wire 64 n+ \[15] $end +$upscope $end +$scope struct len $end +$var wire 5 o+ value $end +$var string 1 p+ range $end +$upscope $end +$upscope $end +$scope struct branch_target_buffer $end +$scope struct branch_pc_to_target_map $end +$scope struct \[0] $end +$var string 1 q+ \$tag $end +$scope struct HdlSome $end +$var wire 64 r+ start_pc $end +$var wire 64 s+ target_pc $end +$var wire 8 t+ fallthrough_offset $end +$var string 1 u+ insn_kind $end +$var string 1 v+ addr_kind $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var string 1 w+ \$tag $end +$scope struct HdlSome $end +$var wire 64 x+ start_pc $end +$var wire 64 y+ target_pc $end +$var wire 8 z+ fallthrough_offset $end +$var string 1 {+ insn_kind $end +$var string 1 |+ addr_kind $end +$upscope $end +$upscope $end +$scope struct \[2] $end +$var string 1 }+ \$tag $end +$scope struct HdlSome $end +$var wire 64 ~+ start_pc $end +$var wire 64 !, target_pc $end +$var wire 8 ", fallthrough_offset $end +$var string 1 #, insn_kind $end +$var string 1 $, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[3] $end +$var string 1 %, \$tag $end +$scope struct HdlSome $end +$var wire 64 &, start_pc $end +$var wire 64 ', target_pc $end +$var wire 8 (, fallthrough_offset $end +$var string 1 ), insn_kind $end +$var string 1 *, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[4] $end +$var string 1 +, \$tag $end +$scope struct HdlSome $end +$var wire 64 ,, start_pc $end +$var wire 64 -, target_pc $end +$var wire 8 ., fallthrough_offset $end +$var string 1 /, insn_kind $end +$var string 1 0, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[5] $end +$var string 1 1, \$tag $end +$scope struct HdlSome $end +$var wire 64 2, start_pc $end +$var wire 64 3, target_pc $end +$var wire 8 4, fallthrough_offset $end +$var string 1 5, insn_kind $end +$var string 1 6, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[6] $end +$var string 1 7, \$tag $end +$scope struct HdlSome $end +$var wire 64 8, start_pc $end +$var wire 64 9, target_pc $end +$var wire 8 :, fallthrough_offset $end +$var string 1 ;, insn_kind $end +$var string 1 <, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[7] $end +$var string 1 =, \$tag $end +$scope struct HdlSome $end +$var wire 64 >, start_pc $end +$var wire 64 ?, target_pc $end +$var wire 8 @, fallthrough_offset $end +$var string 1 A, insn_kind $end +$var string 1 B, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[8] $end +$var string 1 C, \$tag $end +$scope struct HdlSome $end +$var wire 64 D, start_pc $end +$var wire 64 E, target_pc $end +$var wire 8 F, fallthrough_offset $end +$var string 1 G, insn_kind $end +$var string 1 H, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[9] $end +$var string 1 I, \$tag $end +$scope struct HdlSome $end +$var wire 64 J, start_pc $end +$var wire 64 K, target_pc $end +$var wire 8 L, fallthrough_offset $end +$var string 1 M, insn_kind $end +$var string 1 N, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[10] $end +$var string 1 O, \$tag $end +$scope struct HdlSome $end +$var wire 64 P, start_pc $end +$var wire 64 Q, target_pc $end +$var wire 8 R, fallthrough_offset $end +$var string 1 S, insn_kind $end +$var string 1 T, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[11] $end +$var string 1 U, \$tag $end +$scope struct HdlSome $end +$var wire 64 V, start_pc $end +$var wire 64 W, target_pc $end +$var wire 8 X, fallthrough_offset $end +$var string 1 Y, insn_kind $end +$var string 1 Z, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[12] $end +$var string 1 [, \$tag $end +$scope struct HdlSome $end +$var wire 64 \, start_pc $end +$var wire 64 ], target_pc $end +$var wire 8 ^, fallthrough_offset $end +$var string 1 _, insn_kind $end +$var string 1 `, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[13] $end +$var string 1 a, \$tag $end +$scope struct HdlSome $end +$var wire 64 b, start_pc $end +$var wire 64 c, target_pc $end +$var wire 8 d, fallthrough_offset $end +$var string 1 e, insn_kind $end +$var string 1 f, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[14] $end +$var string 1 g, \$tag $end +$scope struct HdlSome $end +$var wire 64 h, start_pc $end +$var wire 64 i, target_pc $end +$var wire 8 j, fallthrough_offset $end +$var string 1 k, insn_kind $end +$var string 1 l, addr_kind $end +$upscope $end +$upscope $end +$scope struct \[15] $end +$var string 1 m, \$tag $end +$scope struct HdlSome $end +$var wire 64 n, start_pc $end +$var wire 64 o, target_pc $end +$var wire 8 p, fallthrough_offset $end +$var string 1 q, insn_kind $end +$var string 1 r, addr_kind $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope struct branch_history $end +$scope struct history $end +$var wire 1 s, \[0] $end +$var wire 1 t, \[1] $end +$var wire 1 u, \[2] $end +$var wire 1 v, \[3] $end +$var wire 1 w, \[4] $end +$var wire 1 x, \[5] $end +$var wire 1 y, \[6] $end +$var wire 1 z, \[7] $end +$var wire 1 {, \[8] $end +$var wire 1 |, \[9] $end +$var wire 1 }, \[10] $end +$var wire 1 ~, \[11] $end +$var wire 1 !- \[12] $end +$var wire 1 "- \[13] $end +$var wire 1 #- \[14] $end +$var wire 1 $- \[15] $end +$var wire 1 %- \[16] $end +$var wire 1 &- \[17] $end +$var wire 1 '- \[18] $end +$var wire 1 (- \[19] $end +$var wire 1 )- \[20] $end +$var wire 1 *- \[21] $end +$var wire 1 +- \[22] $end +$var wire 1 ,- \[23] $end +$var wire 1 -- \[24] $end +$var wire 1 .- \[25] $end +$var wire 1 /- \[26] $end +$var wire 1 0- \[27] $end +$var wire 1 1- \[28] $end +$var wire 1 2- \[29] $end +$var wire 1 3- \[30] $end +$var wire 1 4- \[31] $end +$var wire 1 5- \[32] $end +$var wire 1 6- \[33] $end +$var wire 1 7- \[34] $end +$var wire 1 8- \[35] $end +$var wire 1 9- \[36] $end +$var wire 1 :- \[37] $end +$var wire 1 ;- \[38] $end +$var wire 1 <- \[39] $end +$var wire 1 =- \[40] $end +$var wire 1 >- \[41] $end +$var wire 1 ?- \[42] $end +$var wire 1 @- \[43] $end +$var wire 1 A- \[44] $end +$var wire 1 B- \[45] $end +$var wire 1 C- \[46] $end +$var wire 1 D- \[47] $end +$var wire 1 E- \[48] $end +$var wire 1 F- \[49] $end +$var wire 1 G- \[50] $end +$var wire 1 H- \[51] $end +$var wire 1 I- \[52] $end +$var wire 1 J- \[53] $end +$var wire 1 K- \[54] $end +$var wire 1 L- \[55] $end +$var wire 1 M- \[56] $end +$var wire 1 N- \[57] $end +$var wire 1 O- \[58] $end +$var wire 1 P- \[59] $end +$var wire 1 Q- \[60] $end +$var wire 1 R- \[61] $end +$var wire 1 S- \[62] $end +$var wire 1 T- \[63] $end +$var wire 1 U- \[64] $end +$var wire 1 V- \[65] $end +$var wire 1 W- \[66] $end +$var wire 1 X- \[67] $end +$var wire 1 Y- \[68] $end +$var wire 1 Z- \[69] $end +$var wire 1 [- \[70] $end +$var wire 1 \- \[71] $end +$var wire 1 ]- \[72] $end +$var wire 1 ^- \[73] $end +$var wire 1 _- \[74] $end +$var wire 1 `- \[75] $end +$var wire 1 a- \[76] $end +$var wire 1 b- \[77] $end +$var wire 1 c- \[78] $end +$var wire 1 d- \[79] $end +$var wire 1 e- \[80] $end +$var wire 1 f- \[81] $end +$var wire 1 g- \[82] $end +$var wire 1 h- \[83] $end +$var wire 1 i- \[84] $end +$var wire 1 j- \[85] $end +$var wire 1 k- \[86] $end +$var wire 1 l- \[87] $end +$var wire 1 m- \[88] $end +$var wire 1 n- \[89] $end +$var wire 1 o- \[90] $end +$var wire 1 p- \[91] $end +$var wire 1 q- \[92] $end +$var wire 1 r- \[93] $end +$var wire 1 s- \[94] $end +$var wire 1 t- \[95] $end +$var wire 1 u- \[96] $end +$var wire 1 v- \[97] $end +$var wire 1 w- \[98] $end +$var wire 1 x- \[99] $end +$var wire 1 y- \[100] $end +$var wire 1 z- \[101] $end +$var wire 1 {- \[102] $end +$var wire 1 |- \[103] $end +$var wire 1 }- \[104] $end +$var wire 1 ~- \[105] $end +$var wire 1 !. \[106] $end +$var wire 1 ". \[107] $end +$var wire 1 #. \[108] $end +$var wire 1 $. \[109] $end +$var wire 1 %. \[110] $end +$var wire 1 &. \[111] $end +$var wire 1 '. \[112] $end +$var wire 1 (. \[113] $end +$var wire 1 ). \[114] $end +$var wire 1 *. \[115] $end +$var wire 1 +. \[116] $end +$var wire 1 ,. \[117] $end +$var wire 1 -. \[118] $end +$var wire 1 .. \[119] $end +$var wire 1 /. \[120] $end +$var wire 1 0. \[121] $end +$var wire 1 1. \[122] $end +$var wire 1 2. \[123] $end +$var wire 1 3. \[124] $end +$var wire 1 4. \[125] $end +$var wire 1 5. \[126] $end +$var wire 1 6. \[127] $end +$var wire 1 7. \[128] $end +$var wire 1 8. \[129] $end +$var wire 1 9. \[130] $end +$var wire 1 :. \[131] $end +$var wire 1 ;. \[132] $end +$var wire 1 <. \[133] $end +$var wire 1 =. \[134] $end +$var wire 1 >. \[135] $end +$var wire 1 ?. \[136] $end +$var wire 1 @. \[137] $end +$var wire 1 A. \[138] $end +$var wire 1 B. \[139] $end +$var wire 1 C. \[140] $end +$var wire 1 D. \[141] $end +$var wire 1 E. \[142] $end +$var wire 1 F. \[143] $end +$var wire 1 G. \[144] $end +$var wire 1 H. \[145] $end +$var wire 1 I. \[146] $end +$var wire 1 J. \[147] $end +$var wire 1 K. \[148] $end +$var wire 1 L. \[149] $end +$var wire 1 M. \[150] $end +$var wire 1 N. \[151] $end +$var wire 1 O. \[152] $end +$var wire 1 P. \[153] $end +$var wire 1 Q. \[154] $end +$var wire 1 R. \[155] $end +$var wire 1 S. \[156] $end +$var wire 1 T. \[157] $end +$var wire 1 U. \[158] $end +$var wire 1 V. \[159] $end +$var wire 1 W. \[160] $end +$var wire 1 X. \[161] $end +$var wire 1 Y. \[162] $end +$var wire 1 Z. \[163] $end +$var wire 1 [. \[164] $end +$var wire 1 \. \[165] $end +$var wire 1 ]. \[166] $end +$var wire 1 ^. \[167] $end +$var wire 1 _. \[168] $end +$var wire 1 `. \[169] $end +$var wire 1 a. \[170] $end +$var wire 1 b. \[171] $end +$var wire 1 c. \[172] $end +$var wire 1 d. \[173] $end +$var wire 1 e. \[174] $end +$var wire 1 f. \[175] $end +$var wire 1 g. \[176] $end +$var wire 1 h. \[177] $end +$var wire 1 i. \[178] $end +$var wire 1 j. \[179] $end +$var wire 1 k. \[180] $end +$var wire 1 l. \[181] $end +$var wire 1 m. \[182] $end +$var wire 1 n. \[183] $end +$var wire 1 o. \[184] $end +$var wire 1 p. \[185] $end +$var wire 1 q. \[186] $end +$var wire 1 r. \[187] $end +$var wire 1 s. \[188] $end +$var wire 1 t. \[189] $end +$var wire 1 u. \[190] $end +$var wire 1 v. \[191] $end +$var wire 1 w. \[192] $end +$var wire 1 x. \[193] $end +$var wire 1 y. \[194] $end +$var wire 1 z. \[195] $end +$var wire 1 {. \[196] $end +$var wire 1 |. \[197] $end +$var wire 1 }. \[198] $end +$var wire 1 ~. \[199] $end +$var wire 1 !/ \[200] $end +$var wire 1 "/ \[201] $end +$var wire 1 #/ \[202] $end +$var wire 1 $/ \[203] $end +$var wire 1 %/ \[204] $end +$var wire 1 &/ \[205] $end +$var wire 1 '/ \[206] $end +$var wire 1 (/ \[207] $end +$var wire 1 )/ \[208] $end +$var wire 1 */ \[209] $end +$var wire 1 +/ \[210] $end +$var wire 1 ,/ \[211] $end +$var wire 1 -/ \[212] $end +$var wire 1 ./ \[213] $end +$var wire 1 // \[214] $end +$var wire 1 0/ \[215] $end +$var wire 1 1/ \[216] $end +$var wire 1 2/ \[217] $end +$var wire 1 3/ \[218] $end +$var wire 1 4/ \[219] $end +$var wire 1 5/ \[220] $end +$var wire 1 6/ \[221] $end +$var wire 1 7/ \[222] $end +$var wire 1 8/ \[223] $end +$var wire 1 9/ \[224] $end +$var wire 1 :/ \[225] $end +$var wire 1 ;/ \[226] $end +$var wire 1 / \[229] $end +$var wire 1 ?/ \[230] $end +$var wire 1 @/ \[231] $end +$var wire 1 A/ \[232] $end +$var wire 1 B/ \[233] $end +$var wire 1 C/ \[234] $end +$var wire 1 D/ \[235] $end +$var wire 1 E/ \[236] $end +$var wire 1 F/ \[237] $end +$var wire 1 G/ \[238] $end +$var wire 1 H/ \[239] $end +$var wire 1 I/ \[240] $end +$var wire 1 J/ \[241] $end +$var wire 1 K/ \[242] $end +$var wire 1 L/ \[243] $end +$var wire 1 M/ \[244] $end +$var wire 1 N/ \[245] $end +$var wire 1 O/ \[246] $end +$var wire 1 P/ \[247] $end +$var wire 1 Q/ \[248] $end +$var wire 1 R/ \[249] $end +$var wire 1 S/ \[250] $end +$var wire 1 T/ \[251] $end +$var wire 1 U/ \[252] $end +$var wire 1 V/ \[253] $end +$var wire 1 W/ \[254] $end +$var wire 1 X/ \[255] $end +$upscope $end +$scope struct tail $end +$var wire 8 Y/ value $end +$var string 1 Z/ range $end +$upscope $end +$scope struct non_speculative_head $end +$var wire 8 [/ value $end +$var string 1 \/ range $end +$upscope $end +$scope struct speculative_head $end +$var wire 8 ]/ value $end +$var string 1 ^/ range $end +$upscope $end +$upscope $end +$scope struct branch_predictor $end +$var string 1 _/ \[0] $end +$var string 1 `/ \[1] $end +$var string 1 a/ \[2] $end +$var string 1 b/ \[3] $end +$var string 1 c/ \[4] $end +$var string 1 d/ \[5] $end +$var string 1 e/ \[6] $end +$var string 1 f/ \[7] $end +$var string 1 g/ \[8] $end +$var string 1 h/ \[9] $end +$var string 1 i/ \[10] $end +$var string 1 j/ \[11] $end +$var string 1 k/ \[12] $end +$var string 1 l/ \[13] $end +$var string 1 m/ \[14] $end +$var string 1 n/ \[15] $end +$var string 1 o/ \[16] $end +$var string 1 p/ \[17] $end +$var string 1 q/ \[18] $end +$var string 1 r/ \[19] $end +$var string 1 s/ \[20] $end +$var string 1 t/ \[21] $end +$var string 1 u/ \[22] $end +$var string 1 v/ \[23] $end +$var string 1 w/ \[24] $end +$var string 1 x/ \[25] $end +$var string 1 y/ \[26] $end +$var string 1 z/ \[27] $end +$var string 1 {/ \[28] $end +$var string 1 |/ \[29] $end +$var string 1 }/ \[30] $end +$var string 1 ~/ \[31] $end +$var string 1 !0 \[32] $end +$var string 1 "0 \[33] $end +$var string 1 #0 \[34] $end +$var string 1 $0 \[35] $end +$var string 1 %0 \[36] $end +$var string 1 &0 \[37] $end +$var string 1 '0 \[38] $end +$var string 1 (0 \[39] $end +$var string 1 )0 \[40] $end +$var string 1 *0 \[41] $end +$var string 1 +0 \[42] $end +$var string 1 ,0 \[43] $end +$var string 1 -0 \[44] $end +$var string 1 .0 \[45] $end +$var string 1 /0 \[46] $end +$var string 1 00 \[47] $end +$var string 1 10 \[48] $end +$var string 1 20 \[49] $end +$var string 1 30 \[50] $end +$var string 1 40 \[51] $end +$var string 1 50 \[52] $end +$var string 1 60 \[53] $end +$var string 1 70 \[54] $end +$var string 1 80 \[55] $end +$var string 1 90 \[56] $end +$var string 1 :0 \[57] $end +$var string 1 ;0 \[58] $end +$var string 1 <0 \[59] $end +$var string 1 =0 \[60] $end +$var string 1 >0 \[61] $end +$var string 1 ?0 \[62] $end +$var string 1 @0 \[63] $end +$var string 1 A0 \[64] $end +$var string 1 B0 \[65] $end +$var string 1 C0 \[66] $end +$var string 1 D0 \[67] $end +$var string 1 E0 \[68] $end +$var string 1 F0 \[69] $end +$var string 1 G0 \[70] $end +$var string 1 H0 \[71] $end +$var string 1 I0 \[72] $end +$var string 1 J0 \[73] $end +$var string 1 K0 \[74] $end +$var string 1 L0 \[75] $end +$var string 1 M0 \[76] $end +$var string 1 N0 \[77] $end +$var string 1 O0 \[78] $end +$var string 1 P0 \[79] $end +$var string 1 Q0 \[80] $end +$var string 1 R0 \[81] $end +$var string 1 S0 \[82] $end +$var string 1 T0 \[83] $end +$var string 1 U0 \[84] $end +$var string 1 V0 \[85] $end +$var string 1 W0 \[86] $end +$var string 1 X0 \[87] $end +$var string 1 Y0 \[88] $end +$var string 1 Z0 \[89] $end +$var string 1 [0 \[90] $end +$var string 1 \0 \[91] $end +$var string 1 ]0 \[92] $end +$var string 1 ^0 \[93] $end +$var string 1 _0 \[94] $end +$var string 1 `0 \[95] $end +$var string 1 a0 \[96] $end +$var string 1 b0 \[97] $end +$var string 1 c0 \[98] $end +$var string 1 d0 \[99] $end +$var string 1 e0 \[100] $end +$var string 1 f0 \[101] $end +$var string 1 g0 \[102] $end +$var string 1 h0 \[103] $end +$var string 1 i0 \[104] $end +$var string 1 j0 \[105] $end +$var string 1 k0 \[106] $end +$var string 1 l0 \[107] $end +$var string 1 m0 \[108] $end +$var string 1 n0 \[109] $end +$var string 1 o0 \[110] $end +$var string 1 p0 \[111] $end +$var string 1 q0 \[112] $end +$var string 1 r0 \[113] $end +$var string 1 s0 \[114] $end +$var string 1 t0 \[115] $end +$var string 1 u0 \[116] $end +$var string 1 v0 \[117] $end +$var string 1 w0 \[118] $end +$var string 1 x0 \[119] $end +$var string 1 y0 \[120] $end +$var string 1 z0 \[121] $end +$var string 1 {0 \[122] $end +$var string 1 |0 \[123] $end +$var string 1 }0 \[124] $end +$var string 1 ~0 \[125] $end +$var string 1 !1 \[126] $end +$var string 1 "1 \[127] $end +$var string 1 #1 \[128] $end +$var string 1 $1 \[129] $end +$var string 1 %1 \[130] $end +$var string 1 &1 \[131] $end +$var string 1 '1 \[132] $end +$var string 1 (1 \[133] $end +$var string 1 )1 \[134] $end +$var string 1 *1 \[135] $end +$var string 1 +1 \[136] $end +$var string 1 ,1 \[137] $end +$var string 1 -1 \[138] $end +$var string 1 .1 \[139] $end +$var string 1 /1 \[140] $end +$var string 1 01 \[141] $end +$var string 1 11 \[142] $end +$var string 1 21 \[143] $end +$var string 1 31 \[144] $end +$var string 1 41 \[145] $end +$var string 1 51 \[146] $end +$var string 1 61 \[147] $end +$var string 1 71 \[148] $end +$var string 1 81 \[149] $end +$var string 1 91 \[150] $end +$var string 1 :1 \[151] $end +$var string 1 ;1 \[152] $end +$var string 1 <1 \[153] $end +$var string 1 =1 \[154] $end +$var string 1 >1 \[155] $end +$var string 1 ?1 \[156] $end +$var string 1 @1 \[157] $end +$var string 1 A1 \[158] $end +$var string 1 B1 \[159] $end +$var string 1 C1 \[160] $end +$var string 1 D1 \[161] $end +$var string 1 E1 \[162] $end +$var string 1 F1 \[163] $end +$var string 1 G1 \[164] $end +$var string 1 H1 \[165] $end +$var string 1 I1 \[166] $end +$var string 1 J1 \[167] $end +$var string 1 K1 \[168] $end +$var string 1 L1 \[169] $end +$var string 1 M1 \[170] $end +$var string 1 N1 \[171] $end +$var string 1 O1 \[172] $end +$var string 1 P1 \[173] $end +$var string 1 Q1 \[174] $end +$var string 1 R1 \[175] $end +$var string 1 S1 \[176] $end +$var string 1 T1 \[177] $end +$var string 1 U1 \[178] $end +$var string 1 V1 \[179] $end +$var string 1 W1 \[180] $end +$var string 1 X1 \[181] $end +$var string 1 Y1 \[182] $end +$var string 1 Z1 \[183] $end +$var string 1 [1 \[184] $end +$var string 1 \1 \[185] $end +$var string 1 ]1 \[186] $end +$var string 1 ^1 \[187] $end +$var string 1 _1 \[188] $end +$var string 1 `1 \[189] $end +$var string 1 a1 \[190] $end +$var string 1 b1 \[191] $end +$var string 1 c1 \[192] $end +$var string 1 d1 \[193] $end +$var string 1 e1 \[194] $end +$var string 1 f1 \[195] $end +$var string 1 g1 \[196] $end +$var string 1 h1 \[197] $end +$var string 1 i1 \[198] $end +$var string 1 j1 \[199] $end +$var string 1 k1 \[200] $end +$var string 1 l1 \[201] $end +$var string 1 m1 \[202] $end +$var string 1 n1 \[203] $end +$var string 1 o1 \[204] $end +$var string 1 p1 \[205] $end +$var string 1 q1 \[206] $end +$var string 1 r1 \[207] $end +$var string 1 s1 \[208] $end +$var string 1 t1 \[209] $end +$var string 1 u1 \[210] $end +$var string 1 v1 \[211] $end +$var string 1 w1 \[212] $end +$var string 1 x1 \[213] $end +$var string 1 y1 \[214] $end +$var string 1 z1 \[215] $end +$var string 1 {1 \[216] $end +$var string 1 |1 \[217] $end +$var string 1 }1 \[218] $end +$var string 1 ~1 \[219] $end +$var string 1 !2 \[220] $end +$var string 1 "2 \[221] $end +$var string 1 #2 \[222] $end +$var string 1 $2 \[223] $end +$var string 1 %2 \[224] $end +$var string 1 &2 \[225] $end +$var string 1 '2 \[226] $end +$var string 1 (2 \[227] $end +$var string 1 )2 \[228] $end +$var string 1 *2 \[229] $end +$var string 1 +2 \[230] $end +$var string 1 ,2 \[231] $end +$var string 1 -2 \[232] $end +$var string 1 .2 \[233] $end +$var string 1 /2 \[234] $end +$var string 1 02 \[235] $end +$var string 1 12 \[236] $end +$var string 1 22 \[237] $end +$var string 1 32 \[238] $end +$var string 1 42 \[239] $end +$var string 1 52 \[240] $end +$var string 1 62 \[241] $end +$var string 1 72 \[242] $end +$var string 1 82 \[243] $end +$var string 1 92 \[244] $end +$var string 1 :2 \[245] $end +$var string 1 ;2 \[246] $end +$var string 1 <2 \[247] $end +$var string 1 =2 \[248] $end +$var string 1 >2 \[249] $end +$var string 1 ?2 \[250] $end +$var string 1 @2 \[251] $end +$var string 1 A2 \[252] $end +$var string 1 B2 \[253] $end +$var string 1 C2 \[254] $end +$var string 1 D2 \[255] $end +$upscope $end +$scope struct fetching_queue $end +$scope struct data $end +$scope struct \[0] $end +$var wire 8 E2 fetch_block_id $end +$upscope $end +$scope struct \[1] $end +$var wire 8 F2 fetch_block_id $end +$upscope $end +$scope struct \[2] $end +$var wire 8 G2 fetch_block_id $end +$upscope $end +$scope struct \[3] $end +$var wire 8 H2 fetch_block_id $end +$upscope $end +$scope struct \[4] $end +$var wire 8 I2 fetch_block_id $end +$upscope $end +$scope struct \[5] $end +$var wire 8 J2 fetch_block_id $end +$upscope $end +$scope struct \[6] $end +$var wire 8 K2 fetch_block_id $end +$upscope $end +$scope struct \[7] $end +$var wire 8 L2 fetch_block_id $end +$upscope $end +$scope struct \[8] $end +$var wire 8 M2 fetch_block_id $end +$upscope $end +$scope struct \[9] $end +$var wire 8 N2 fetch_block_id $end +$upscope $end +$scope struct \[10] $end +$var wire 8 O2 fetch_block_id $end +$upscope $end +$scope struct \[11] $end +$var wire 8 P2 fetch_block_id $end +$upscope $end +$scope struct \[12] $end +$var wire 8 Q2 fetch_block_id $end +$upscope $end +$scope struct \[13] $end +$var wire 8 R2 fetch_block_id $end +$upscope $end +$scope struct \[14] $end +$var wire 8 S2 fetch_block_id $end +$upscope $end +$scope struct \[15] $end +$var wire 8 T2 fetch_block_id $end +$upscope $end +$scope struct \[16] $end +$var wire 8 U2 fetch_block_id $end +$upscope $end +$scope struct \[17] $end +$var wire 8 V2 fetch_block_id $end +$upscope $end +$scope struct \[18] $end +$var wire 8 W2 fetch_block_id $end +$upscope $end +$scope struct \[19] $end +$var wire 8 X2 fetch_block_id $end +$upscope $end +$scope struct \[20] $end +$var wire 8 Y2 fetch_block_id $end +$upscope $end +$scope struct \[21] $end +$var wire 8 Z2 fetch_block_id $end +$upscope $end +$scope struct \[22] $end +$var wire 8 [2 fetch_block_id $end +$upscope $end +$scope struct \[23] $end +$var wire 8 \2 fetch_block_id $end +$upscope $end +$scope struct \[24] $end +$var wire 8 ]2 fetch_block_id $end +$upscope $end +$scope struct \[25] $end +$var wire 8 ^2 fetch_block_id $end +$upscope $end +$scope struct \[26] $end +$var wire 8 _2 fetch_block_id $end +$upscope $end +$scope struct \[27] $end +$var wire 8 `2 fetch_block_id $end +$upscope $end +$scope struct \[28] $end +$var wire 8 a2 fetch_block_id $end +$upscope $end +$scope struct \[29] $end +$var wire 8 b2 fetch_block_id $end +$upscope $end +$scope struct \[30] $end +$var wire 8 c2 fetch_block_id $end +$upscope $end +$scope struct \[31] $end +$var wire 8 d2 fetch_block_id $end +$upscope $end +$scope struct \[32] $end +$var wire 8 e2 fetch_block_id $end +$upscope $end +$scope struct \[33] $end +$var wire 8 f2 fetch_block_id $end +$upscope $end +$scope struct \[34] $end +$var wire 8 g2 fetch_block_id $end +$upscope $end +$scope struct \[35] $end +$var wire 8 h2 fetch_block_id $end +$upscope $end +$scope struct \[36] $end +$var wire 8 i2 fetch_block_id $end +$upscope $end +$scope struct \[37] $end +$var wire 8 j2 fetch_block_id $end +$upscope $end +$scope struct \[38] $end +$var wire 8 k2 fetch_block_id $end +$upscope $end +$scope struct \[39] $end +$var wire 8 l2 fetch_block_id $end +$upscope $end +$scope struct \[40] $end +$var wire 8 m2 fetch_block_id $end +$upscope $end +$scope struct \[41] $end +$var wire 8 n2 fetch_block_id $end +$upscope $end +$scope struct \[42] $end +$var wire 8 o2 fetch_block_id $end +$upscope $end +$scope struct \[43] $end +$var wire 8 p2 fetch_block_id $end +$upscope $end +$scope struct \[44] $end +$var wire 8 q2 fetch_block_id $end +$upscope $end +$scope struct \[45] $end +$var wire 8 r2 fetch_block_id $end +$upscope $end +$scope struct \[46] $end +$var wire 8 s2 fetch_block_id $end +$upscope $end +$scope struct \[47] $end +$var wire 8 t2 fetch_block_id $end +$upscope $end +$scope struct \[48] $end +$var wire 8 u2 fetch_block_id $end +$upscope $end +$scope struct \[49] $end +$var wire 8 v2 fetch_block_id $end +$upscope $end +$scope struct \[50] $end +$var wire 8 w2 fetch_block_id $end +$upscope $end +$scope struct \[51] $end +$var wire 8 x2 fetch_block_id $end +$upscope $end +$scope struct \[52] $end +$var wire 8 y2 fetch_block_id $end +$upscope $end +$scope struct \[53] $end +$var wire 8 z2 fetch_block_id $end +$upscope $end +$scope struct \[54] $end +$var wire 8 {2 fetch_block_id $end +$upscope $end +$scope struct \[55] $end +$var wire 8 |2 fetch_block_id $end +$upscope $end +$scope struct \[56] $end +$var wire 8 }2 fetch_block_id $end +$upscope $end +$scope struct \[57] $end +$var wire 8 ~2 fetch_block_id $end +$upscope $end +$scope struct \[58] $end +$var wire 8 !3 fetch_block_id $end +$upscope $end +$scope struct \[59] $end +$var wire 8 "3 fetch_block_id $end +$upscope $end +$scope struct \[60] $end +$var wire 8 #3 fetch_block_id $end +$upscope $end +$scope struct \[61] $end +$var wire 8 $3 fetch_block_id $end +$upscope $end +$scope struct \[62] $end +$var wire 8 %3 fetch_block_id $end +$upscope $end +$scope struct \[63] $end +$var wire 8 &3 fetch_block_id $end +$upscope $end +$scope struct \[64] $end +$var wire 8 '3 fetch_block_id $end +$upscope $end +$scope struct \[65] $end +$var wire 8 (3 fetch_block_id $end +$upscope $end +$scope struct \[66] $end +$var wire 8 )3 fetch_block_id $end +$upscope $end +$scope struct \[67] $end +$var wire 8 *3 fetch_block_id $end +$upscope $end +$scope struct \[68] $end +$var wire 8 +3 fetch_block_id $end +$upscope $end +$scope struct \[69] $end +$var wire 8 ,3 fetch_block_id $end +$upscope $end +$scope struct \[70] $end +$var wire 8 -3 fetch_block_id $end +$upscope $end +$scope struct \[71] $end +$var wire 8 .3 fetch_block_id $end +$upscope $end +$scope struct \[72] $end +$var wire 8 /3 fetch_block_id $end +$upscope $end +$scope struct \[73] $end +$var wire 8 03 fetch_block_id $end +$upscope $end +$scope struct \[74] $end +$var wire 8 13 fetch_block_id $end +$upscope $end +$scope struct \[75] $end +$var wire 8 23 fetch_block_id $end +$upscope $end +$scope struct \[76] $end +$var wire 8 33 fetch_block_id $end +$upscope $end +$scope struct \[77] $end +$var wire 8 43 fetch_block_id $end +$upscope $end +$scope struct \[78] $end +$var wire 8 53 fetch_block_id $end +$upscope $end +$scope struct \[79] $end +$var wire 8 63 fetch_block_id $end +$upscope $end +$scope struct \[80] $end +$var wire 8 73 fetch_block_id $end +$upscope $end +$scope struct \[81] $end +$var wire 8 83 fetch_block_id $end +$upscope $end +$scope struct \[82] $end +$var wire 8 93 fetch_block_id $end +$upscope $end +$scope struct \[83] $end +$var wire 8 :3 fetch_block_id $end +$upscope $end +$scope struct \[84] $end +$var wire 8 ;3 fetch_block_id $end +$upscope $end +$scope struct \[85] $end +$var wire 8 <3 fetch_block_id $end +$upscope $end +$scope struct \[86] $end +$var wire 8 =3 fetch_block_id $end +$upscope $end +$scope struct \[87] $end +$var wire 8 >3 fetch_block_id $end +$upscope $end +$scope struct \[88] $end +$var wire 8 ?3 fetch_block_id $end +$upscope $end +$scope struct \[89] $end +$var wire 8 @3 fetch_block_id $end +$upscope $end +$scope struct \[90] $end +$var wire 8 A3 fetch_block_id $end +$upscope $end +$scope struct \[91] $end +$var wire 8 B3 fetch_block_id $end +$upscope $end +$scope struct \[92] $end +$var wire 8 C3 fetch_block_id $end +$upscope $end +$scope struct \[93] $end +$var wire 8 D3 fetch_block_id $end +$upscope $end +$scope struct \[94] $end +$var wire 8 E3 fetch_block_id $end +$upscope $end +$scope struct \[95] $end +$var wire 8 F3 fetch_block_id $end +$upscope $end +$scope struct \[96] $end +$var wire 8 G3 fetch_block_id $end +$upscope $end +$scope struct \[97] $end +$var wire 8 H3 fetch_block_id $end +$upscope $end +$scope struct \[98] $end +$var wire 8 I3 fetch_block_id $end +$upscope $end +$scope struct \[99] $end +$var wire 8 J3 fetch_block_id $end +$upscope $end +$scope struct \[100] $end +$var wire 8 K3 fetch_block_id $end +$upscope $end +$scope struct \[101] $end +$var wire 8 L3 fetch_block_id $end +$upscope $end +$scope struct \[102] $end +$var wire 8 M3 fetch_block_id $end +$upscope $end +$scope struct \[103] $end +$var wire 8 N3 fetch_block_id $end +$upscope $end +$scope struct \[104] $end +$var wire 8 O3 fetch_block_id $end +$upscope $end +$scope struct \[105] $end +$var wire 8 P3 fetch_block_id $end +$upscope $end +$scope struct \[106] $end +$var wire 8 Q3 fetch_block_id $end +$upscope $end +$scope struct \[107] $end +$var wire 8 R3 fetch_block_id $end +$upscope $end +$scope struct \[108] $end +$var wire 8 S3 fetch_block_id $end +$upscope $end +$scope struct \[109] $end +$var wire 8 T3 fetch_block_id $end +$upscope $end +$scope struct \[110] $end +$var wire 8 U3 fetch_block_id $end +$upscope $end +$scope struct \[111] $end +$var wire 8 V3 fetch_block_id $end +$upscope $end +$scope struct \[112] $end +$var wire 8 W3 fetch_block_id $end +$upscope $end +$scope struct \[113] $end +$var wire 8 X3 fetch_block_id $end +$upscope $end +$scope struct \[114] $end +$var wire 8 Y3 fetch_block_id $end +$upscope $end +$scope struct \[115] $end +$var wire 8 Z3 fetch_block_id $end +$upscope $end +$scope struct \[116] $end +$var wire 8 [3 fetch_block_id $end +$upscope $end +$scope struct \[117] $end +$var wire 8 \3 fetch_block_id $end +$upscope $end +$scope struct \[118] $end +$var wire 8 ]3 fetch_block_id $end +$upscope $end +$scope struct \[119] $end +$var wire 8 ^3 fetch_block_id $end +$upscope $end +$scope struct \[120] $end +$var wire 8 _3 fetch_block_id $end +$upscope $end +$scope struct \[121] $end +$var wire 8 `3 fetch_block_id $end +$upscope $end +$scope struct \[122] $end +$var wire 8 a3 fetch_block_id $end +$upscope $end +$scope struct \[123] $end +$var wire 8 b3 fetch_block_id $end +$upscope $end +$scope struct \[124] $end +$var wire 8 c3 fetch_block_id $end +$upscope $end +$scope struct \[125] $end +$var wire 8 d3 fetch_block_id $end +$upscope $end +$scope struct \[126] $end +$var wire 8 e3 fetch_block_id $end +$upscope $end +$scope struct \[127] $end +$var wire 8 f3 fetch_block_id $end +$upscope $end +$scope struct \[128] $end +$var wire 8 g3 fetch_block_id $end +$upscope $end +$scope struct \[129] $end +$var wire 8 h3 fetch_block_id $end +$upscope $end +$scope struct \[130] $end +$var wire 8 i3 fetch_block_id $end +$upscope $end +$scope struct \[131] $end +$var wire 8 j3 fetch_block_id $end +$upscope $end +$scope struct \[132] $end +$var wire 8 k3 fetch_block_id $end +$upscope $end +$scope struct \[133] $end +$var wire 8 l3 fetch_block_id $end +$upscope $end +$scope struct \[134] $end +$var wire 8 m3 fetch_block_id $end +$upscope $end +$scope struct \[135] $end +$var wire 8 n3 fetch_block_id $end +$upscope $end +$scope struct \[136] $end +$var wire 8 o3 fetch_block_id $end +$upscope $end +$scope struct \[137] $end +$var wire 8 p3 fetch_block_id $end +$upscope $end +$scope struct \[138] $end +$var wire 8 q3 fetch_block_id $end +$upscope $end +$scope struct \[139] $end +$var wire 8 r3 fetch_block_id $end +$upscope $end +$scope struct \[140] $end +$var wire 8 s3 fetch_block_id $end +$upscope $end +$scope struct \[141] $end +$var wire 8 t3 fetch_block_id $end +$upscope $end +$scope struct \[142] $end +$var wire 8 u3 fetch_block_id $end +$upscope $end +$scope struct \[143] $end +$var wire 8 v3 fetch_block_id $end +$upscope $end +$scope struct \[144] $end +$var wire 8 w3 fetch_block_id $end +$upscope $end +$scope struct \[145] $end +$var wire 8 x3 fetch_block_id $end +$upscope $end +$scope struct \[146] $end +$var wire 8 y3 fetch_block_id $end +$upscope $end +$scope struct \[147] $end +$var wire 8 z3 fetch_block_id $end +$upscope $end +$scope struct \[148] $end +$var wire 8 {3 fetch_block_id $end +$upscope $end +$scope struct \[149] $end +$var wire 8 |3 fetch_block_id $end +$upscope $end +$scope struct \[150] $end +$var wire 8 }3 fetch_block_id $end +$upscope $end +$scope struct \[151] $end +$var wire 8 ~3 fetch_block_id $end +$upscope $end +$scope struct \[152] $end +$var wire 8 !4 fetch_block_id $end +$upscope $end +$scope struct \[153] $end +$var wire 8 "4 fetch_block_id $end +$upscope $end +$scope struct \[154] $end +$var wire 8 #4 fetch_block_id $end +$upscope $end +$scope struct \[155] $end +$var wire 8 $4 fetch_block_id $end +$upscope $end +$scope struct \[156] $end +$var wire 8 %4 fetch_block_id $end +$upscope $end +$scope struct \[157] $end +$var wire 8 &4 fetch_block_id $end +$upscope $end +$scope struct \[158] $end +$var wire 8 '4 fetch_block_id $end +$upscope $end +$scope struct \[159] $end +$var wire 8 (4 fetch_block_id $end +$upscope $end +$scope struct \[160] $end +$var wire 8 )4 fetch_block_id $end +$upscope $end +$scope struct \[161] $end +$var wire 8 *4 fetch_block_id $end +$upscope $end +$scope struct \[162] $end +$var wire 8 +4 fetch_block_id $end +$upscope $end +$scope struct \[163] $end +$var wire 8 ,4 fetch_block_id $end +$upscope $end +$scope struct \[164] $end +$var wire 8 -4 fetch_block_id $end +$upscope $end +$scope struct \[165] $end +$var wire 8 .4 fetch_block_id $end +$upscope $end +$scope struct \[166] $end +$var wire 8 /4 fetch_block_id $end +$upscope $end +$scope struct \[167] $end +$var wire 8 04 fetch_block_id $end +$upscope $end +$scope struct \[168] $end +$var wire 8 14 fetch_block_id $end +$upscope $end +$scope struct \[169] $end +$var wire 8 24 fetch_block_id $end +$upscope $end +$scope struct \[170] $end +$var wire 8 34 fetch_block_id $end +$upscope $end +$scope struct \[171] $end +$var wire 8 44 fetch_block_id $end +$upscope $end +$scope struct \[172] $end +$var wire 8 54 fetch_block_id $end +$upscope $end +$scope struct \[173] $end +$var wire 8 64 fetch_block_id $end +$upscope $end +$scope struct \[174] $end +$var wire 8 74 fetch_block_id $end +$upscope $end +$scope struct \[175] $end +$var wire 8 84 fetch_block_id $end +$upscope $end +$scope struct \[176] $end +$var wire 8 94 fetch_block_id $end +$upscope $end +$scope struct \[177] $end +$var wire 8 :4 fetch_block_id $end +$upscope $end +$scope struct \[178] $end +$var wire 8 ;4 fetch_block_id $end +$upscope $end +$scope struct \[179] $end +$var wire 8 <4 fetch_block_id $end +$upscope $end +$scope struct \[180] $end +$var wire 8 =4 fetch_block_id $end +$upscope $end +$scope struct \[181] $end +$var wire 8 >4 fetch_block_id $end +$upscope $end +$scope struct \[182] $end +$var wire 8 ?4 fetch_block_id $end +$upscope $end +$scope struct \[183] $end +$var wire 8 @4 fetch_block_id $end +$upscope $end +$scope struct \[184] $end +$var wire 8 A4 fetch_block_id $end +$upscope $end +$scope struct \[185] $end +$var wire 8 B4 fetch_block_id $end +$upscope $end +$scope struct \[186] $end +$var wire 8 C4 fetch_block_id $end +$upscope $end +$scope struct \[187] $end +$var wire 8 D4 fetch_block_id $end +$upscope $end +$scope struct \[188] $end +$var wire 8 E4 fetch_block_id $end +$upscope $end +$scope struct \[189] $end +$var wire 8 F4 fetch_block_id $end +$upscope $end +$scope struct \[190] $end +$var wire 8 G4 fetch_block_id $end +$upscope $end +$scope struct \[191] $end +$var wire 8 H4 fetch_block_id $end +$upscope $end +$scope struct \[192] $end +$var wire 8 I4 fetch_block_id $end +$upscope $end +$scope struct \[193] $end +$var wire 8 J4 fetch_block_id $end +$upscope $end +$scope struct \[194] $end +$var wire 8 K4 fetch_block_id $end +$upscope $end +$scope struct \[195] $end +$var wire 8 L4 fetch_block_id $end +$upscope $end +$scope struct \[196] $end +$var wire 8 M4 fetch_block_id $end +$upscope $end +$scope struct \[197] $end +$var wire 8 N4 fetch_block_id $end +$upscope $end +$scope struct \[198] $end +$var wire 8 O4 fetch_block_id $end +$upscope $end +$scope struct \[199] $end +$var wire 8 P4 fetch_block_id $end +$upscope $end +$scope struct \[200] $end +$var wire 8 Q4 fetch_block_id $end +$upscope $end +$scope struct \[201] $end +$var wire 8 R4 fetch_block_id $end +$upscope $end +$scope struct \[202] $end +$var wire 8 S4 fetch_block_id $end +$upscope $end +$scope struct \[203] $end +$var wire 8 T4 fetch_block_id $end +$upscope $end +$scope struct \[204] $end +$var wire 8 U4 fetch_block_id $end +$upscope $end +$scope struct \[205] $end +$var wire 8 V4 fetch_block_id $end +$upscope $end +$scope struct \[206] $end +$var wire 8 W4 fetch_block_id $end +$upscope $end +$scope struct \[207] $end +$var wire 8 X4 fetch_block_id $end +$upscope $end +$scope struct \[208] $end +$var wire 8 Y4 fetch_block_id $end +$upscope $end +$scope struct \[209] $end +$var wire 8 Z4 fetch_block_id $end +$upscope $end +$scope struct \[210] $end +$var wire 8 [4 fetch_block_id $end +$upscope $end +$scope struct \[211] $end +$var wire 8 \4 fetch_block_id $end +$upscope $end +$scope struct \[212] $end +$var wire 8 ]4 fetch_block_id $end +$upscope $end +$scope struct \[213] $end +$var wire 8 ^4 fetch_block_id $end +$upscope $end +$scope struct \[214] $end +$var wire 8 _4 fetch_block_id $end +$upscope $end +$scope struct \[215] $end +$var wire 8 `4 fetch_block_id $end +$upscope $end +$scope struct \[216] $end +$var wire 8 a4 fetch_block_id $end +$upscope $end +$scope struct \[217] $end +$var wire 8 b4 fetch_block_id $end +$upscope $end +$scope struct \[218] $end +$var wire 8 c4 fetch_block_id $end +$upscope $end +$scope struct \[219] $end +$var wire 8 d4 fetch_block_id $end +$upscope $end +$scope struct \[220] $end +$var wire 8 e4 fetch_block_id $end +$upscope $end +$scope struct \[221] $end +$var wire 8 f4 fetch_block_id $end +$upscope $end +$scope struct \[222] $end +$var wire 8 g4 fetch_block_id $end +$upscope $end +$scope struct \[223] $end +$var wire 8 h4 fetch_block_id $end +$upscope $end +$scope struct \[224] $end +$var wire 8 i4 fetch_block_id $end +$upscope $end +$scope struct \[225] $end +$var wire 8 j4 fetch_block_id $end +$upscope $end +$scope struct \[226] $end +$var wire 8 k4 fetch_block_id $end +$upscope $end +$scope struct \[227] $end +$var wire 8 l4 fetch_block_id $end +$upscope $end +$scope struct \[228] $end +$var wire 8 m4 fetch_block_id $end +$upscope $end +$scope struct \[229] $end +$var wire 8 n4 fetch_block_id $end +$upscope $end +$scope struct \[230] $end +$var wire 8 o4 fetch_block_id $end +$upscope $end +$scope struct \[231] $end +$var wire 8 p4 fetch_block_id $end +$upscope $end +$scope struct \[232] $end +$var wire 8 q4 fetch_block_id $end +$upscope $end +$scope struct \[233] $end +$var wire 8 r4 fetch_block_id $end +$upscope $end +$scope struct \[234] $end +$var wire 8 s4 fetch_block_id $end +$upscope $end +$scope struct \[235] $end +$var wire 8 t4 fetch_block_id $end +$upscope $end +$scope struct \[236] $end +$var wire 8 u4 fetch_block_id $end +$upscope $end +$scope struct \[237] $end +$var wire 8 v4 fetch_block_id $end +$upscope $end +$scope struct \[238] $end +$var wire 8 w4 fetch_block_id $end +$upscope $end +$scope struct \[239] $end +$var wire 8 x4 fetch_block_id $end +$upscope $end +$scope struct \[240] $end +$var wire 8 y4 fetch_block_id $end +$upscope $end +$scope struct \[241] $end +$var wire 8 z4 fetch_block_id $end +$upscope $end +$scope struct \[242] $end +$var wire 8 {4 fetch_block_id $end +$upscope $end +$scope struct \[243] $end +$var wire 8 |4 fetch_block_id $end +$upscope $end +$scope struct \[244] $end +$var wire 8 }4 fetch_block_id $end +$upscope $end +$scope struct \[245] $end +$var wire 8 ~4 fetch_block_id $end +$upscope $end +$scope struct \[246] $end +$var wire 8 !5 fetch_block_id $end +$upscope $end +$scope struct \[247] $end +$var wire 8 "5 fetch_block_id $end +$upscope $end +$scope struct \[248] $end +$var wire 8 #5 fetch_block_id $end +$upscope $end +$scope struct \[249] $end +$var wire 8 $5 fetch_block_id $end +$upscope $end +$scope struct \[250] $end +$var wire 8 %5 fetch_block_id $end +$upscope $end +$scope struct \[251] $end +$var wire 8 &5 fetch_block_id $end +$upscope $end +$scope struct \[252] $end +$var wire 8 '5 fetch_block_id $end +$upscope $end +$scope struct \[253] $end +$var wire 8 (5 fetch_block_id $end +$upscope $end +$scope struct \[254] $end +$var wire 8 )5 fetch_block_id $end +$upscope $end +$scope struct \[255] $end +$var wire 8 *5 fetch_block_id $end +$upscope $end +$upscope $end +$scope struct head $end +$var wire 8 +5 value $end +$var string 1 ,5 range $end +$upscope $end +$scope struct tail $end +$var wire 8 -5 value $end +$var string 1 .5 range $end +$upscope $end +$upscope $end +$var wire 1 /5 cancel_in_progress_fetches $end +$var wire 64 05 pc $end +$var wire 8 15 fetch_block_id $end +$var string 1 25 config $end +$upscope $end +$upscope $end +$scope module next_pc_2 $end +$scope struct cd $end +$var wire 1 # clk $end +$var wire 1 $ rst $end +$upscope $end +$scope struct to_fetch $end +$scope struct inner $end +$scope struct data $end +$var string 1 % \$tag $end +$scope struct HdlSome $end +$var wire 64 & next_fetch_pc $end +$var wire 8 ' fetch_block_id $end +$var wire 8 ( in_progress_fetches_to_cancel $end +$upscope $end +$upscope $end +$var wire 1 ) ready $end +$upscope $end +$var string 1 * config $end +$upscope $end +$scope struct from_decode $end +$scope struct inner $end +$scope struct data $end +$var string 1 + \$tag $end +$scope struct HdlSome $end +$var wire 8 , fetch_block_id $end +$scope struct insns $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 8 - fetch_block_id $end +$var wire 12 . id $end +$var wire 64 / pc $end +$var wire 4 0 size_in_bytes $end +$scope struct kind $end +$var string 1 1 \$tag $end +$var wire 64 2 Branch $end +$var wire 64 3 BranchCond $end +$var wire 64 4 Call $end +$var wire 64 5 CallCond $end +$var wire 64 6 Interrupt $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var wire 8 7 fetch_block_id $end +$var wire 12 8 id $end +$var wire 64 9 pc $end +$var wire 4 : size_in_bytes $end +$scope struct kind $end +$var string 1 ; \$tag $end +$var wire 64 < Branch $end +$var wire 64 = BranchCond $end +$var wire 64 > Call $end +$var wire 64 ? CallCond $end +$var wire 64 @ Interrupt $end +$upscope $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 2 A value $end +$var string 1 B range $end +$upscope $end +$upscope $end +$var string 1 C config $end +$upscope $end +$upscope $end +$var wire 1 D ready $end +$upscope $end +$upscope $end +$scope struct state_for_debug $end +$scope struct speculative_call_stack $end +$scope struct return_addresses $end +$var wire 64 E \[0] $end +$var wire 64 F \[1] $end +$var wire 64 G \[2] $end +$var wire 64 H \[3] $end +$var wire 64 I \[4] $end +$var wire 64 J \[5] $end +$var wire 64 K \[6] $end +$var wire 64 L \[7] $end +$var wire 64 M \[8] $end +$var wire 64 N \[9] $end +$var wire 64 O \[10] $end +$var wire 64 P \[11] $end +$var wire 64 Q \[12] $end +$var wire 64 R \[13] $end +$var wire 64 S \[14] $end +$var wire 64 T \[15] $end +$upscope $end +$scope struct len $end +$var wire 5 U value $end +$var string 1 V range $end +$upscope $end +$upscope $end +$scope struct non_speculative_call_stack $end +$scope struct return_addresses $end +$var wire 64 W \[0] $end +$var wire 64 X \[1] $end +$var wire 64 Y \[2] $end +$var wire 64 Z \[3] $end +$var wire 64 [ \[4] $end +$var wire 64 \ \[5] $end +$var wire 64 ] \[6] $end +$var wire 64 ^ \[7] $end +$var wire 64 _ \[8] $end +$var wire 64 ` \[9] $end +$var wire 64 a \[10] $end +$var wire 64 b \[11] $end +$var wire 64 c \[12] $end +$var wire 64 d \[13] $end +$var wire 64 e \[14] $end +$var wire 64 f \[15] $end +$upscope $end +$scope struct len $end +$var wire 5 g value $end +$var string 1 h range $end +$upscope $end +$upscope $end +$scope struct branch_target_buffer $end +$scope struct branch_pc_to_target_map $end +$scope struct \[0] $end +$var string 1 i \$tag $end +$scope struct HdlSome $end +$var wire 64 j start_pc $end +$var wire 64 k target_pc $end +$var wire 8 l fallthrough_offset $end +$var string 1 m insn_kind $end +$var string 1 n addr_kind $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var string 1 o \$tag $end +$scope struct HdlSome $end +$var wire 64 p start_pc $end +$var wire 64 q target_pc $end +$var wire 8 r fallthrough_offset $end +$var string 1 s insn_kind $end +$var string 1 t addr_kind $end +$upscope $end +$upscope $end +$scope struct \[2] $end +$var string 1 u \$tag $end +$scope struct HdlSome $end +$var wire 64 v start_pc $end +$var wire 64 w target_pc $end +$var wire 8 x fallthrough_offset $end +$var string 1 y insn_kind $end +$var string 1 z addr_kind $end +$upscope $end +$upscope $end +$scope struct \[3] $end +$var string 1 { \$tag $end +$scope struct HdlSome $end +$var wire 64 | start_pc $end +$var wire 64 } target_pc $end +$var wire 8 ~ fallthrough_offset $end +$var string 1 !" insn_kind $end +$var string 1 "" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[4] $end +$var string 1 #" \$tag $end +$scope struct HdlSome $end +$var wire 64 $" start_pc $end +$var wire 64 %" target_pc $end +$var wire 8 &" fallthrough_offset $end +$var string 1 '" insn_kind $end +$var string 1 (" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[5] $end +$var string 1 )" \$tag $end +$scope struct HdlSome $end +$var wire 64 *" start_pc $end +$var wire 64 +" target_pc $end +$var wire 8 ," fallthrough_offset $end +$var string 1 -" insn_kind $end +$var string 1 ." addr_kind $end +$upscope $end +$upscope $end +$scope struct \[6] $end +$var string 1 /" \$tag $end +$scope struct HdlSome $end +$var wire 64 0" start_pc $end +$var wire 64 1" target_pc $end +$var wire 8 2" fallthrough_offset $end +$var string 1 3" insn_kind $end +$var string 1 4" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[7] $end +$var string 1 5" \$tag $end +$scope struct HdlSome $end +$var wire 64 6" start_pc $end +$var wire 64 7" target_pc $end +$var wire 8 8" fallthrough_offset $end +$var string 1 9" insn_kind $end +$var string 1 :" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[8] $end +$var string 1 ;" \$tag $end +$scope struct HdlSome $end +$var wire 64 <" start_pc $end +$var wire 64 =" target_pc $end +$var wire 8 >" fallthrough_offset $end +$var string 1 ?" insn_kind $end +$var string 1 @" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[9] $end +$var string 1 A" \$tag $end +$scope struct HdlSome $end +$var wire 64 B" start_pc $end +$var wire 64 C" target_pc $end +$var wire 8 D" fallthrough_offset $end +$var string 1 E" insn_kind $end +$var string 1 F" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[10] $end +$var string 1 G" \$tag $end +$scope struct HdlSome $end +$var wire 64 H" start_pc $end +$var wire 64 I" target_pc $end +$var wire 8 J" fallthrough_offset $end +$var string 1 K" insn_kind $end +$var string 1 L" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[11] $end +$var string 1 M" \$tag $end +$scope struct HdlSome $end +$var wire 64 N" start_pc $end +$var wire 64 O" target_pc $end +$var wire 8 P" fallthrough_offset $end +$var string 1 Q" insn_kind $end +$var string 1 R" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[12] $end +$var string 1 S" \$tag $end +$scope struct HdlSome $end +$var wire 64 T" start_pc $end +$var wire 64 U" target_pc $end +$var wire 8 V" fallthrough_offset $end +$var string 1 W" insn_kind $end +$var string 1 X" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[13] $end +$var string 1 Y" \$tag $end +$scope struct HdlSome $end +$var wire 64 Z" start_pc $end +$var wire 64 [" target_pc $end +$var wire 8 \" fallthrough_offset $end +$var string 1 ]" insn_kind $end +$var string 1 ^" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[14] $end +$var string 1 _" \$tag $end +$scope struct HdlSome $end +$var wire 64 `" start_pc $end +$var wire 64 a" target_pc $end +$var wire 8 b" fallthrough_offset $end +$var string 1 c" insn_kind $end +$var string 1 d" addr_kind $end +$upscope $end +$upscope $end +$scope struct \[15] $end +$var string 1 e" \$tag $end +$scope struct HdlSome $end +$var wire 64 f" start_pc $end +$var wire 64 g" target_pc $end +$var wire 8 h" fallthrough_offset $end +$var string 1 i" insn_kind $end +$var string 1 j" addr_kind $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope struct branch_history $end +$scope struct history $end +$var wire 1 k" \[0] $end +$var wire 1 l" \[1] $end +$var wire 1 m" \[2] $end +$var wire 1 n" \[3] $end +$var wire 1 o" \[4] $end +$var wire 1 p" \[5] $end +$var wire 1 q" \[6] $end +$var wire 1 r" \[7] $end +$var wire 1 s" \[8] $end +$var wire 1 t" \[9] $end +$var wire 1 u" \[10] $end +$var wire 1 v" \[11] $end +$var wire 1 w" \[12] $end +$var wire 1 x" \[13] $end +$var wire 1 y" \[14] $end +$var wire 1 z" \[15] $end +$var wire 1 {" \[16] $end +$var wire 1 |" \[17] $end +$var wire 1 }" \[18] $end +$var wire 1 ~" \[19] $end +$var wire 1 !# \[20] $end +$var wire 1 "# \[21] $end +$var wire 1 ## \[22] $end +$var wire 1 $# \[23] $end +$var wire 1 %# \[24] $end +$var wire 1 &# \[25] $end +$var wire 1 '# \[26] $end +$var wire 1 (# \[27] $end +$var wire 1 )# \[28] $end +$var wire 1 *# \[29] $end +$var wire 1 +# \[30] $end +$var wire 1 ,# \[31] $end +$var wire 1 -# \[32] $end +$var wire 1 .# \[33] $end +$var wire 1 /# \[34] $end +$var wire 1 0# \[35] $end +$var wire 1 1# \[36] $end +$var wire 1 2# \[37] $end +$var wire 1 3# \[38] $end +$var wire 1 4# \[39] $end +$var wire 1 5# \[40] $end +$var wire 1 6# \[41] $end +$var wire 1 7# \[42] $end +$var wire 1 8# \[43] $end +$var wire 1 9# \[44] $end +$var wire 1 :# \[45] $end +$var wire 1 ;# \[46] $end +$var wire 1 <# \[47] $end +$var wire 1 =# \[48] $end +$var wire 1 ># \[49] $end +$var wire 1 ?# \[50] $end +$var wire 1 @# \[51] $end +$var wire 1 A# \[52] $end +$var wire 1 B# \[53] $end +$var wire 1 C# \[54] $end +$var wire 1 D# \[55] $end +$var wire 1 E# \[56] $end +$var wire 1 F# \[57] $end +$var wire 1 G# \[58] $end +$var wire 1 H# \[59] $end +$var wire 1 I# \[60] $end +$var wire 1 J# \[61] $end +$var wire 1 K# \[62] $end +$var wire 1 L# \[63] $end +$var wire 1 M# \[64] $end +$var wire 1 N# \[65] $end +$var wire 1 O# \[66] $end +$var wire 1 P# \[67] $end +$var wire 1 Q# \[68] $end +$var wire 1 R# \[69] $end +$var wire 1 S# \[70] $end +$var wire 1 T# \[71] $end +$var wire 1 U# \[72] $end +$var wire 1 V# \[73] $end +$var wire 1 W# \[74] $end +$var wire 1 X# \[75] $end +$var wire 1 Y# \[76] $end +$var wire 1 Z# \[77] $end +$var wire 1 [# \[78] $end +$var wire 1 \# \[79] $end +$var wire 1 ]# \[80] $end +$var wire 1 ^# \[81] $end +$var wire 1 _# \[82] $end +$var wire 1 `# \[83] $end +$var wire 1 a# \[84] $end +$var wire 1 b# \[85] $end +$var wire 1 c# \[86] $end +$var wire 1 d# \[87] $end +$var wire 1 e# \[88] $end +$var wire 1 f# \[89] $end +$var wire 1 g# \[90] $end +$var wire 1 h# \[91] $end +$var wire 1 i# \[92] $end +$var wire 1 j# \[93] $end +$var wire 1 k# \[94] $end +$var wire 1 l# \[95] $end +$var wire 1 m# \[96] $end +$var wire 1 n# \[97] $end +$var wire 1 o# \[98] $end +$var wire 1 p# \[99] $end +$var wire 1 q# \[100] $end +$var wire 1 r# \[101] $end +$var wire 1 s# \[102] $end +$var wire 1 t# \[103] $end +$var wire 1 u# \[104] $end +$var wire 1 v# \[105] $end +$var wire 1 w# \[106] $end +$var wire 1 x# \[107] $end +$var wire 1 y# \[108] $end +$var wire 1 z# \[109] $end +$var wire 1 {# \[110] $end +$var wire 1 |# \[111] $end +$var wire 1 }# \[112] $end +$var wire 1 ~# \[113] $end +$var wire 1 !$ \[114] $end +$var wire 1 "$ \[115] $end +$var wire 1 #$ \[116] $end +$var wire 1 $$ \[117] $end +$var wire 1 %$ \[118] $end +$var wire 1 &$ \[119] $end +$var wire 1 '$ \[120] $end +$var wire 1 ($ \[121] $end +$var wire 1 )$ \[122] $end +$var wire 1 *$ \[123] $end +$var wire 1 +$ \[124] $end +$var wire 1 ,$ \[125] $end +$var wire 1 -$ \[126] $end +$var wire 1 .$ \[127] $end +$var wire 1 /$ \[128] $end +$var wire 1 0$ \[129] $end +$var wire 1 1$ \[130] $end +$var wire 1 2$ \[131] $end +$var wire 1 3$ \[132] $end +$var wire 1 4$ \[133] $end +$var wire 1 5$ \[134] $end +$var wire 1 6$ \[135] $end +$var wire 1 7$ \[136] $end +$var wire 1 8$ \[137] $end +$var wire 1 9$ \[138] $end +$var wire 1 :$ \[139] $end +$var wire 1 ;$ \[140] $end +$var wire 1 <$ \[141] $end +$var wire 1 =$ \[142] $end +$var wire 1 >$ \[143] $end +$var wire 1 ?$ \[144] $end +$var wire 1 @$ \[145] $end +$var wire 1 A$ \[146] $end +$var wire 1 B$ \[147] $end +$var wire 1 C$ \[148] $end +$var wire 1 D$ \[149] $end +$var wire 1 E$ \[150] $end +$var wire 1 F$ \[151] $end +$var wire 1 G$ \[152] $end +$var wire 1 H$ \[153] $end +$var wire 1 I$ \[154] $end +$var wire 1 J$ \[155] $end +$var wire 1 K$ \[156] $end +$var wire 1 L$ \[157] $end +$var wire 1 M$ \[158] $end +$var wire 1 N$ \[159] $end +$var wire 1 O$ \[160] $end +$var wire 1 P$ \[161] $end +$var wire 1 Q$ \[162] $end +$var wire 1 R$ \[163] $end +$var wire 1 S$ \[164] $end +$var wire 1 T$ \[165] $end +$var wire 1 U$ \[166] $end +$var wire 1 V$ \[167] $end +$var wire 1 W$ \[168] $end +$var wire 1 X$ \[169] $end +$var wire 1 Y$ \[170] $end +$var wire 1 Z$ \[171] $end +$var wire 1 [$ \[172] $end +$var wire 1 \$ \[173] $end +$var wire 1 ]$ \[174] $end +$var wire 1 ^$ \[175] $end +$var wire 1 _$ \[176] $end +$var wire 1 `$ \[177] $end +$var wire 1 a$ \[178] $end +$var wire 1 b$ \[179] $end +$var wire 1 c$ \[180] $end +$var wire 1 d$ \[181] $end +$var wire 1 e$ \[182] $end +$var wire 1 f$ \[183] $end +$var wire 1 g$ \[184] $end +$var wire 1 h$ \[185] $end +$var wire 1 i$ \[186] $end +$var wire 1 j$ \[187] $end +$var wire 1 k$ \[188] $end +$var wire 1 l$ \[189] $end +$var wire 1 m$ \[190] $end +$var wire 1 n$ \[191] $end +$var wire 1 o$ \[192] $end +$var wire 1 p$ \[193] $end +$var wire 1 q$ \[194] $end +$var wire 1 r$ \[195] $end +$var wire 1 s$ \[196] $end +$var wire 1 t$ \[197] $end +$var wire 1 u$ \[198] $end +$var wire 1 v$ \[199] $end +$var wire 1 w$ \[200] $end +$var wire 1 x$ \[201] $end +$var wire 1 y$ \[202] $end +$var wire 1 z$ \[203] $end +$var wire 1 {$ \[204] $end +$var wire 1 |$ \[205] $end +$var wire 1 }$ \[206] $end +$var wire 1 ~$ \[207] $end +$var wire 1 !% \[208] $end +$var wire 1 "% \[209] $end +$var wire 1 #% \[210] $end +$var wire 1 $% \[211] $end +$var wire 1 %% \[212] $end +$var wire 1 &% \[213] $end +$var wire 1 '% \[214] $end +$var wire 1 (% \[215] $end +$var wire 1 )% \[216] $end +$var wire 1 *% \[217] $end +$var wire 1 +% \[218] $end +$var wire 1 ,% \[219] $end +$var wire 1 -% \[220] $end +$var wire 1 .% \[221] $end +$var wire 1 /% \[222] $end +$var wire 1 0% \[223] $end +$var wire 1 1% \[224] $end +$var wire 1 2% \[225] $end +$var wire 1 3% \[226] $end +$var wire 1 4% \[227] $end +$var wire 1 5% \[228] $end +$var wire 1 6% \[229] $end +$var wire 1 7% \[230] $end +$var wire 1 8% \[231] $end +$var wire 1 9% \[232] $end +$var wire 1 :% \[233] $end +$var wire 1 ;% \[234] $end +$var wire 1 <% \[235] $end +$var wire 1 =% \[236] $end +$var wire 1 >% \[237] $end +$var wire 1 ?% \[238] $end +$var wire 1 @% \[239] $end +$var wire 1 A% \[240] $end +$var wire 1 B% \[241] $end +$var wire 1 C% \[242] $end +$var wire 1 D% \[243] $end +$var wire 1 E% \[244] $end +$var wire 1 F% \[245] $end +$var wire 1 G% \[246] $end +$var wire 1 H% \[247] $end +$var wire 1 I% \[248] $end +$var wire 1 J% \[249] $end +$var wire 1 K% \[250] $end +$var wire 1 L% \[251] $end +$var wire 1 M% \[252] $end +$var wire 1 N% \[253] $end +$var wire 1 O% \[254] $end +$var wire 1 P% \[255] $end +$upscope $end +$scope struct tail $end +$var wire 8 Q% value $end +$var string 1 R% range $end +$upscope $end +$scope struct non_speculative_head $end +$var wire 8 S% value $end +$var string 1 T% range $end +$upscope $end +$scope struct speculative_head $end +$var wire 8 U% value $end +$var string 1 V% range $end +$upscope $end +$upscope $end +$scope struct branch_predictor $end +$var string 1 W% \[0] $end +$var string 1 X% \[1] $end +$var string 1 Y% \[2] $end +$var string 1 Z% \[3] $end +$var string 1 [% \[4] $end +$var string 1 \% \[5] $end +$var string 1 ]% \[6] $end +$var string 1 ^% \[7] $end +$var string 1 _% \[8] $end +$var string 1 `% \[9] $end +$var string 1 a% \[10] $end +$var string 1 b% \[11] $end +$var string 1 c% \[12] $end +$var string 1 d% \[13] $end +$var string 1 e% \[14] $end +$var string 1 f% \[15] $end +$var string 1 g% \[16] $end +$var string 1 h% \[17] $end +$var string 1 i% \[18] $end +$var string 1 j% \[19] $end +$var string 1 k% \[20] $end +$var string 1 l% \[21] $end +$var string 1 m% \[22] $end +$var string 1 n% \[23] $end +$var string 1 o% \[24] $end +$var string 1 p% \[25] $end +$var string 1 q% \[26] $end +$var string 1 r% \[27] $end +$var string 1 s% \[28] $end +$var string 1 t% \[29] $end +$var string 1 u% \[30] $end +$var string 1 v% \[31] $end +$var string 1 w% \[32] $end +$var string 1 x% \[33] $end +$var string 1 y% \[34] $end +$var string 1 z% \[35] $end +$var string 1 {% \[36] $end +$var string 1 |% \[37] $end +$var string 1 }% \[38] $end +$var string 1 ~% \[39] $end +$var string 1 !& \[40] $end +$var string 1 "& \[41] $end +$var string 1 #& \[42] $end +$var string 1 $& \[43] $end +$var string 1 %& \[44] $end +$var string 1 && \[45] $end +$var string 1 '& \[46] $end +$var string 1 (& \[47] $end +$var string 1 )& \[48] $end +$var string 1 *& \[49] $end +$var string 1 +& \[50] $end +$var string 1 ,& \[51] $end +$var string 1 -& \[52] $end +$var string 1 .& \[53] $end +$var string 1 /& \[54] $end +$var string 1 0& \[55] $end +$var string 1 1& \[56] $end +$var string 1 2& \[57] $end +$var string 1 3& \[58] $end +$var string 1 4& \[59] $end +$var string 1 5& \[60] $end +$var string 1 6& \[61] $end +$var string 1 7& \[62] $end +$var string 1 8& \[63] $end +$var string 1 9& \[64] $end +$var string 1 :& \[65] $end +$var string 1 ;& \[66] $end +$var string 1 <& \[67] $end +$var string 1 =& \[68] $end +$var string 1 >& \[69] $end +$var string 1 ?& \[70] $end +$var string 1 @& \[71] $end +$var string 1 A& \[72] $end +$var string 1 B& \[73] $end +$var string 1 C& \[74] $end +$var string 1 D& \[75] $end +$var string 1 E& \[76] $end +$var string 1 F& \[77] $end +$var string 1 G& \[78] $end +$var string 1 H& \[79] $end +$var string 1 I& \[80] $end +$var string 1 J& \[81] $end +$var string 1 K& \[82] $end +$var string 1 L& \[83] $end +$var string 1 M& \[84] $end +$var string 1 N& \[85] $end +$var string 1 O& \[86] $end +$var string 1 P& \[87] $end +$var string 1 Q& \[88] $end +$var string 1 R& \[89] $end +$var string 1 S& \[90] $end +$var string 1 T& \[91] $end +$var string 1 U& \[92] $end +$var string 1 V& \[93] $end +$var string 1 W& \[94] $end +$var string 1 X& \[95] $end +$var string 1 Y& \[96] $end +$var string 1 Z& \[97] $end +$var string 1 [& \[98] $end +$var string 1 \& \[99] $end +$var string 1 ]& \[100] $end +$var string 1 ^& \[101] $end +$var string 1 _& \[102] $end +$var string 1 `& \[103] $end +$var string 1 a& \[104] $end +$var string 1 b& \[105] $end +$var string 1 c& \[106] $end +$var string 1 d& \[107] $end +$var string 1 e& \[108] $end +$var string 1 f& \[109] $end +$var string 1 g& \[110] $end +$var string 1 h& \[111] $end +$var string 1 i& \[112] $end +$var string 1 j& \[113] $end +$var string 1 k& \[114] $end +$var string 1 l& \[115] $end +$var string 1 m& \[116] $end +$var string 1 n& \[117] $end +$var string 1 o& \[118] $end +$var string 1 p& \[119] $end +$var string 1 q& \[120] $end +$var string 1 r& \[121] $end +$var string 1 s& \[122] $end +$var string 1 t& \[123] $end +$var string 1 u& \[124] $end +$var string 1 v& \[125] $end +$var string 1 w& \[126] $end +$var string 1 x& \[127] $end +$var string 1 y& \[128] $end +$var string 1 z& \[129] $end +$var string 1 {& \[130] $end +$var string 1 |& \[131] $end +$var string 1 }& \[132] $end +$var string 1 ~& \[133] $end +$var string 1 !' \[134] $end +$var string 1 "' \[135] $end +$var string 1 #' \[136] $end +$var string 1 $' \[137] $end +$var string 1 %' \[138] $end +$var string 1 &' \[139] $end +$var string 1 '' \[140] $end +$var string 1 (' \[141] $end +$var string 1 )' \[142] $end +$var string 1 *' \[143] $end +$var string 1 +' \[144] $end +$var string 1 ,' \[145] $end +$var string 1 -' \[146] $end +$var string 1 .' \[147] $end +$var string 1 /' \[148] $end +$var string 1 0' \[149] $end +$var string 1 1' \[150] $end +$var string 1 2' \[151] $end +$var string 1 3' \[152] $end +$var string 1 4' \[153] $end +$var string 1 5' \[154] $end +$var string 1 6' \[155] $end +$var string 1 7' \[156] $end +$var string 1 8' \[157] $end +$var string 1 9' \[158] $end +$var string 1 :' \[159] $end +$var string 1 ;' \[160] $end +$var string 1 <' \[161] $end +$var string 1 =' \[162] $end +$var string 1 >' \[163] $end +$var string 1 ?' \[164] $end +$var string 1 @' \[165] $end +$var string 1 A' \[166] $end +$var string 1 B' \[167] $end +$var string 1 C' \[168] $end +$var string 1 D' \[169] $end +$var string 1 E' \[170] $end +$var string 1 F' \[171] $end +$var string 1 G' \[172] $end +$var string 1 H' \[173] $end +$var string 1 I' \[174] $end +$var string 1 J' \[175] $end +$var string 1 K' \[176] $end +$var string 1 L' \[177] $end +$var string 1 M' \[178] $end +$var string 1 N' \[179] $end +$var string 1 O' \[180] $end +$var string 1 P' \[181] $end +$var string 1 Q' \[182] $end +$var string 1 R' \[183] $end +$var string 1 S' \[184] $end +$var string 1 T' \[185] $end +$var string 1 U' \[186] $end +$var string 1 V' \[187] $end +$var string 1 W' \[188] $end +$var string 1 X' \[189] $end +$var string 1 Y' \[190] $end +$var string 1 Z' \[191] $end +$var string 1 [' \[192] $end +$var string 1 \' \[193] $end +$var string 1 ]' \[194] $end +$var string 1 ^' \[195] $end +$var string 1 _' \[196] $end +$var string 1 `' \[197] $end +$var string 1 a' \[198] $end +$var string 1 b' \[199] $end +$var string 1 c' \[200] $end +$var string 1 d' \[201] $end +$var string 1 e' \[202] $end +$var string 1 f' \[203] $end +$var string 1 g' \[204] $end +$var string 1 h' \[205] $end +$var string 1 i' \[206] $end +$var string 1 j' \[207] $end +$var string 1 k' \[208] $end +$var string 1 l' \[209] $end +$var string 1 m' \[210] $end +$var string 1 n' \[211] $end +$var string 1 o' \[212] $end +$var string 1 p' \[213] $end +$var string 1 q' \[214] $end +$var string 1 r' \[215] $end +$var string 1 s' \[216] $end +$var string 1 t' \[217] $end +$var string 1 u' \[218] $end +$var string 1 v' \[219] $end +$var string 1 w' \[220] $end +$var string 1 x' \[221] $end +$var string 1 y' \[222] $end +$var string 1 z' \[223] $end +$var string 1 {' \[224] $end +$var string 1 |' \[225] $end +$var string 1 }' \[226] $end +$var string 1 ~' \[227] $end +$var string 1 !( \[228] $end +$var string 1 "( \[229] $end +$var string 1 #( \[230] $end +$var string 1 $( \[231] $end +$var string 1 %( \[232] $end +$var string 1 &( \[233] $end +$var string 1 '( \[234] $end +$var string 1 (( \[235] $end +$var string 1 )( \[236] $end +$var string 1 *( \[237] $end +$var string 1 +( \[238] $end +$var string 1 ,( \[239] $end +$var string 1 -( \[240] $end +$var string 1 .( \[241] $end +$var string 1 /( \[242] $end +$var string 1 0( \[243] $end +$var string 1 1( \[244] $end +$var string 1 2( \[245] $end +$var string 1 3( \[246] $end +$var string 1 4( \[247] $end +$var string 1 5( \[248] $end +$var string 1 6( \[249] $end +$var string 1 7( \[250] $end +$var string 1 8( \[251] $end +$var string 1 9( \[252] $end +$var string 1 :( \[253] $end +$var string 1 ;( \[254] $end +$var string 1 <( \[255] $end +$upscope $end +$scope struct fetching_queue $end +$scope struct data $end +$scope struct \[0] $end +$var wire 8 =( fetch_block_id $end +$upscope $end +$scope struct \[1] $end +$var wire 8 >( fetch_block_id $end +$upscope $end +$scope struct \[2] $end +$var wire 8 ?( fetch_block_id $end +$upscope $end +$scope struct \[3] $end +$var wire 8 @( fetch_block_id $end +$upscope $end +$scope struct \[4] $end +$var wire 8 A( fetch_block_id $end +$upscope $end +$scope struct \[5] $end +$var wire 8 B( fetch_block_id $end +$upscope $end +$scope struct \[6] $end +$var wire 8 C( fetch_block_id $end +$upscope $end +$scope struct \[7] $end +$var wire 8 D( fetch_block_id $end +$upscope $end +$scope struct \[8] $end +$var wire 8 E( fetch_block_id $end +$upscope $end +$scope struct \[9] $end +$var wire 8 F( fetch_block_id $end +$upscope $end +$scope struct \[10] $end +$var wire 8 G( fetch_block_id $end +$upscope $end +$scope struct \[11] $end +$var wire 8 H( fetch_block_id $end +$upscope $end +$scope struct \[12] $end +$var wire 8 I( fetch_block_id $end +$upscope $end +$scope struct \[13] $end +$var wire 8 J( fetch_block_id $end +$upscope $end +$scope struct \[14] $end +$var wire 8 K( fetch_block_id $end +$upscope $end +$scope struct \[15] $end +$var wire 8 L( fetch_block_id $end +$upscope $end +$scope struct \[16] $end +$var wire 8 M( fetch_block_id $end +$upscope $end +$scope struct \[17] $end +$var wire 8 N( fetch_block_id $end +$upscope $end +$scope struct \[18] $end +$var wire 8 O( fetch_block_id $end +$upscope $end +$scope struct \[19] $end +$var wire 8 P( fetch_block_id $end +$upscope $end +$scope struct \[20] $end +$var wire 8 Q( fetch_block_id $end +$upscope $end +$scope struct \[21] $end +$var wire 8 R( fetch_block_id $end +$upscope $end +$scope struct \[22] $end +$var wire 8 S( fetch_block_id $end +$upscope $end +$scope struct \[23] $end +$var wire 8 T( fetch_block_id $end +$upscope $end +$scope struct \[24] $end +$var wire 8 U( fetch_block_id $end +$upscope $end +$scope struct \[25] $end +$var wire 8 V( fetch_block_id $end +$upscope $end +$scope struct \[26] $end +$var wire 8 W( fetch_block_id $end +$upscope $end +$scope struct \[27] $end +$var wire 8 X( fetch_block_id $end +$upscope $end +$scope struct \[28] $end +$var wire 8 Y( fetch_block_id $end +$upscope $end +$scope struct \[29] $end +$var wire 8 Z( fetch_block_id $end +$upscope $end +$scope struct \[30] $end +$var wire 8 [( fetch_block_id $end +$upscope $end +$scope struct \[31] $end +$var wire 8 \( fetch_block_id $end +$upscope $end +$scope struct \[32] $end +$var wire 8 ]( fetch_block_id $end +$upscope $end +$scope struct \[33] $end +$var wire 8 ^( fetch_block_id $end +$upscope $end +$scope struct \[34] $end +$var wire 8 _( fetch_block_id $end +$upscope $end +$scope struct \[35] $end +$var wire 8 `( fetch_block_id $end +$upscope $end +$scope struct \[36] $end +$var wire 8 a( fetch_block_id $end +$upscope $end +$scope struct \[37] $end +$var wire 8 b( fetch_block_id $end +$upscope $end +$scope struct \[38] $end +$var wire 8 c( fetch_block_id $end +$upscope $end +$scope struct \[39] $end +$var wire 8 d( fetch_block_id $end +$upscope $end +$scope struct \[40] $end +$var wire 8 e( fetch_block_id $end +$upscope $end +$scope struct \[41] $end +$var wire 8 f( fetch_block_id $end +$upscope $end +$scope struct \[42] $end +$var wire 8 g( fetch_block_id $end +$upscope $end +$scope struct \[43] $end +$var wire 8 h( fetch_block_id $end +$upscope $end +$scope struct \[44] $end +$var wire 8 i( fetch_block_id $end +$upscope $end +$scope struct \[45] $end +$var wire 8 j( fetch_block_id $end +$upscope $end +$scope struct \[46] $end +$var wire 8 k( fetch_block_id $end +$upscope $end +$scope struct \[47] $end +$var wire 8 l( fetch_block_id $end +$upscope $end +$scope struct \[48] $end +$var wire 8 m( fetch_block_id $end +$upscope $end +$scope struct \[49] $end +$var wire 8 n( fetch_block_id $end +$upscope $end +$scope struct \[50] $end +$var wire 8 o( fetch_block_id $end +$upscope $end +$scope struct \[51] $end +$var wire 8 p( fetch_block_id $end +$upscope $end +$scope struct \[52] $end +$var wire 8 q( fetch_block_id $end +$upscope $end +$scope struct \[53] $end +$var wire 8 r( fetch_block_id $end +$upscope $end +$scope struct \[54] $end +$var wire 8 s( fetch_block_id $end +$upscope $end +$scope struct \[55] $end +$var wire 8 t( fetch_block_id $end +$upscope $end +$scope struct \[56] $end +$var wire 8 u( fetch_block_id $end +$upscope $end +$scope struct \[57] $end +$var wire 8 v( fetch_block_id $end +$upscope $end +$scope struct \[58] $end +$var wire 8 w( fetch_block_id $end +$upscope $end +$scope struct \[59] $end +$var wire 8 x( fetch_block_id $end +$upscope $end +$scope struct \[60] $end +$var wire 8 y( fetch_block_id $end +$upscope $end +$scope struct \[61] $end +$var wire 8 z( fetch_block_id $end +$upscope $end +$scope struct \[62] $end +$var wire 8 {( fetch_block_id $end +$upscope $end +$scope struct \[63] $end +$var wire 8 |( fetch_block_id $end +$upscope $end +$scope struct \[64] $end +$var wire 8 }( fetch_block_id $end +$upscope $end +$scope struct \[65] $end +$var wire 8 ~( fetch_block_id $end +$upscope $end +$scope struct \[66] $end +$var wire 8 !) fetch_block_id $end +$upscope $end +$scope struct \[67] $end +$var wire 8 ") fetch_block_id $end +$upscope $end +$scope struct \[68] $end +$var wire 8 #) fetch_block_id $end +$upscope $end +$scope struct \[69] $end +$var wire 8 $) fetch_block_id $end +$upscope $end +$scope struct \[70] $end +$var wire 8 %) fetch_block_id $end +$upscope $end +$scope struct \[71] $end +$var wire 8 &) fetch_block_id $end +$upscope $end +$scope struct \[72] $end +$var wire 8 ') fetch_block_id $end +$upscope $end +$scope struct \[73] $end +$var wire 8 () fetch_block_id $end +$upscope $end +$scope struct \[74] $end +$var wire 8 )) fetch_block_id $end +$upscope $end +$scope struct \[75] $end +$var wire 8 *) fetch_block_id $end +$upscope $end +$scope struct \[76] $end +$var wire 8 +) fetch_block_id $end +$upscope $end +$scope struct \[77] $end +$var wire 8 ,) fetch_block_id $end +$upscope $end +$scope struct \[78] $end +$var wire 8 -) fetch_block_id $end +$upscope $end +$scope struct \[79] $end +$var wire 8 .) fetch_block_id $end +$upscope $end +$scope struct \[80] $end +$var wire 8 /) fetch_block_id $end +$upscope $end +$scope struct \[81] $end +$var wire 8 0) fetch_block_id $end +$upscope $end +$scope struct \[82] $end +$var wire 8 1) fetch_block_id $end +$upscope $end +$scope struct \[83] $end +$var wire 8 2) fetch_block_id $end +$upscope $end +$scope struct \[84] $end +$var wire 8 3) fetch_block_id $end +$upscope $end +$scope struct \[85] $end +$var wire 8 4) fetch_block_id $end +$upscope $end +$scope struct \[86] $end +$var wire 8 5) fetch_block_id $end +$upscope $end +$scope struct \[87] $end +$var wire 8 6) fetch_block_id $end +$upscope $end +$scope struct \[88] $end +$var wire 8 7) fetch_block_id $end +$upscope $end +$scope struct \[89] $end +$var wire 8 8) fetch_block_id $end +$upscope $end +$scope struct \[90] $end +$var wire 8 9) fetch_block_id $end +$upscope $end +$scope struct \[91] $end +$var wire 8 :) fetch_block_id $end +$upscope $end +$scope struct \[92] $end +$var wire 8 ;) fetch_block_id $end +$upscope $end +$scope struct \[93] $end +$var wire 8 <) fetch_block_id $end +$upscope $end +$scope struct \[94] $end +$var wire 8 =) fetch_block_id $end +$upscope $end +$scope struct \[95] $end +$var wire 8 >) fetch_block_id $end +$upscope $end +$scope struct \[96] $end +$var wire 8 ?) fetch_block_id $end +$upscope $end +$scope struct \[97] $end +$var wire 8 @) fetch_block_id $end +$upscope $end +$scope struct \[98] $end +$var wire 8 A) fetch_block_id $end +$upscope $end +$scope struct \[99] $end +$var wire 8 B) fetch_block_id $end +$upscope $end +$scope struct \[100] $end +$var wire 8 C) fetch_block_id $end +$upscope $end +$scope struct \[101] $end +$var wire 8 D) fetch_block_id $end +$upscope $end +$scope struct \[102] $end +$var wire 8 E) fetch_block_id $end +$upscope $end +$scope struct \[103] $end +$var wire 8 F) fetch_block_id $end +$upscope $end +$scope struct \[104] $end +$var wire 8 G) fetch_block_id $end +$upscope $end +$scope struct \[105] $end +$var wire 8 H) fetch_block_id $end +$upscope $end +$scope struct \[106] $end +$var wire 8 I) fetch_block_id $end +$upscope $end +$scope struct \[107] $end +$var wire 8 J) fetch_block_id $end +$upscope $end +$scope struct \[108] $end +$var wire 8 K) fetch_block_id $end +$upscope $end +$scope struct \[109] $end +$var wire 8 L) fetch_block_id $end +$upscope $end +$scope struct \[110] $end +$var wire 8 M) fetch_block_id $end +$upscope $end +$scope struct \[111] $end +$var wire 8 N) fetch_block_id $end +$upscope $end +$scope struct \[112] $end +$var wire 8 O) fetch_block_id $end +$upscope $end +$scope struct \[113] $end +$var wire 8 P) fetch_block_id $end +$upscope $end +$scope struct \[114] $end +$var wire 8 Q) fetch_block_id $end +$upscope $end +$scope struct \[115] $end +$var wire 8 R) fetch_block_id $end +$upscope $end +$scope struct \[116] $end +$var wire 8 S) fetch_block_id $end +$upscope $end +$scope struct \[117] $end +$var wire 8 T) fetch_block_id $end +$upscope $end +$scope struct \[118] $end +$var wire 8 U) fetch_block_id $end +$upscope $end +$scope struct \[119] $end +$var wire 8 V) fetch_block_id $end +$upscope $end +$scope struct \[120] $end +$var wire 8 W) fetch_block_id $end +$upscope $end +$scope struct \[121] $end +$var wire 8 X) fetch_block_id $end +$upscope $end +$scope struct \[122] $end +$var wire 8 Y) fetch_block_id $end +$upscope $end +$scope struct \[123] $end +$var wire 8 Z) fetch_block_id $end +$upscope $end +$scope struct \[124] $end +$var wire 8 [) fetch_block_id $end +$upscope $end +$scope struct \[125] $end +$var wire 8 \) fetch_block_id $end +$upscope $end +$scope struct \[126] $end +$var wire 8 ]) fetch_block_id $end +$upscope $end +$scope struct \[127] $end +$var wire 8 ^) fetch_block_id $end +$upscope $end +$scope struct \[128] $end +$var wire 8 _) fetch_block_id $end +$upscope $end +$scope struct \[129] $end +$var wire 8 `) fetch_block_id $end +$upscope $end +$scope struct \[130] $end +$var wire 8 a) fetch_block_id $end +$upscope $end +$scope struct \[131] $end +$var wire 8 b) fetch_block_id $end +$upscope $end +$scope struct \[132] $end +$var wire 8 c) fetch_block_id $end +$upscope $end +$scope struct \[133] $end +$var wire 8 d) fetch_block_id $end +$upscope $end +$scope struct \[134] $end +$var wire 8 e) fetch_block_id $end +$upscope $end +$scope struct \[135] $end +$var wire 8 f) fetch_block_id $end +$upscope $end +$scope struct \[136] $end +$var wire 8 g) fetch_block_id $end +$upscope $end +$scope struct \[137] $end +$var wire 8 h) fetch_block_id $end +$upscope $end +$scope struct \[138] $end +$var wire 8 i) fetch_block_id $end +$upscope $end +$scope struct \[139] $end +$var wire 8 j) fetch_block_id $end +$upscope $end +$scope struct \[140] $end +$var wire 8 k) fetch_block_id $end +$upscope $end +$scope struct \[141] $end +$var wire 8 l) fetch_block_id $end +$upscope $end +$scope struct \[142] $end +$var wire 8 m) fetch_block_id $end +$upscope $end +$scope struct \[143] $end +$var wire 8 n) fetch_block_id $end +$upscope $end +$scope struct \[144] $end +$var wire 8 o) fetch_block_id $end +$upscope $end +$scope struct \[145] $end +$var wire 8 p) fetch_block_id $end +$upscope $end +$scope struct \[146] $end +$var wire 8 q) fetch_block_id $end +$upscope $end +$scope struct \[147] $end +$var wire 8 r) fetch_block_id $end +$upscope $end +$scope struct \[148] $end +$var wire 8 s) fetch_block_id $end +$upscope $end +$scope struct \[149] $end +$var wire 8 t) fetch_block_id $end +$upscope $end +$scope struct \[150] $end +$var wire 8 u) fetch_block_id $end +$upscope $end +$scope struct \[151] $end +$var wire 8 v) fetch_block_id $end +$upscope $end +$scope struct \[152] $end +$var wire 8 w) fetch_block_id $end +$upscope $end +$scope struct \[153] $end +$var wire 8 x) fetch_block_id $end +$upscope $end +$scope struct \[154] $end +$var wire 8 y) fetch_block_id $end +$upscope $end +$scope struct \[155] $end +$var wire 8 z) fetch_block_id $end +$upscope $end +$scope struct \[156] $end +$var wire 8 {) fetch_block_id $end +$upscope $end +$scope struct \[157] $end +$var wire 8 |) fetch_block_id $end +$upscope $end +$scope struct \[158] $end +$var wire 8 }) fetch_block_id $end +$upscope $end +$scope struct \[159] $end +$var wire 8 ~) fetch_block_id $end +$upscope $end +$scope struct \[160] $end +$var wire 8 !* fetch_block_id $end +$upscope $end +$scope struct \[161] $end +$var wire 8 "* fetch_block_id $end +$upscope $end +$scope struct \[162] $end +$var wire 8 #* fetch_block_id $end +$upscope $end +$scope struct \[163] $end +$var wire 8 $* fetch_block_id $end +$upscope $end +$scope struct \[164] $end +$var wire 8 %* fetch_block_id $end +$upscope $end +$scope struct \[165] $end +$var wire 8 &* fetch_block_id $end +$upscope $end +$scope struct \[166] $end +$var wire 8 '* fetch_block_id $end +$upscope $end +$scope struct \[167] $end +$var wire 8 (* fetch_block_id $end +$upscope $end +$scope struct \[168] $end +$var wire 8 )* fetch_block_id $end +$upscope $end +$scope struct \[169] $end +$var wire 8 ** fetch_block_id $end +$upscope $end +$scope struct \[170] $end +$var wire 8 +* fetch_block_id $end +$upscope $end +$scope struct \[171] $end +$var wire 8 ,* fetch_block_id $end +$upscope $end +$scope struct \[172] $end +$var wire 8 -* fetch_block_id $end +$upscope $end +$scope struct \[173] $end +$var wire 8 .* fetch_block_id $end +$upscope $end +$scope struct \[174] $end +$var wire 8 /* fetch_block_id $end +$upscope $end +$scope struct \[175] $end +$var wire 8 0* fetch_block_id $end +$upscope $end +$scope struct \[176] $end +$var wire 8 1* fetch_block_id $end +$upscope $end +$scope struct \[177] $end +$var wire 8 2* fetch_block_id $end +$upscope $end +$scope struct \[178] $end +$var wire 8 3* fetch_block_id $end +$upscope $end +$scope struct \[179] $end +$var wire 8 4* fetch_block_id $end +$upscope $end +$scope struct \[180] $end +$var wire 8 5* fetch_block_id $end +$upscope $end +$scope struct \[181] $end +$var wire 8 6* fetch_block_id $end +$upscope $end +$scope struct \[182] $end +$var wire 8 7* fetch_block_id $end +$upscope $end +$scope struct \[183] $end +$var wire 8 8* fetch_block_id $end +$upscope $end +$scope struct \[184] $end +$var wire 8 9* fetch_block_id $end +$upscope $end +$scope struct \[185] $end +$var wire 8 :* fetch_block_id $end +$upscope $end +$scope struct \[186] $end +$var wire 8 ;* fetch_block_id $end +$upscope $end +$scope struct \[187] $end +$var wire 8 <* fetch_block_id $end +$upscope $end +$scope struct \[188] $end +$var wire 8 =* fetch_block_id $end +$upscope $end +$scope struct \[189] $end +$var wire 8 >* fetch_block_id $end +$upscope $end +$scope struct \[190] $end +$var wire 8 ?* fetch_block_id $end +$upscope $end +$scope struct \[191] $end +$var wire 8 @* fetch_block_id $end +$upscope $end +$scope struct \[192] $end +$var wire 8 A* fetch_block_id $end +$upscope $end +$scope struct \[193] $end +$var wire 8 B* fetch_block_id $end +$upscope $end +$scope struct \[194] $end +$var wire 8 C* fetch_block_id $end +$upscope $end +$scope struct \[195] $end +$var wire 8 D* fetch_block_id $end +$upscope $end +$scope struct \[196] $end +$var wire 8 E* fetch_block_id $end +$upscope $end +$scope struct \[197] $end +$var wire 8 F* fetch_block_id $end +$upscope $end +$scope struct \[198] $end +$var wire 8 G* fetch_block_id $end +$upscope $end +$scope struct \[199] $end +$var wire 8 H* fetch_block_id $end +$upscope $end +$scope struct \[200] $end +$var wire 8 I* fetch_block_id $end +$upscope $end +$scope struct \[201] $end +$var wire 8 J* fetch_block_id $end +$upscope $end +$scope struct \[202] $end +$var wire 8 K* fetch_block_id $end +$upscope $end +$scope struct \[203] $end +$var wire 8 L* fetch_block_id $end +$upscope $end +$scope struct \[204] $end +$var wire 8 M* fetch_block_id $end +$upscope $end +$scope struct \[205] $end +$var wire 8 N* fetch_block_id $end +$upscope $end +$scope struct \[206] $end +$var wire 8 O* fetch_block_id $end +$upscope $end +$scope struct \[207] $end +$var wire 8 P* fetch_block_id $end +$upscope $end +$scope struct \[208] $end +$var wire 8 Q* fetch_block_id $end +$upscope $end +$scope struct \[209] $end +$var wire 8 R* fetch_block_id $end +$upscope $end +$scope struct \[210] $end +$var wire 8 S* fetch_block_id $end +$upscope $end +$scope struct \[211] $end +$var wire 8 T* fetch_block_id $end +$upscope $end +$scope struct \[212] $end +$var wire 8 U* fetch_block_id $end +$upscope $end +$scope struct \[213] $end +$var wire 8 V* fetch_block_id $end +$upscope $end +$scope struct \[214] $end +$var wire 8 W* fetch_block_id $end +$upscope $end +$scope struct \[215] $end +$var wire 8 X* fetch_block_id $end +$upscope $end +$scope struct \[216] $end +$var wire 8 Y* fetch_block_id $end +$upscope $end +$scope struct \[217] $end +$var wire 8 Z* fetch_block_id $end +$upscope $end +$scope struct \[218] $end +$var wire 8 [* fetch_block_id $end +$upscope $end +$scope struct \[219] $end +$var wire 8 \* fetch_block_id $end +$upscope $end +$scope struct \[220] $end +$var wire 8 ]* fetch_block_id $end +$upscope $end +$scope struct \[221] $end +$var wire 8 ^* fetch_block_id $end +$upscope $end +$scope struct \[222] $end +$var wire 8 _* fetch_block_id $end +$upscope $end +$scope struct \[223] $end +$var wire 8 `* fetch_block_id $end +$upscope $end +$scope struct \[224] $end +$var wire 8 a* fetch_block_id $end +$upscope $end +$scope struct \[225] $end +$var wire 8 b* fetch_block_id $end +$upscope $end +$scope struct \[226] $end +$var wire 8 c* fetch_block_id $end +$upscope $end +$scope struct \[227] $end +$var wire 8 d* fetch_block_id $end +$upscope $end +$scope struct \[228] $end +$var wire 8 e* fetch_block_id $end +$upscope $end +$scope struct \[229] $end +$var wire 8 f* fetch_block_id $end +$upscope $end +$scope struct \[230] $end +$var wire 8 g* fetch_block_id $end +$upscope $end +$scope struct \[231] $end +$var wire 8 h* fetch_block_id $end +$upscope $end +$scope struct \[232] $end +$var wire 8 i* fetch_block_id $end +$upscope $end +$scope struct \[233] $end +$var wire 8 j* fetch_block_id $end +$upscope $end +$scope struct \[234] $end +$var wire 8 k* fetch_block_id $end +$upscope $end +$scope struct \[235] $end +$var wire 8 l* fetch_block_id $end +$upscope $end +$scope struct \[236] $end +$var wire 8 m* fetch_block_id $end +$upscope $end +$scope struct \[237] $end +$var wire 8 n* fetch_block_id $end +$upscope $end +$scope struct \[238] $end +$var wire 8 o* fetch_block_id $end +$upscope $end +$scope struct \[239] $end +$var wire 8 p* fetch_block_id $end +$upscope $end +$scope struct \[240] $end +$var wire 8 q* fetch_block_id $end +$upscope $end +$scope struct \[241] $end +$var wire 8 r* fetch_block_id $end +$upscope $end +$scope struct \[242] $end +$var wire 8 s* fetch_block_id $end +$upscope $end +$scope struct \[243] $end +$var wire 8 t* fetch_block_id $end +$upscope $end +$scope struct \[244] $end +$var wire 8 u* fetch_block_id $end +$upscope $end +$scope struct \[245] $end +$var wire 8 v* fetch_block_id $end +$upscope $end +$scope struct \[246] $end +$var wire 8 w* fetch_block_id $end +$upscope $end +$scope struct \[247] $end +$var wire 8 x* fetch_block_id $end +$upscope $end +$scope struct \[248] $end +$var wire 8 y* fetch_block_id $end +$upscope $end +$scope struct \[249] $end +$var wire 8 z* fetch_block_id $end +$upscope $end +$scope struct \[250] $end +$var wire 8 {* fetch_block_id $end +$upscope $end +$scope struct \[251] $end +$var wire 8 |* fetch_block_id $end +$upscope $end +$scope struct \[252] $end +$var wire 8 }* fetch_block_id $end +$upscope $end +$scope struct \[253] $end +$var wire 8 ~* fetch_block_id $end +$upscope $end +$scope struct \[254] $end +$var wire 8 !+ fetch_block_id $end +$upscope $end +$scope struct \[255] $end +$var wire 8 "+ fetch_block_id $end +$upscope $end +$upscope $end +$scope struct head $end +$var wire 8 #+ value $end +$var string 1 $+ range $end +$upscope $end +$scope struct tail $end +$var wire 8 %+ value $end +$var string 1 &+ range $end +$upscope $end +$upscope $end +$var wire 1 '+ cancel_in_progress_fetches $end +$var wire 64 (+ pc $end +$var wire 8 )+ fetch_block_id $end +$var string 1 *+ config $end +$upscope $end +$upscope $end +$scope struct mock_fetch_pipe $end +$scope struct cd $end +$var wire 1 f5 clk $end +$var wire 1 g5 rst $end +$upscope $end +$scope struct from_fetch $end +$scope struct inner $end +$scope struct data $end +$var string 1 h5 \$tag $end +$scope struct HdlSome $end +$var wire 64 i5 next_fetch_pc $end +$var wire 8 j5 fetch_block_id $end +$var wire 8 k5 in_progress_fetches_to_cancel $end +$upscope $end +$upscope $end +$var wire 1 l5 ready $end +$upscope $end +$var string 1 m5 config $end +$upscope $end +$scope struct to_post_decode $end +$scope struct inner $end +$scope struct data $end +$var string 1 n5 \$tag $end +$scope struct HdlSome $end +$var wire 8 o5 fetch_block_id $end +$scope struct insns $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 8 p5 fetch_block_id $end +$var wire 12 q5 id $end +$var wire 64 r5 pc $end +$var wire 4 s5 size_in_bytes $end +$scope struct kind $end +$var string 1 t5 \$tag $end +$var wire 64 u5 Branch $end +$var wire 64 v5 BranchCond $end +$var wire 64 w5 Call $end +$var wire 64 x5 CallCond $end +$var wire 64 y5 Interrupt $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var wire 8 z5 fetch_block_id $end +$var wire 12 {5 id $end +$var wire 64 |5 pc $end +$var wire 4 }5 size_in_bytes $end +$scope struct kind $end +$var string 1 ~5 \$tag $end +$var wire 64 !6 Branch $end +$var wire 64 "6 BranchCond $end +$var wire 64 #6 Call $end +$var wire 64 $6 CallCond $end +$var wire 64 %6 Interrupt $end +$upscope $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 2 &6 value $end +$var string 1 '6 range $end +$upscope $end +$upscope $end +$var string 1 (6 config $end +$upscope $end +$upscope $end +$var wire 1 )6 ready $end +$upscope $end +$upscope $end +$scope struct queue_debug $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 64 *6 fetch_pc $end +$var wire 8 +6 cycles_left $end +$var wire 8 ,6 fetch_block_id $end +$upscope $end +$scope struct \[1] $end +$var wire 64 -6 fetch_pc $end +$var wire 8 .6 cycles_left $end +$var wire 8 /6 fetch_block_id $end +$upscope $end +$scope struct \[2] $end +$var wire 64 06 fetch_pc $end +$var wire 8 16 cycles_left $end +$var wire 8 26 fetch_block_id $end +$upscope $end +$scope struct \[3] $end +$var wire 64 36 fetch_pc $end +$var wire 8 46 cycles_left $end +$var wire 8 56 fetch_block_id $end +$upscope $end +$scope struct \[4] $end +$var wire 64 66 fetch_pc $end +$var wire 8 76 cycles_left $end +$var wire 8 86 fetch_block_id $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 3 96 value $end +$var string 1 :6 range $end +$upscope $end +$upscope $end +$upscope $end +$scope module mock_fetch_pipe_2 $end +$scope struct cd $end +$var wire 1 35 clk $end +$var wire 1 45 rst $end +$upscope $end +$scope struct from_fetch $end +$scope struct inner $end +$scope struct data $end +$var string 1 55 \$tag $end +$scope struct HdlSome $end +$var wire 64 65 next_fetch_pc $end +$var wire 8 75 fetch_block_id $end +$var wire 8 85 in_progress_fetches_to_cancel $end +$upscope $end +$upscope $end +$var wire 1 95 ready $end +$upscope $end +$var string 1 :5 config $end +$upscope $end +$scope struct to_post_decode $end +$scope struct inner $end +$scope struct data $end +$var string 1 ;5 \$tag $end +$scope struct HdlSome $end +$var wire 8 <5 fetch_block_id $end +$scope struct insns $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 8 =5 fetch_block_id $end +$var wire 12 >5 id $end +$var wire 64 ?5 pc $end +$var wire 4 @5 size_in_bytes $end +$scope struct kind $end +$var string 1 A5 \$tag $end +$var wire 64 B5 Branch $end +$var wire 64 C5 BranchCond $end +$var wire 64 D5 Call $end +$var wire 64 E5 CallCond $end +$var wire 64 F5 Interrupt $end +$upscope $end +$upscope $end +$scope struct \[1] $end +$var wire 8 G5 fetch_block_id $end +$var wire 12 H5 id $end +$var wire 64 I5 pc $end +$var wire 4 J5 size_in_bytes $end +$scope struct kind $end +$var string 1 K5 \$tag $end +$var wire 64 L5 Branch $end +$var wire 64 M5 BranchCond $end +$var wire 64 N5 Call $end +$var wire 64 O5 CallCond $end +$var wire 64 P5 Interrupt $end +$upscope $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 2 Q5 value $end +$var string 1 R5 range $end +$upscope $end +$upscope $end +$var string 1 S5 config $end +$upscope $end +$upscope $end +$var wire 1 T5 ready $end +$upscope $end +$upscope $end +$scope struct queue_debug $end +$scope struct elements $end +$scope struct \[0] $end +$var wire 64 U5 fetch_pc $end +$var wire 8 V5 cycles_left $end +$var wire 8 W5 fetch_block_id $end +$upscope $end +$scope struct \[1] $end +$var wire 64 X5 fetch_pc $end +$var wire 8 Y5 cycles_left $end +$var wire 8 Z5 fetch_block_id $end +$upscope $end +$scope struct \[2] $end +$var wire 64 [5 fetch_pc $end +$var wire 8 \5 cycles_left $end +$var wire 8 ]5 fetch_block_id $end +$upscope $end +$scope struct \[3] $end +$var wire 64 ^5 fetch_pc $end +$var wire 8 _5 cycles_left $end +$var wire 8 `5 fetch_block_id $end +$upscope $end +$scope struct \[4] $end +$var wire 64 a5 fetch_pc $end +$var wire 8 b5 cycles_left $end +$var wire 8 c5 fetch_block_id $end +$upscope $end +$upscope $end +$scope struct len $end +$var wire 3 d5 value $end +$var string 1 e5 range $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$enddefinitions $end +$dumpvars +0! +1" +0# +1$ +sHdlNone\x20(0) % +b0 & +b0 ' +b0 ( +0) +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) * +sHdlNone\x20(0) + +b0 , +b0 - +b0 . +b0 / +b0 0 +sNonBranch\x20(0) 1 +b0 2 +b0 3 +b0 4 +b0 5 +b0 6 +b0 7 +b0 8 +b0 9 +b0 : +sNonBranch\x20(0) ; +b0 < +b0 = +b0 > +b0 ? +b0 @ +b0 A +sPhantomConst(\"0..=2\") B +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) C +0D +b0 E +b0 F +b0 G +b0 H +b0 I +b0 J +b0 K +b0 L +b0 M +b0 N +b0 O +b0 P +b0 Q +b0 R +b0 S +b0 T +b0 U +sPhantomConst(\"0..=16\") V +b0 W +b0 X +b0 Y +b0 Z +b0 [ +b0 \ +b0 ] +b0 ^ +b0 _ +b0 ` +b0 a +b0 b +b0 c +b0 d +b0 e +b0 f +b0 g +sPhantomConst(\"0..=16\") h +sHdlNone\x20(0) i +b0 j +b0 k +b0 l +sBranch\x20(0) m +sUnconditional\x20(0) n +sHdlNone\x20(0) o +b0 p +b0 q +b0 r +sBranch\x20(0) s +sUnconditional\x20(0) t +sHdlNone\x20(0) u +b0 v +b0 w +b0 x +sBranch\x20(0) y +sUnconditional\x20(0) z +sHdlNone\x20(0) { +b0 | +b0 } +b0 ~ +sBranch\x20(0) !" +sUnconditional\x20(0) "" +sHdlNone\x20(0) #" +b0 $" +b0 %" +b0 &" +sBranch\x20(0) '" +sUnconditional\x20(0) (" +sHdlNone\x20(0) )" +b0 *" +b0 +" +b0 ," +sBranch\x20(0) -" +sUnconditional\x20(0) ." +sHdlNone\x20(0) /" +b0 0" +b0 1" +b0 2" +sBranch\x20(0) 3" +sUnconditional\x20(0) 4" +sHdlNone\x20(0) 5" +b0 6" +b0 7" +b0 8" +sBranch\x20(0) 9" +sUnconditional\x20(0) :" +sHdlNone\x20(0) ;" +b0 <" +b0 =" +b0 >" +sBranch\x20(0) ?" +sUnconditional\x20(0) @" +sHdlNone\x20(0) A" +b0 B" +b0 C" +b0 D" +sBranch\x20(0) E" +sUnconditional\x20(0) F" +sHdlNone\x20(0) G" +b0 H" +b0 I" +b0 J" +sBranch\x20(0) K" +sUnconditional\x20(0) L" +sHdlNone\x20(0) M" +b0 N" +b0 O" +b0 P" +sBranch\x20(0) Q" +sUnconditional\x20(0) R" +sHdlNone\x20(0) S" +b0 T" +b0 U" +b0 V" +sBranch\x20(0) W" +sUnconditional\x20(0) X" +sHdlNone\x20(0) Y" +b0 Z" +b0 [" +b0 \" +sBranch\x20(0) ]" +sUnconditional\x20(0) ^" +sHdlNone\x20(0) _" +b0 `" +b0 a" +b0 b" +sBranch\x20(0) c" +sUnconditional\x20(0) d" +sHdlNone\x20(0) e" +b0 f" +b0 g" +b0 h" +sBranch\x20(0) i" +sUnconditional\x20(0) j" +0k" +0l" +0m" +0n" +0o" +0p" +0q" +0r" +0s" +0t" +0u" +0v" +0w" +0x" +0y" +0z" +0{" +0|" +0}" +0~" +0!# +0"# +0## +0$# +0%# +0&# +0'# +0(# +0)# +0*# +0+# +0,# +0-# +0.# +0/# +00# +01# +02# +03# +04# +05# +06# +07# +08# +09# +0:# +0;# +0<# +0=# +0># +0?# +0@# +0A# +0B# +0C# +0D# +0E# +0F# +0G# +0H# +0I# +0J# +0K# +0L# +0M# +0N# +0O# +0P# +0Q# +0R# +0S# +0T# +0U# +0V# +0W# +0X# +0Y# +0Z# +0[# +0\# +0]# +0^# +0_# +0`# +0a# +0b# +0c# +0d# +0e# +0f# +0g# +0h# +0i# +0j# +0k# +0l# +0m# +0n# +0o# +0p# +0q# +0r# +0s# +0t# +0u# +0v# +0w# +0x# +0y# +0z# +0{# +0|# +0}# +0~# +0!$ +0"$ +0#$ +0$$ +0%$ +0&$ +0'$ +0($ +0)$ +0*$ +0+$ +0,$ +0-$ +0.$ +0/$ +00$ +01$ +02$ +03$ +04$ +05$ +06$ +07$ +08$ +09$ +0:$ +0;$ +0<$ +0=$ +0>$ +0?$ +0@$ +0A$ +0B$ +0C$ +0D$ +0E$ +0F$ +0G$ +0H$ +0I$ +0J$ +0K$ +0L$ +0M$ +0N$ +0O$ +0P$ +0Q$ +0R$ +0S$ +0T$ +0U$ +0V$ +0W$ +0X$ +0Y$ +0Z$ +0[$ +0\$ +0]$ +0^$ +0_$ +0`$ +0a$ +0b$ +0c$ +0d$ +0e$ +0f$ +0g$ +0h$ +0i$ +0j$ +0k$ +0l$ +0m$ +0n$ +0o$ +0p$ +0q$ +0r$ +0s$ +0t$ +0u$ +0v$ +0w$ +0x$ +0y$ +0z$ +0{$ +0|$ +0}$ +0~$ +0!% +0"% +0#% +0$% +0%% +0&% +0'% +0(% +0)% +0*% +0+% +0,% +0-% +0.% +0/% +00% +01% +02% +03% +04% +05% +06% +07% +08% +09% +0:% +0;% +0<% +0=% +0>% +0?% +0@% +0A% +0B% +0C% +0D% +0E% +0F% +0G% +0H% +0I% +0J% +0K% +0L% +0M% +0N% +0O% +0P% +b0 Q% +sPhantomConst(\"0..256\") R% +b0 S% +sPhantomConst(\"0..256\") T% +b0 U% +sPhantomConst(\"0..256\") V% +sStronglyNotTaken\x20(0) W% +sStronglyNotTaken\x20(0) X% +sStronglyNotTaken\x20(0) Y% +sStronglyNotTaken\x20(0) Z% +sStronglyNotTaken\x20(0) [% +sStronglyNotTaken\x20(0) \% +sStronglyNotTaken\x20(0) ]% +sStronglyNotTaken\x20(0) ^% +sStronglyNotTaken\x20(0) _% +sStronglyNotTaken\x20(0) `% +sStronglyNotTaken\x20(0) a% +sStronglyNotTaken\x20(0) b% +sStronglyNotTaken\x20(0) c% +sStronglyNotTaken\x20(0) d% +sStronglyNotTaken\x20(0) e% +sStronglyNotTaken\x20(0) f% +sStronglyNotTaken\x20(0) g% +sStronglyNotTaken\x20(0) h% +sStronglyNotTaken\x20(0) i% +sStronglyNotTaken\x20(0) j% +sStronglyNotTaken\x20(0) k% +sStronglyNotTaken\x20(0) l% +sStronglyNotTaken\x20(0) m% +sStronglyNotTaken\x20(0) n% +sStronglyNotTaken\x20(0) o% +sStronglyNotTaken\x20(0) p% +sStronglyNotTaken\x20(0) q% +sStronglyNotTaken\x20(0) r% +sStronglyNotTaken\x20(0) s% +sStronglyNotTaken\x20(0) t% +sStronglyNotTaken\x20(0) u% +sStronglyNotTaken\x20(0) v% +sStronglyNotTaken\x20(0) w% +sStronglyNotTaken\x20(0) x% +sStronglyNotTaken\x20(0) y% +sStronglyNotTaken\x20(0) z% +sStronglyNotTaken\x20(0) {% +sStronglyNotTaken\x20(0) |% +sStronglyNotTaken\x20(0) }% +sStronglyNotTaken\x20(0) ~% +sStronglyNotTaken\x20(0) !& +sStronglyNotTaken\x20(0) "& +sStronglyNotTaken\x20(0) #& +sStronglyNotTaken\x20(0) $& +sStronglyNotTaken\x20(0) %& +sStronglyNotTaken\x20(0) && +sStronglyNotTaken\x20(0) '& +sStronglyNotTaken\x20(0) (& +sStronglyNotTaken\x20(0) )& +sStronglyNotTaken\x20(0) *& +sStronglyNotTaken\x20(0) +& +sStronglyNotTaken\x20(0) ,& +sStronglyNotTaken\x20(0) -& +sStronglyNotTaken\x20(0) .& +sStronglyNotTaken\x20(0) /& +sStronglyNotTaken\x20(0) 0& +sStronglyNotTaken\x20(0) 1& +sStronglyNotTaken\x20(0) 2& +sStronglyNotTaken\x20(0) 3& +sStronglyNotTaken\x20(0) 4& +sStronglyNotTaken\x20(0) 5& +sStronglyNotTaken\x20(0) 6& +sStronglyNotTaken\x20(0) 7& +sStronglyNotTaken\x20(0) 8& +sStronglyNotTaken\x20(0) 9& +sStronglyNotTaken\x20(0) :& +sStronglyNotTaken\x20(0) ;& +sStronglyNotTaken\x20(0) <& +sStronglyNotTaken\x20(0) =& +sStronglyNotTaken\x20(0) >& +sStronglyNotTaken\x20(0) ?& +sStronglyNotTaken\x20(0) @& +sStronglyNotTaken\x20(0) A& +sStronglyNotTaken\x20(0) B& +sStronglyNotTaken\x20(0) C& +sStronglyNotTaken\x20(0) D& +sStronglyNotTaken\x20(0) E& +sStronglyNotTaken\x20(0) F& +sStronglyNotTaken\x20(0) G& +sStronglyNotTaken\x20(0) H& +sStronglyNotTaken\x20(0) I& +sStronglyNotTaken\x20(0) J& +sStronglyNotTaken\x20(0) K& +sStronglyNotTaken\x20(0) L& +sStronglyNotTaken\x20(0) M& +sStronglyNotTaken\x20(0) N& +sStronglyNotTaken\x20(0) O& +sStronglyNotTaken\x20(0) P& +sStronglyNotTaken\x20(0) Q& +sStronglyNotTaken\x20(0) R& +sStronglyNotTaken\x20(0) S& +sStronglyNotTaken\x20(0) T& +sStronglyNotTaken\x20(0) U& +sStronglyNotTaken\x20(0) V& +sStronglyNotTaken\x20(0) W& +sStronglyNotTaken\x20(0) X& +sStronglyNotTaken\x20(0) Y& +sStronglyNotTaken\x20(0) Z& +sStronglyNotTaken\x20(0) [& +sStronglyNotTaken\x20(0) \& +sStronglyNotTaken\x20(0) ]& +sStronglyNotTaken\x20(0) ^& +sStronglyNotTaken\x20(0) _& +sStronglyNotTaken\x20(0) `& +sStronglyNotTaken\x20(0) a& +sStronglyNotTaken\x20(0) b& +sStronglyNotTaken\x20(0) c& +sStronglyNotTaken\x20(0) d& +sStronglyNotTaken\x20(0) e& +sStronglyNotTaken\x20(0) f& +sStronglyNotTaken\x20(0) g& +sStronglyNotTaken\x20(0) h& +sStronglyNotTaken\x20(0) i& +sStronglyNotTaken\x20(0) j& +sStronglyNotTaken\x20(0) k& +sStronglyNotTaken\x20(0) l& +sStronglyNotTaken\x20(0) m& +sStronglyNotTaken\x20(0) n& +sStronglyNotTaken\x20(0) o& +sStronglyNotTaken\x20(0) p& +sStronglyNotTaken\x20(0) q& +sStronglyNotTaken\x20(0) r& +sStronglyNotTaken\x20(0) s& +sStronglyNotTaken\x20(0) t& +sStronglyNotTaken\x20(0) u& +sStronglyNotTaken\x20(0) v& +sStronglyNotTaken\x20(0) w& +sStronglyNotTaken\x20(0) x& +sStronglyNotTaken\x20(0) y& +sStronglyNotTaken\x20(0) z& +sStronglyNotTaken\x20(0) {& +sStronglyNotTaken\x20(0) |& +sStronglyNotTaken\x20(0) }& +sStronglyNotTaken\x20(0) ~& +sStronglyNotTaken\x20(0) !' +sStronglyNotTaken\x20(0) "' +sStronglyNotTaken\x20(0) #' +sStronglyNotTaken\x20(0) $' +sStronglyNotTaken\x20(0) %' +sStronglyNotTaken\x20(0) &' +sStronglyNotTaken\x20(0) '' +sStronglyNotTaken\x20(0) (' +sStronglyNotTaken\x20(0) )' +sStronglyNotTaken\x20(0) *' +sStronglyNotTaken\x20(0) +' +sStronglyNotTaken\x20(0) ,' +sStronglyNotTaken\x20(0) -' +sStronglyNotTaken\x20(0) .' +sStronglyNotTaken\x20(0) /' +sStronglyNotTaken\x20(0) 0' +sStronglyNotTaken\x20(0) 1' +sStronglyNotTaken\x20(0) 2' +sStronglyNotTaken\x20(0) 3' +sStronglyNotTaken\x20(0) 4' +sStronglyNotTaken\x20(0) 5' +sStronglyNotTaken\x20(0) 6' +sStronglyNotTaken\x20(0) 7' +sStronglyNotTaken\x20(0) 8' +sStronglyNotTaken\x20(0) 9' +sStronglyNotTaken\x20(0) :' +sStronglyNotTaken\x20(0) ;' +sStronglyNotTaken\x20(0) <' +sStronglyNotTaken\x20(0) =' +sStronglyNotTaken\x20(0) >' +sStronglyNotTaken\x20(0) ?' +sStronglyNotTaken\x20(0) @' +sStronglyNotTaken\x20(0) A' +sStronglyNotTaken\x20(0) B' +sStronglyNotTaken\x20(0) C' +sStronglyNotTaken\x20(0) D' +sStronglyNotTaken\x20(0) E' +sStronglyNotTaken\x20(0) F' +sStronglyNotTaken\x20(0) G' +sStronglyNotTaken\x20(0) H' +sStronglyNotTaken\x20(0) I' +sStronglyNotTaken\x20(0) J' +sStronglyNotTaken\x20(0) K' +sStronglyNotTaken\x20(0) L' +sStronglyNotTaken\x20(0) M' +sStronglyNotTaken\x20(0) N' +sStronglyNotTaken\x20(0) O' +sStronglyNotTaken\x20(0) P' +sStronglyNotTaken\x20(0) Q' +sStronglyNotTaken\x20(0) R' +sStronglyNotTaken\x20(0) S' +sStronglyNotTaken\x20(0) T' +sStronglyNotTaken\x20(0) U' +sStronglyNotTaken\x20(0) V' +sStronglyNotTaken\x20(0) W' +sStronglyNotTaken\x20(0) X' +sStronglyNotTaken\x20(0) Y' +sStronglyNotTaken\x20(0) Z' +sStronglyNotTaken\x20(0) [' +sStronglyNotTaken\x20(0) \' +sStronglyNotTaken\x20(0) ]' +sStronglyNotTaken\x20(0) ^' +sStronglyNotTaken\x20(0) _' +sStronglyNotTaken\x20(0) `' +sStronglyNotTaken\x20(0) a' +sStronglyNotTaken\x20(0) b' +sStronglyNotTaken\x20(0) c' +sStronglyNotTaken\x20(0) d' +sStronglyNotTaken\x20(0) e' +sStronglyNotTaken\x20(0) f' +sStronglyNotTaken\x20(0) g' +sStronglyNotTaken\x20(0) h' +sStronglyNotTaken\x20(0) i' +sStronglyNotTaken\x20(0) j' +sStronglyNotTaken\x20(0) k' +sStronglyNotTaken\x20(0) l' +sStronglyNotTaken\x20(0) m' +sStronglyNotTaken\x20(0) n' +sStronglyNotTaken\x20(0) o' +sStronglyNotTaken\x20(0) p' +sStronglyNotTaken\x20(0) q' +sStronglyNotTaken\x20(0) r' +sStronglyNotTaken\x20(0) s' +sStronglyNotTaken\x20(0) t' +sStronglyNotTaken\x20(0) u' +sStronglyNotTaken\x20(0) v' +sStronglyNotTaken\x20(0) w' +sStronglyNotTaken\x20(0) x' +sStronglyNotTaken\x20(0) y' +sStronglyNotTaken\x20(0) z' +sStronglyNotTaken\x20(0) {' +sStronglyNotTaken\x20(0) |' +sStronglyNotTaken\x20(0) }' +sStronglyNotTaken\x20(0) ~' +sStronglyNotTaken\x20(0) !( +sStronglyNotTaken\x20(0) "( +sStronglyNotTaken\x20(0) #( +sStronglyNotTaken\x20(0) $( +sStronglyNotTaken\x20(0) %( +sStronglyNotTaken\x20(0) &( +sStronglyNotTaken\x20(0) '( +sStronglyNotTaken\x20(0) (( +sStronglyNotTaken\x20(0) )( +sStronglyNotTaken\x20(0) *( +sStronglyNotTaken\x20(0) +( +sStronglyNotTaken\x20(0) ,( +sStronglyNotTaken\x20(0) -( +sStronglyNotTaken\x20(0) .( +sStronglyNotTaken\x20(0) /( +sStronglyNotTaken\x20(0) 0( +sStronglyNotTaken\x20(0) 1( +sStronglyNotTaken\x20(0) 2( +sStronglyNotTaken\x20(0) 3( +sStronglyNotTaken\x20(0) 4( +sStronglyNotTaken\x20(0) 5( +sStronglyNotTaken\x20(0) 6( +sStronglyNotTaken\x20(0) 7( +sStronglyNotTaken\x20(0) 8( +sStronglyNotTaken\x20(0) 9( +sStronglyNotTaken\x20(0) :( +sStronglyNotTaken\x20(0) ;( +sStronglyNotTaken\x20(0) <( +b0 =( +b0 >( +b0 ?( +b0 @( +b0 A( +b0 B( +b0 C( +b0 D( +b0 E( +b0 F( +b0 G( +b0 H( +b0 I( +b0 J( +b0 K( +b0 L( +b0 M( +b0 N( +b0 O( +b0 P( +b0 Q( +b0 R( +b0 S( +b0 T( +b0 U( +b0 V( +b0 W( +b0 X( +b0 Y( +b0 Z( +b0 [( +b0 \( +b0 ]( +b0 ^( +b0 _( +b0 `( +b0 a( +b0 b( +b0 c( +b0 d( +b0 e( +b0 f( +b0 g( +b0 h( +b0 i( +b0 j( +b0 k( +b0 l( +b0 m( +b0 n( +b0 o( +b0 p( +b0 q( +b0 r( +b0 s( +b0 t( +b0 u( +b0 v( +b0 w( +b0 x( +b0 y( +b0 z( +b0 {( +b0 |( +b0 }( +b0 ~( +b0 !) +b0 ") +b0 #) +b0 $) +b0 %) +b0 &) +b0 ') +b0 () +b0 )) +b0 *) +b0 +) +b0 ,) +b0 -) +b0 .) +b0 /) +b0 0) +b0 1) +b0 2) +b0 3) +b0 4) +b0 5) +b0 6) +b0 7) +b0 8) +b0 9) +b0 :) +b0 ;) +b0 <) +b0 =) +b0 >) +b0 ?) +b0 @) +b0 A) +b0 B) +b0 C) +b0 D) +b0 E) +b0 F) +b0 G) +b0 H) +b0 I) +b0 J) +b0 K) +b0 L) +b0 M) +b0 N) +b0 O) +b0 P) +b0 Q) +b0 R) +b0 S) +b0 T) +b0 U) +b0 V) +b0 W) +b0 X) +b0 Y) +b0 Z) +b0 [) +b0 \) +b0 ]) +b0 ^) +b0 _) +b0 `) +b0 a) +b0 b) +b0 c) +b0 d) +b0 e) +b0 f) +b0 g) +b0 h) +b0 i) +b0 j) +b0 k) +b0 l) +b0 m) +b0 n) +b0 o) +b0 p) +b0 q) +b0 r) +b0 s) +b0 t) +b0 u) +b0 v) +b0 w) +b0 x) +b0 y) +b0 z) +b0 {) +b0 |) +b0 }) +b0 ~) +b0 !* +b0 "* +b0 #* +b0 $* +b0 %* +b0 &* +b0 '* +b0 (* +b0 )* +b0 ** +b0 +* +b0 ,* +b0 -* +b0 .* +b0 /* +b0 0* +b0 1* +b0 2* +b0 3* +b0 4* +b0 5* +b0 6* +b0 7* +b0 8* +b0 9* +b0 :* +b0 ;* +b0 <* +b0 =* +b0 >* +b0 ?* +b0 @* +b0 A* +b0 B* +b0 C* +b0 D* +b0 E* +b0 F* +b0 G* +b0 H* +b0 I* +b0 J* +b0 K* +b0 L* +b0 M* +b0 N* +b0 O* +b0 P* +b0 Q* +b0 R* +b0 S* +b0 T* +b0 U* +b0 V* +b0 W* +b0 X* +b0 Y* +b0 Z* +b0 [* +b0 \* +b0 ]* +b0 ^* +b0 _* +b0 `* +b0 a* +b0 b* +b0 c* +b0 d* +b0 e* +b0 f* +b0 g* +b0 h* +b0 i* +b0 j* +b0 k* +b0 l* +b0 m* +b0 n* +b0 o* +b0 p* +b0 q* +b0 r* +b0 s* +b0 t* +b0 u* +b0 v* +b0 w* +b0 x* +b0 y* +b0 z* +b0 {* +b0 |* +b0 }* +b0 ~* +b0 !+ +b0 "+ +b0 #+ +sPhantomConst(\"0..256\") $+ +b0 %+ +sPhantomConst(\"0..256\") &+ +0'+ +b0 (+ +b0 )+ +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) *+ +0++ +1,+ +sHdlNone\x20(0) -+ +b0 .+ +b0 /+ +b0 0+ +01+ +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) 2+ +sHdlNone\x20(0) 3+ +b0 4+ +b0 5+ +b0 6+ +b0 7+ +b0 8+ +sNonBranch\x20(0) 9+ +b0 :+ +b0 ;+ +b0 <+ +b0 =+ +b0 >+ +b0 ?+ +b0 @+ +b0 A+ +b0 B+ +sNonBranch\x20(0) C+ +b0 D+ +b0 E+ +b0 F+ +b0 G+ +b0 H+ +b0 I+ +sPhantomConst(\"0..=2\") J+ +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) K+ +0L+ +b0 M+ +b0 N+ +b0 O+ +b0 P+ +b0 Q+ +b0 R+ +b0 S+ +b0 T+ +b0 U+ +b0 V+ +b0 W+ +b0 X+ +b0 Y+ +b0 Z+ +b0 [+ +b0 \+ +b0 ]+ +sPhantomConst(\"0..=16\") ^+ +b0 _+ +b0 `+ +b0 a+ +b0 b+ +b0 c+ +b0 d+ +b0 e+ +b0 f+ +b0 g+ +b0 h+ +b0 i+ +b0 j+ +b0 k+ +b0 l+ +b0 m+ +b0 n+ +b0 o+ +sPhantomConst(\"0..=16\") p+ +sHdlNone\x20(0) q+ +b0 r+ +b0 s+ +b0 t+ +sBranch\x20(0) u+ +sUnconditional\x20(0) v+ +sHdlNone\x20(0) w+ +b0 x+ +b0 y+ +b0 z+ +sBranch\x20(0) {+ +sUnconditional\x20(0) |+ +sHdlNone\x20(0) }+ +b0 ~+ +b0 !, +b0 ", +sBranch\x20(0) #, +sUnconditional\x20(0) $, +sHdlNone\x20(0) %, +b0 &, +b0 ', +b0 (, +sBranch\x20(0) ), +sUnconditional\x20(0) *, +sHdlNone\x20(0) +, +b0 ,, +b0 -, +b0 ., +sBranch\x20(0) /, +sUnconditional\x20(0) 0, +sHdlNone\x20(0) 1, +b0 2, +b0 3, +b0 4, +sBranch\x20(0) 5, +sUnconditional\x20(0) 6, +sHdlNone\x20(0) 7, +b0 8, +b0 9, +b0 :, +sBranch\x20(0) ;, +sUnconditional\x20(0) <, +sHdlNone\x20(0) =, +b0 >, +b0 ?, +b0 @, +sBranch\x20(0) A, +sUnconditional\x20(0) B, +sHdlNone\x20(0) C, +b0 D, +b0 E, +b0 F, +sBranch\x20(0) G, +sUnconditional\x20(0) H, +sHdlNone\x20(0) I, +b0 J, +b0 K, +b0 L, +sBranch\x20(0) M, +sUnconditional\x20(0) N, +sHdlNone\x20(0) O, +b0 P, +b0 Q, +b0 R, +sBranch\x20(0) S, +sUnconditional\x20(0) T, +sHdlNone\x20(0) U, +b0 V, +b0 W, +b0 X, +sBranch\x20(0) Y, +sUnconditional\x20(0) Z, +sHdlNone\x20(0) [, +b0 \, +b0 ], +b0 ^, +sBranch\x20(0) _, +sUnconditional\x20(0) `, +sHdlNone\x20(0) a, +b0 b, +b0 c, +b0 d, +sBranch\x20(0) e, +sUnconditional\x20(0) f, +sHdlNone\x20(0) g, +b0 h, +b0 i, +b0 j, +sBranch\x20(0) k, +sUnconditional\x20(0) l, +sHdlNone\x20(0) m, +b0 n, +b0 o, +b0 p, +sBranch\x20(0) q, +sUnconditional\x20(0) r, +0s, +0t, +0u, +0v, +0w, +0x, +0y, +0z, +0{, +0|, +0}, +0~, +0!- +0"- +0#- +0$- +0%- +0&- +0'- +0(- +0)- +0*- +0+- +0,- +0-- +0.- +0/- +00- +01- +02- +03- +04- +05- +06- +07- +08- +09- +0:- +0;- +0<- +0=- +0>- +0?- +0@- +0A- +0B- +0C- +0D- +0E- +0F- +0G- +0H- +0I- +0J- +0K- +0L- +0M- +0N- +0O- +0P- +0Q- +0R- +0S- +0T- +0U- +0V- +0W- +0X- +0Y- +0Z- +0[- +0\- +0]- +0^- +0_- +0`- +0a- +0b- +0c- +0d- +0e- +0f- +0g- +0h- +0i- +0j- +0k- +0l- +0m- +0n- +0o- +0p- +0q- +0r- +0s- +0t- +0u- +0v- +0w- +0x- +0y- +0z- +0{- +0|- +0}- +0~- +0!. +0". +0#. +0$. +0%. +0&. +0'. +0(. +0). +0*. +0+. +0,. +0-. +0.. +0/. +00. +01. +02. +03. +04. +05. +06. +07. +08. +09. +0:. +0;. +0<. +0=. +0>. +0?. +0@. +0A. +0B. +0C. +0D. +0E. +0F. +0G. +0H. +0I. +0J. +0K. +0L. +0M. +0N. +0O. +0P. +0Q. +0R. +0S. +0T. +0U. +0V. +0W. +0X. +0Y. +0Z. +0[. +0\. +0]. +0^. +0_. +0`. +0a. +0b. +0c. +0d. +0e. +0f. +0g. +0h. +0i. +0j. +0k. +0l. +0m. +0n. +0o. +0p. +0q. +0r. +0s. +0t. +0u. +0v. +0w. +0x. +0y. +0z. +0{. +0|. +0}. +0~. +0!/ +0"/ +0#/ +0$/ +0%/ +0&/ +0'/ +0(/ +0)/ +0*/ +0+/ +0,/ +0-/ +0./ +0// +00/ +01/ +02/ +03/ +04/ +05/ +06/ +07/ +08/ +09/ +0:/ +0;/ +0/ +0?/ +0@/ +0A/ +0B/ +0C/ +0D/ +0E/ +0F/ +0G/ +0H/ +0I/ +0J/ +0K/ +0L/ +0M/ +0N/ +0O/ +0P/ +0Q/ +0R/ +0S/ +0T/ +0U/ +0V/ +0W/ +0X/ +b0 Y/ +sPhantomConst(\"0..256\") Z/ +b0 [/ +sPhantomConst(\"0..256\") \/ +b0 ]/ +sPhantomConst(\"0..256\") ^/ +sStronglyNotTaken\x20(0) _/ +sStronglyNotTaken\x20(0) `/ +sStronglyNotTaken\x20(0) a/ +sStronglyNotTaken\x20(0) b/ +sStronglyNotTaken\x20(0) c/ +sStronglyNotTaken\x20(0) d/ +sStronglyNotTaken\x20(0) e/ +sStronglyNotTaken\x20(0) f/ +sStronglyNotTaken\x20(0) g/ +sStronglyNotTaken\x20(0) h/ +sStronglyNotTaken\x20(0) i/ +sStronglyNotTaken\x20(0) j/ +sStronglyNotTaken\x20(0) k/ +sStronglyNotTaken\x20(0) l/ +sStronglyNotTaken\x20(0) m/ +sStronglyNotTaken\x20(0) n/ +sStronglyNotTaken\x20(0) o/ +sStronglyNotTaken\x20(0) p/ +sStronglyNotTaken\x20(0) q/ +sStronglyNotTaken\x20(0) r/ +sStronglyNotTaken\x20(0) s/ +sStronglyNotTaken\x20(0) t/ +sStronglyNotTaken\x20(0) u/ +sStronglyNotTaken\x20(0) v/ +sStronglyNotTaken\x20(0) w/ +sStronglyNotTaken\x20(0) x/ +sStronglyNotTaken\x20(0) y/ +sStronglyNotTaken\x20(0) z/ +sStronglyNotTaken\x20(0) {/ +sStronglyNotTaken\x20(0) |/ +sStronglyNotTaken\x20(0) }/ +sStronglyNotTaken\x20(0) ~/ +sStronglyNotTaken\x20(0) !0 +sStronglyNotTaken\x20(0) "0 +sStronglyNotTaken\x20(0) #0 +sStronglyNotTaken\x20(0) $0 +sStronglyNotTaken\x20(0) %0 +sStronglyNotTaken\x20(0) &0 +sStronglyNotTaken\x20(0) '0 +sStronglyNotTaken\x20(0) (0 +sStronglyNotTaken\x20(0) )0 +sStronglyNotTaken\x20(0) *0 +sStronglyNotTaken\x20(0) +0 +sStronglyNotTaken\x20(0) ,0 +sStronglyNotTaken\x20(0) -0 +sStronglyNotTaken\x20(0) .0 +sStronglyNotTaken\x20(0) /0 +sStronglyNotTaken\x20(0) 00 +sStronglyNotTaken\x20(0) 10 +sStronglyNotTaken\x20(0) 20 +sStronglyNotTaken\x20(0) 30 +sStronglyNotTaken\x20(0) 40 +sStronglyNotTaken\x20(0) 50 +sStronglyNotTaken\x20(0) 60 +sStronglyNotTaken\x20(0) 70 +sStronglyNotTaken\x20(0) 80 +sStronglyNotTaken\x20(0) 90 +sStronglyNotTaken\x20(0) :0 +sStronglyNotTaken\x20(0) ;0 +sStronglyNotTaken\x20(0) <0 +sStronglyNotTaken\x20(0) =0 +sStronglyNotTaken\x20(0) >0 +sStronglyNotTaken\x20(0) ?0 +sStronglyNotTaken\x20(0) @0 +sStronglyNotTaken\x20(0) A0 +sStronglyNotTaken\x20(0) B0 +sStronglyNotTaken\x20(0) C0 +sStronglyNotTaken\x20(0) D0 +sStronglyNotTaken\x20(0) E0 +sStronglyNotTaken\x20(0) F0 +sStronglyNotTaken\x20(0) G0 +sStronglyNotTaken\x20(0) H0 +sStronglyNotTaken\x20(0) I0 +sStronglyNotTaken\x20(0) J0 +sStronglyNotTaken\x20(0) K0 +sStronglyNotTaken\x20(0) L0 +sStronglyNotTaken\x20(0) M0 +sStronglyNotTaken\x20(0) N0 +sStronglyNotTaken\x20(0) O0 +sStronglyNotTaken\x20(0) P0 +sStronglyNotTaken\x20(0) Q0 +sStronglyNotTaken\x20(0) R0 +sStronglyNotTaken\x20(0) S0 +sStronglyNotTaken\x20(0) T0 +sStronglyNotTaken\x20(0) U0 +sStronglyNotTaken\x20(0) V0 +sStronglyNotTaken\x20(0) W0 +sStronglyNotTaken\x20(0) X0 +sStronglyNotTaken\x20(0) Y0 +sStronglyNotTaken\x20(0) Z0 +sStronglyNotTaken\x20(0) [0 +sStronglyNotTaken\x20(0) \0 +sStronglyNotTaken\x20(0) ]0 +sStronglyNotTaken\x20(0) ^0 +sStronglyNotTaken\x20(0) _0 +sStronglyNotTaken\x20(0) `0 +sStronglyNotTaken\x20(0) a0 +sStronglyNotTaken\x20(0) b0 +sStronglyNotTaken\x20(0) c0 +sStronglyNotTaken\x20(0) d0 +sStronglyNotTaken\x20(0) e0 +sStronglyNotTaken\x20(0) f0 +sStronglyNotTaken\x20(0) g0 +sStronglyNotTaken\x20(0) h0 +sStronglyNotTaken\x20(0) i0 +sStronglyNotTaken\x20(0) j0 +sStronglyNotTaken\x20(0) k0 +sStronglyNotTaken\x20(0) l0 +sStronglyNotTaken\x20(0) m0 +sStronglyNotTaken\x20(0) n0 +sStronglyNotTaken\x20(0) o0 +sStronglyNotTaken\x20(0) p0 +sStronglyNotTaken\x20(0) q0 +sStronglyNotTaken\x20(0) r0 +sStronglyNotTaken\x20(0) s0 +sStronglyNotTaken\x20(0) t0 +sStronglyNotTaken\x20(0) u0 +sStronglyNotTaken\x20(0) v0 +sStronglyNotTaken\x20(0) w0 +sStronglyNotTaken\x20(0) x0 +sStronglyNotTaken\x20(0) y0 +sStronglyNotTaken\x20(0) z0 +sStronglyNotTaken\x20(0) {0 +sStronglyNotTaken\x20(0) |0 +sStronglyNotTaken\x20(0) }0 +sStronglyNotTaken\x20(0) ~0 +sStronglyNotTaken\x20(0) !1 +sStronglyNotTaken\x20(0) "1 +sStronglyNotTaken\x20(0) #1 +sStronglyNotTaken\x20(0) $1 +sStronglyNotTaken\x20(0) %1 +sStronglyNotTaken\x20(0) &1 +sStronglyNotTaken\x20(0) '1 +sStronglyNotTaken\x20(0) (1 +sStronglyNotTaken\x20(0) )1 +sStronglyNotTaken\x20(0) *1 +sStronglyNotTaken\x20(0) +1 +sStronglyNotTaken\x20(0) ,1 +sStronglyNotTaken\x20(0) -1 +sStronglyNotTaken\x20(0) .1 +sStronglyNotTaken\x20(0) /1 +sStronglyNotTaken\x20(0) 01 +sStronglyNotTaken\x20(0) 11 +sStronglyNotTaken\x20(0) 21 +sStronglyNotTaken\x20(0) 31 +sStronglyNotTaken\x20(0) 41 +sStronglyNotTaken\x20(0) 51 +sStronglyNotTaken\x20(0) 61 +sStronglyNotTaken\x20(0) 71 +sStronglyNotTaken\x20(0) 81 +sStronglyNotTaken\x20(0) 91 +sStronglyNotTaken\x20(0) :1 +sStronglyNotTaken\x20(0) ;1 +sStronglyNotTaken\x20(0) <1 +sStronglyNotTaken\x20(0) =1 +sStronglyNotTaken\x20(0) >1 +sStronglyNotTaken\x20(0) ?1 +sStronglyNotTaken\x20(0) @1 +sStronglyNotTaken\x20(0) A1 +sStronglyNotTaken\x20(0) B1 +sStronglyNotTaken\x20(0) C1 +sStronglyNotTaken\x20(0) D1 +sStronglyNotTaken\x20(0) E1 +sStronglyNotTaken\x20(0) F1 +sStronglyNotTaken\x20(0) G1 +sStronglyNotTaken\x20(0) H1 +sStronglyNotTaken\x20(0) I1 +sStronglyNotTaken\x20(0) J1 +sStronglyNotTaken\x20(0) K1 +sStronglyNotTaken\x20(0) L1 +sStronglyNotTaken\x20(0) M1 +sStronglyNotTaken\x20(0) N1 +sStronglyNotTaken\x20(0) O1 +sStronglyNotTaken\x20(0) P1 +sStronglyNotTaken\x20(0) Q1 +sStronglyNotTaken\x20(0) R1 +sStronglyNotTaken\x20(0) S1 +sStronglyNotTaken\x20(0) T1 +sStronglyNotTaken\x20(0) U1 +sStronglyNotTaken\x20(0) V1 +sStronglyNotTaken\x20(0) W1 +sStronglyNotTaken\x20(0) X1 +sStronglyNotTaken\x20(0) Y1 +sStronglyNotTaken\x20(0) Z1 +sStronglyNotTaken\x20(0) [1 +sStronglyNotTaken\x20(0) \1 +sStronglyNotTaken\x20(0) ]1 +sStronglyNotTaken\x20(0) ^1 +sStronglyNotTaken\x20(0) _1 +sStronglyNotTaken\x20(0) `1 +sStronglyNotTaken\x20(0) a1 +sStronglyNotTaken\x20(0) b1 +sStronglyNotTaken\x20(0) c1 +sStronglyNotTaken\x20(0) d1 +sStronglyNotTaken\x20(0) e1 +sStronglyNotTaken\x20(0) f1 +sStronglyNotTaken\x20(0) g1 +sStronglyNotTaken\x20(0) h1 +sStronglyNotTaken\x20(0) i1 +sStronglyNotTaken\x20(0) j1 +sStronglyNotTaken\x20(0) k1 +sStronglyNotTaken\x20(0) l1 +sStronglyNotTaken\x20(0) m1 +sStronglyNotTaken\x20(0) n1 +sStronglyNotTaken\x20(0) o1 +sStronglyNotTaken\x20(0) p1 +sStronglyNotTaken\x20(0) q1 +sStronglyNotTaken\x20(0) r1 +sStronglyNotTaken\x20(0) s1 +sStronglyNotTaken\x20(0) t1 +sStronglyNotTaken\x20(0) u1 +sStronglyNotTaken\x20(0) v1 +sStronglyNotTaken\x20(0) w1 +sStronglyNotTaken\x20(0) x1 +sStronglyNotTaken\x20(0) y1 +sStronglyNotTaken\x20(0) z1 +sStronglyNotTaken\x20(0) {1 +sStronglyNotTaken\x20(0) |1 +sStronglyNotTaken\x20(0) }1 +sStronglyNotTaken\x20(0) ~1 +sStronglyNotTaken\x20(0) !2 +sStronglyNotTaken\x20(0) "2 +sStronglyNotTaken\x20(0) #2 +sStronglyNotTaken\x20(0) $2 +sStronglyNotTaken\x20(0) %2 +sStronglyNotTaken\x20(0) &2 +sStronglyNotTaken\x20(0) '2 +sStronglyNotTaken\x20(0) (2 +sStronglyNotTaken\x20(0) )2 +sStronglyNotTaken\x20(0) *2 +sStronglyNotTaken\x20(0) +2 +sStronglyNotTaken\x20(0) ,2 +sStronglyNotTaken\x20(0) -2 +sStronglyNotTaken\x20(0) .2 +sStronglyNotTaken\x20(0) /2 +sStronglyNotTaken\x20(0) 02 +sStronglyNotTaken\x20(0) 12 +sStronglyNotTaken\x20(0) 22 +sStronglyNotTaken\x20(0) 32 +sStronglyNotTaken\x20(0) 42 +sStronglyNotTaken\x20(0) 52 +sStronglyNotTaken\x20(0) 62 +sStronglyNotTaken\x20(0) 72 +sStronglyNotTaken\x20(0) 82 +sStronglyNotTaken\x20(0) 92 +sStronglyNotTaken\x20(0) :2 +sStronglyNotTaken\x20(0) ;2 +sStronglyNotTaken\x20(0) <2 +sStronglyNotTaken\x20(0) =2 +sStronglyNotTaken\x20(0) >2 +sStronglyNotTaken\x20(0) ?2 +sStronglyNotTaken\x20(0) @2 +sStronglyNotTaken\x20(0) A2 +sStronglyNotTaken\x20(0) B2 +sStronglyNotTaken\x20(0) C2 +sStronglyNotTaken\x20(0) D2 +b0 E2 +b0 F2 +b0 G2 +b0 H2 +b0 I2 +b0 J2 +b0 K2 +b0 L2 +b0 M2 +b0 N2 +b0 O2 +b0 P2 +b0 Q2 +b0 R2 +b0 S2 +b0 T2 +b0 U2 +b0 V2 +b0 W2 +b0 X2 +b0 Y2 +b0 Z2 +b0 [2 +b0 \2 +b0 ]2 +b0 ^2 +b0 _2 +b0 `2 +b0 a2 +b0 b2 +b0 c2 +b0 d2 +b0 e2 +b0 f2 +b0 g2 +b0 h2 +b0 i2 +b0 j2 +b0 k2 +b0 l2 +b0 m2 +b0 n2 +b0 o2 +b0 p2 +b0 q2 +b0 r2 +b0 s2 +b0 t2 +b0 u2 +b0 v2 +b0 w2 +b0 x2 +b0 y2 +b0 z2 +b0 {2 +b0 |2 +b0 }2 +b0 ~2 +b0 !3 +b0 "3 +b0 #3 +b0 $3 +b0 %3 +b0 &3 +b0 '3 +b0 (3 +b0 )3 +b0 *3 +b0 +3 +b0 ,3 +b0 -3 +b0 .3 +b0 /3 +b0 03 +b0 13 +b0 23 +b0 33 +b0 43 +b0 53 +b0 63 +b0 73 +b0 83 +b0 93 +b0 :3 +b0 ;3 +b0 <3 +b0 =3 +b0 >3 +b0 ?3 +b0 @3 +b0 A3 +b0 B3 +b0 C3 +b0 D3 +b0 E3 +b0 F3 +b0 G3 +b0 H3 +b0 I3 +b0 J3 +b0 K3 +b0 L3 +b0 M3 +b0 N3 +b0 O3 +b0 P3 +b0 Q3 +b0 R3 +b0 S3 +b0 T3 +b0 U3 +b0 V3 +b0 W3 +b0 X3 +b0 Y3 +b0 Z3 +b0 [3 +b0 \3 +b0 ]3 +b0 ^3 +b0 _3 +b0 `3 +b0 a3 +b0 b3 +b0 c3 +b0 d3 +b0 e3 +b0 f3 +b0 g3 +b0 h3 +b0 i3 +b0 j3 +b0 k3 +b0 l3 +b0 m3 +b0 n3 +b0 o3 +b0 p3 +b0 q3 +b0 r3 +b0 s3 +b0 t3 +b0 u3 +b0 v3 +b0 w3 +b0 x3 +b0 y3 +b0 z3 +b0 {3 +b0 |3 +b0 }3 +b0 ~3 +b0 !4 +b0 "4 +b0 #4 +b0 $4 +b0 %4 +b0 &4 +b0 '4 +b0 (4 +b0 )4 +b0 *4 +b0 +4 +b0 ,4 +b0 -4 +b0 .4 +b0 /4 +b0 04 +b0 14 +b0 24 +b0 34 +b0 44 +b0 54 +b0 64 +b0 74 +b0 84 +b0 94 +b0 :4 +b0 ;4 +b0 <4 +b0 =4 +b0 >4 +b0 ?4 +b0 @4 +b0 A4 +b0 B4 +b0 C4 +b0 D4 +b0 E4 +b0 F4 +b0 G4 +b0 H4 +b0 I4 +b0 J4 +b0 K4 +b0 L4 +b0 M4 +b0 N4 +b0 O4 +b0 P4 +b0 Q4 +b0 R4 +b0 S4 +b0 T4 +b0 U4 +b0 V4 +b0 W4 +b0 X4 +b0 Y4 +b0 Z4 +b0 [4 +b0 \4 +b0 ]4 +b0 ^4 +b0 _4 +b0 `4 +b0 a4 +b0 b4 +b0 c4 +b0 d4 +b0 e4 +b0 f4 +b0 g4 +b0 h4 +b0 i4 +b0 j4 +b0 k4 +b0 l4 +b0 m4 +b0 n4 +b0 o4 +b0 p4 +b0 q4 +b0 r4 +b0 s4 +b0 t4 +b0 u4 +b0 v4 +b0 w4 +b0 x4 +b0 y4 +b0 z4 +b0 {4 +b0 |4 +b0 }4 +b0 ~4 +b0 !5 +b0 "5 +b0 #5 +b0 $5 +b0 %5 +b0 &5 +b0 '5 +b0 (5 +b0 )5 +b0 *5 +b0 +5 +sPhantomConst(\"0..256\") ,5 +b0 -5 +sPhantomConst(\"0..256\") .5 +0/5 +b0 05 +b0 15 +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) 25 +035 +145 +sHdlNone\x20(0) 55 +b0 65 +b0 75 +b0 85 +095 +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) :5 +sHdlNone\x20(0) ;5 +b0 <5 +b0 =5 +b0 >5 +b0 ?5 +b0 @5 +sNonBranch\x20(0) A5 +b0 B5 +b0 C5 +b0 D5 +b0 E5 +b0 F5 +b0 G5 +b0 H5 +b0 I5 +b0 J5 +sNonBranch\x20(0) K5 +b0 L5 +b0 M5 +b0 N5 +b0 O5 +b0 P5 +b0 Q5 +sPhantomConst(\"0..=2\") R5 +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) S5 +0T5 +b0 U5 +b0 V5 +b0 W5 +b0 X5 +b0 Y5 +b0 Z5 +b0 [5 +b0 \5 +b0 ]5 +b0 ^5 +b0 _5 +b0 `5 +b0 a5 +b0 b5 +b0 c5 +b0 d5 +sPhantomConst(\"0..=5\") e5 +0f5 +1g5 +sHdlNone\x20(0) h5 +b0 i5 +b0 j5 +b0 k5 +0l5 +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) m5 +sHdlNone\x20(0) n5 +b0 o5 +b0 p5 +b0 q5 +b0 r5 +b0 s5 +sNonBranch\x20(0) t5 +b0 u5 +b0 v5 +b0 w5 +b0 x5 +b0 y5 +b0 z5 +b0 {5 +b0 |5 +b0 }5 +sNonBranch\x20(0) ~5 +b0 !6 +b0 "6 +b0 #6 +b0 $6 +b0 %6 +b0 &6 +sPhantomConst(\"0..=2\") '6 +sPhantomConst({\"units\":[{\"kind\":\"AluBranch\",\"max_in_flight\":null},{\"kind\":\"AluBranch\",\"max_in_flight\":null}],\"out_reg_num_width\":4,\"fetch_width\":2,\"max_branches_per_fetch\":1,\"log2_fetch_width_in_bytes\":3,\"default_unit_max_in_flight\":8,\"rob_size\":20}) (6 +0)6 +b0 *6 +b0 +6 +b0 ,6 +b0 -6 +b0 .6 +b0 /6 +b0 06 +b0 16 +b0 26 +b0 36 +b0 46 +b0 56 +b0 66 +b0 76 +b0 86 +b0 96 +sPhantomConst(\"0..=5\") :6 +$end +b1111111111111111111111111111111111111111111111111111111111111111 E +b1111111111111111111111111111111111111111111111111111111111111111 F +b1111111111111111111111111111111111111111111111111111111111111111 G +b1111111111111111111111111111111111111111111111111111111111111111 H +b1111111111111111111111111111111111111111111111111111111111111111 I +b1111111111111111111111111111111111111111111111111111111111111111 J +b1111111111111111111111111111111111111111111111111111111111111111 K +b1111111111111111111111111111111111111111111111111111111111111111 L +b1111111111111111111111111111111111111111111111111111111111111111 M +b1111111111111111111111111111111111111111111111111111111111111111 N +b1111111111111111111111111111111111111111111111111111111111111111 O +b1111111111111111111111111111111111111111111111111111111111111111 P +b1111111111111111111111111111111111111111111111111111111111111111 Q +b1111111111111111111111111111111111111111111111111111111111111111 R +b1111111111111111111111111111111111111111111111111111111111111111 S +b1111111111111111111111111111111111111111111111111111111111111111 T +b1111111111111111111111111111111111111111111111111111111111111111 W +b1111111111111111111111111111111111111111111111111111111111111111 X +b1111111111111111111111111111111111111111111111111111111111111111 Y +b1111111111111111111111111111111111111111111111111111111111111111 Z +b1111111111111111111111111111111111111111111111111111111111111111 [ +b1111111111111111111111111111111111111111111111111111111111111111 \ +b1111111111111111111111111111111111111111111111111111111111111111 ] +b1111111111111111111111111111111111111111111111111111111111111111 ^ +b1111111111111111111111111111111111111111111111111111111111111111 _ +b1111111111111111111111111111111111111111111111111111111111111111 ` +b1111111111111111111111111111111111111111111111111111111111111111 a +b1111111111111111111111111111111111111111111111111111111111111111 b +b1111111111111111111111111111111111111111111111111111111111111111 c +b1111111111111111111111111111111111111111111111111111111111111111 d +b1111111111111111111111111111111111111111111111111111111111111111 e +b1111111111111111111111111111111111111111111111111111111111111111 f +sHdlSome\x20(1) i +b1111111111111111111111111111111111111111111111111111111111111111 j +b1111111111111111111111111111111111111111111111111111111111111111 k +b11111111 l +sCall\x20(1) m +sCondNotTaken\x20(3) n +sHdlSome\x20(1) o +b1111111111111111111111111111111111111111111111111111111111111111 p +b1111111111111111111111111111111111111111111111111111111111111111 q +b11111111 r +sCall\x20(1) s +sCondNotTaken\x20(3) t +sHdlSome\x20(1) u +b1111111111111111111111111111111111111111111111111111111111111111 v +b1111111111111111111111111111111111111111111111111111111111111111 w +b11111111 x +sCall\x20(1) y +sCondNotTaken\x20(3) z +sHdlSome\x20(1) { +b1111111111111111111111111111111111111111111111111111111111111111 | +b1111111111111111111111111111111111111111111111111111111111111111 } +b11111111 ~ +sCall\x20(1) !" +sCondNotTaken\x20(3) "" +sHdlSome\x20(1) #" +b1111111111111111111111111111111111111111111111111111111111111111 $" +b1111111111111111111111111111111111111111111111111111111111111111 %" +b11111111 &" +sCall\x20(1) '" +sCondNotTaken\x20(3) (" +sHdlSome\x20(1) )" +b1111111111111111111111111111111111111111111111111111111111111111 *" +b1111111111111111111111111111111111111111111111111111111111111111 +" +b11111111 ," +sCall\x20(1) -" +sCondNotTaken\x20(3) ." +sHdlSome\x20(1) /" +b1111111111111111111111111111111111111111111111111111111111111111 0" +b1111111111111111111111111111111111111111111111111111111111111111 1" +b11111111 2" +sCall\x20(1) 3" +sCondNotTaken\x20(3) 4" +sHdlSome\x20(1) 5" +b1111111111111111111111111111111111111111111111111111111111111111 6" +b1111111111111111111111111111111111111111111111111111111111111111 7" +b11111111 8" +sCall\x20(1) 9" +sCondNotTaken\x20(3) :" +sHdlSome\x20(1) ;" +b1111111111111111111111111111111111111111111111111111111111111111 <" +b1111111111111111111111111111111111111111111111111111111111111111 =" +b11111111 >" +sCall\x20(1) ?" +sCondNotTaken\x20(3) @" +sHdlSome\x20(1) A" +b1111111111111111111111111111111111111111111111111111111111111111 B" +b1111111111111111111111111111111111111111111111111111111111111111 C" +b11111111 D" +sCall\x20(1) E" +sCondNotTaken\x20(3) F" +sHdlSome\x20(1) G" +b1111111111111111111111111111111111111111111111111111111111111111 H" +b1111111111111111111111111111111111111111111111111111111111111111 I" +b11111111 J" +sCall\x20(1) K" +sCondNotTaken\x20(3) L" +sHdlSome\x20(1) M" +b1111111111111111111111111111111111111111111111111111111111111111 N" +b1111111111111111111111111111111111111111111111111111111111111111 O" +b11111111 P" +sCall\x20(1) Q" +sCondNotTaken\x20(3) R" +sHdlSome\x20(1) S" +b1111111111111111111111111111111111111111111111111111111111111111 T" +b1111111111111111111111111111111111111111111111111111111111111111 U" +b11111111 V" +sCall\x20(1) W" +sCondNotTaken\x20(3) X" +sHdlSome\x20(1) Y" +b1111111111111111111111111111111111111111111111111111111111111111 Z" +b1111111111111111111111111111111111111111111111111111111111111111 [" +b11111111 \" +sCall\x20(1) ]" +sCondNotTaken\x20(3) ^" +sHdlSome\x20(1) _" +b1111111111111111111111111111111111111111111111111111111111111111 `" +b1111111111111111111111111111111111111111111111111111111111111111 a" +b11111111 b" +sCall\x20(1) c" +sCondNotTaken\x20(3) d" +sHdlSome\x20(1) e" +b1111111111111111111111111111111111111111111111111111111111111111 f" +b1111111111111111111111111111111111111111111111111111111111111111 g" +b11111111 h" +sCall\x20(1) i" +sCondNotTaken\x20(3) j" +1k" +1l" +1m" +1n" +1o" +1p" +1q" +1r" +1s" +1t" +1u" +1v" +1w" +1x" +1y" +1z" +1{" +1|" +1}" +1~" +1!# +1"# +1## +1$# +1%# +1&# +1'# +1(# +1)# +1*# +1+# +1,# +1-# +1.# +1/# +10# +11# +12# +13# +14# +15# +16# +17# +18# +19# +1:# +1;# +1<# +1=# +1># +1?# +1@# +1A# +1B# +1C# +1D# +1E# +1F# +1G# +1H# +1I# +1J# +1K# +1L# +1M# +1N# +1O# +1P# +1Q# +1R# +1S# +1T# +1U# +1V# +1W# +1X# +1Y# +1Z# +1[# +1\# +1]# +1^# +1_# +1`# +1a# +1b# +1c# +1d# +1e# +1f# +1g# +1h# +1i# +1j# +1k# +1l# +1m# +1n# +1o# +1p# +1q# +1r# +1s# +1t# +1u# +1v# +1w# +1x# +1y# +1z# +1{# +1|# +1}# +1~# +1!$ +1"$ +1#$ +1$$ +1%$ +1&$ +1'$ +1($ +1)$ +1*$ +1+$ +1,$ +1-$ +1.$ +1/$ +10$ +11$ +12$ +13$ +14$ +15$ +16$ +17$ +18$ +19$ +1:$ +1;$ +1<$ +1=$ +1>$ +1?$ +1@$ +1A$ +1B$ +1C$ +1D$ +1E$ +1F$ +1G$ +1H$ +1I$ +1J$ +1K$ +1L$ +1M$ +1N$ +1O$ +1P$ +1Q$ +1R$ +1S$ +1T$ +1U$ +1V$ +1W$ +1X$ +1Y$ +1Z$ +1[$ +1\$ +1]$ +1^$ +1_$ +1`$ +1a$ +1b$ +1c$ +1d$ +1e$ +1f$ +1g$ +1h$ +1i$ +1j$ +1k$ +1l$ +1m$ +1n$ +1o$ +1p$ +1q$ +1r$ +1s$ +1t$ +1u$ +1v$ +1w$ +1x$ +1y$ +1z$ +1{$ +1|$ +1}$ +1~$ +1!% +1"% +1#% +1$% +1%% +1&% +1'% +1(% +1)% +1*% +1+% +1,% +1-% +1.% +1/% +10% +11% +12% +13% +14% +15% +16% +17% +18% +19% +1:% +1;% +1<% +1=% +1>% +1?% +1@% +1A% +1B% +1C% +1D% +1E% +1F% +1G% +1H% +1I% +1J% +1K% +1L% +1M% +1N% +1O% +1P% +b1111111111111111111111111111111111111111111111111111111111111111 (+ +b11111111 )+ +b1111111111111111111111111111111111111111111111111111111111111111 M+ +b1111111111111111111111111111111111111111111111111111111111111111 N+ +b1111111111111111111111111111111111111111111111111111111111111111 O+ +b1111111111111111111111111111111111111111111111111111111111111111 P+ +b1111111111111111111111111111111111111111111111111111111111111111 Q+ +b1111111111111111111111111111111111111111111111111111111111111111 R+ +b1111111111111111111111111111111111111111111111111111111111111111 S+ +b1111111111111111111111111111111111111111111111111111111111111111 T+ +b1111111111111111111111111111111111111111111111111111111111111111 U+ +b1111111111111111111111111111111111111111111111111111111111111111 V+ +b1111111111111111111111111111111111111111111111111111111111111111 W+ +b1111111111111111111111111111111111111111111111111111111111111111 X+ +b1111111111111111111111111111111111111111111111111111111111111111 Y+ +b1111111111111111111111111111111111111111111111111111111111111111 Z+ +b1111111111111111111111111111111111111111111111111111111111111111 [+ +b1111111111111111111111111111111111111111111111111111111111111111 \+ +b1111111111111111111111111111111111111111111111111111111111111111 _+ +b1111111111111111111111111111111111111111111111111111111111111111 `+ +b1111111111111111111111111111111111111111111111111111111111111111 a+ +b1111111111111111111111111111111111111111111111111111111111111111 b+ +b1111111111111111111111111111111111111111111111111111111111111111 c+ +b1111111111111111111111111111111111111111111111111111111111111111 d+ +b1111111111111111111111111111111111111111111111111111111111111111 e+ +b1111111111111111111111111111111111111111111111111111111111111111 f+ +b1111111111111111111111111111111111111111111111111111111111111111 g+ +b1111111111111111111111111111111111111111111111111111111111111111 h+ +b1111111111111111111111111111111111111111111111111111111111111111 i+ +b1111111111111111111111111111111111111111111111111111111111111111 j+ +b1111111111111111111111111111111111111111111111111111111111111111 k+ +b1111111111111111111111111111111111111111111111111111111111111111 l+ +b1111111111111111111111111111111111111111111111111111111111111111 m+ +b1111111111111111111111111111111111111111111111111111111111111111 n+ +sHdlSome\x20(1) q+ +b1111111111111111111111111111111111111111111111111111111111111111 r+ +b1111111111111111111111111111111111111111111111111111111111111111 s+ +b11111111 t+ +sCall\x20(1) u+ +sCondNotTaken\x20(3) v+ +sHdlSome\x20(1) w+ +b1111111111111111111111111111111111111111111111111111111111111111 x+ +b1111111111111111111111111111111111111111111111111111111111111111 y+ +b11111111 z+ +sCall\x20(1) {+ +sCondNotTaken\x20(3) |+ +sHdlSome\x20(1) }+ +b1111111111111111111111111111111111111111111111111111111111111111 ~+ +b1111111111111111111111111111111111111111111111111111111111111111 !, +b11111111 ", +sCall\x20(1) #, +sCondNotTaken\x20(3) $, +sHdlSome\x20(1) %, +b1111111111111111111111111111111111111111111111111111111111111111 &, +b1111111111111111111111111111111111111111111111111111111111111111 ', +b11111111 (, +sCall\x20(1) ), +sCondNotTaken\x20(3) *, +sHdlSome\x20(1) +, +b1111111111111111111111111111111111111111111111111111111111111111 ,, +b1111111111111111111111111111111111111111111111111111111111111111 -, +b11111111 ., +sCall\x20(1) /, +sCondNotTaken\x20(3) 0, +sHdlSome\x20(1) 1, +b1111111111111111111111111111111111111111111111111111111111111111 2, +b1111111111111111111111111111111111111111111111111111111111111111 3, +b11111111 4, +sCall\x20(1) 5, +sCondNotTaken\x20(3) 6, +sHdlSome\x20(1) 7, +b1111111111111111111111111111111111111111111111111111111111111111 8, +b1111111111111111111111111111111111111111111111111111111111111111 9, +b11111111 :, +sCall\x20(1) ;, +sCondNotTaken\x20(3) <, +sHdlSome\x20(1) =, +b1111111111111111111111111111111111111111111111111111111111111111 >, +b1111111111111111111111111111111111111111111111111111111111111111 ?, +b11111111 @, +sCall\x20(1) A, +sCondNotTaken\x20(3) B, +sHdlSome\x20(1) C, +b1111111111111111111111111111111111111111111111111111111111111111 D, +b1111111111111111111111111111111111111111111111111111111111111111 E, +b11111111 F, +sCall\x20(1) G, +sCondNotTaken\x20(3) H, +sHdlSome\x20(1) I, +b1111111111111111111111111111111111111111111111111111111111111111 J, +b1111111111111111111111111111111111111111111111111111111111111111 K, +b11111111 L, +sCall\x20(1) M, +sCondNotTaken\x20(3) N, +sHdlSome\x20(1) O, +b1111111111111111111111111111111111111111111111111111111111111111 P, +b1111111111111111111111111111111111111111111111111111111111111111 Q, +b11111111 R, +sCall\x20(1) S, +sCondNotTaken\x20(3) T, +sHdlSome\x20(1) U, +b1111111111111111111111111111111111111111111111111111111111111111 V, +b1111111111111111111111111111111111111111111111111111111111111111 W, +b11111111 X, +sCall\x20(1) Y, +sCondNotTaken\x20(3) Z, +sHdlSome\x20(1) [, +b1111111111111111111111111111111111111111111111111111111111111111 \, +b1111111111111111111111111111111111111111111111111111111111111111 ], +b11111111 ^, +sCall\x20(1) _, +sCondNotTaken\x20(3) `, +sHdlSome\x20(1) a, +b1111111111111111111111111111111111111111111111111111111111111111 b, +b1111111111111111111111111111111111111111111111111111111111111111 c, +b11111111 d, +sCall\x20(1) e, +sCondNotTaken\x20(3) f, +sHdlSome\x20(1) g, +b1111111111111111111111111111111111111111111111111111111111111111 h, +b1111111111111111111111111111111111111111111111111111111111111111 i, +b11111111 j, +sCall\x20(1) k, +sCondNotTaken\x20(3) l, +sHdlSome\x20(1) m, +b1111111111111111111111111111111111111111111111111111111111111111 n, +b1111111111111111111111111111111111111111111111111111111111111111 o, +b11111111 p, +sCall\x20(1) q, +sCondNotTaken\x20(3) r, +1s, +1t, +1u, +1v, +1w, +1x, +1y, +1z, +1{, +1|, +1}, +1~, +1!- +1"- +1#- +1$- +1%- +1&- +1'- +1(- +1)- +1*- +1+- +1,- +1-- +1.- +1/- +10- +11- +12- +13- +14- +15- +16- +17- +18- +19- +1:- +1;- +1<- +1=- +1>- +1?- +1@- +1A- +1B- +1C- +1D- +1E- +1F- +1G- +1H- +1I- +1J- +1K- +1L- +1M- +1N- +1O- +1P- +1Q- +1R- +1S- +1T- +1U- +1V- +1W- +1X- +1Y- +1Z- +1[- +1\- +1]- +1^- +1_- +1`- +1a- +1b- +1c- +1d- +1e- +1f- +1g- +1h- +1i- +1j- +1k- +1l- +1m- +1n- +1o- +1p- +1q- +1r- +1s- +1t- +1u- +1v- +1w- +1x- +1y- +1z- +1{- +1|- +1}- +1~- +1!. +1". +1#. +1$. +1%. +1&. +1'. +1(. +1). +1*. +1+. +1,. +1-. +1.. +1/. +10. +11. +12. +13. +14. +15. +16. +17. +18. +19. +1:. +1;. +1<. +1=. +1>. +1?. +1@. +1A. +1B. +1C. +1D. +1E. +1F. +1G. +1H. +1I. +1J. +1K. +1L. +1M. +1N. +1O. +1P. +1Q. +1R. +1S. +1T. +1U. +1V. +1W. +1X. +1Y. +1Z. +1[. +1\. +1]. +1^. +1_. +1`. +1a. +1b. +1c. +1d. +1e. +1f. +1g. +1h. +1i. +1j. +1k. +1l. +1m. +1n. +1o. +1p. +1q. +1r. +1s. +1t. +1u. +1v. +1w. +1x. +1y. +1z. +1{. +1|. +1}. +1~. +1!/ +1"/ +1#/ +1$/ +1%/ +1&/ +1'/ +1(/ +1)/ +1*/ +1+/ +1,/ +1-/ +1./ +1// +10/ +11/ +12/ +13/ +14/ +15/ +16/ +17/ +18/ +19/ +1:/ +1;/ +1/ +1?/ +1@/ +1A/ +1B/ +1C/ +1D/ +1E/ +1F/ +1G/ +1H/ +1I/ +1J/ +1K/ +1L/ +1M/ +1N/ +1O/ +1P/ +1Q/ +1R/ +1S/ +1T/ +1U/ +1V/ +1W/ +1X/ +b1111111111111111111111111111111111111111111111111111111111111111 05 +b11111111 15 +1) +11+ +195 +1l5 +#500000 +1! +1# +1++ +135 +1f5 +b0 E +b0 F +b0 G +b0 H +b0 I +b0 J +b0 K +b0 L +b0 M +b0 N +b0 O +b0 P +b0 Q +b0 R +b0 S +b0 T +b0 W +b0 X +b0 Y +b0 Z +b0 [ +b0 \ +b0 ] +b0 ^ +b0 _ +b0 ` +b0 a +b0 b +b0 c +b0 d +b0 e +b0 f +sHdlNone\x20(0) i +b0 j +b0 k +b0 l +sBranch\x20(0) m +sUnconditional\x20(0) n +0k" +sWeaklyNotTaken\x20(1) W% +b0 (+ +b0 )+ +b0 M+ +b0 N+ +b0 O+ +b0 P+ +b0 Q+ +b0 R+ +b0 S+ +b0 T+ +b0 U+ +b0 V+ +b0 W+ +b0 X+ +b0 Y+ +b0 Z+ +b0 [+ +b0 \+ +b0 _+ +b0 `+ +b0 a+ +b0 b+ +b0 c+ +b0 d+ +b0 e+ +b0 f+ +b0 g+ +b0 h+ +b0 i+ +b0 j+ +b0 k+ +b0 l+ +b0 m+ +b0 n+ +sHdlNone\x20(0) q+ +b0 r+ +b0 s+ +b0 t+ +sBranch\x20(0) u+ +sUnconditional\x20(0) v+ +0s, +sWeaklyNotTaken\x20(1) _/ +b0 05 +b0 15 +#1000000 +0! +0" +0# +0$ +0++ +0,+ +035 +045 +0f5 +0g5 +#1500000 +1! +1# +1++ +135 +1f5 +#2000000 +0! +0# +0++ +035 +0f5 +#2500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) o +b0 p +b0 q +b0 r +sBranch\x20(0) s +sUnconditional\x20(0) t +0l" +sWeaklyNotTaken\x20(1) X% +sHdlNone\x20(0) w+ +b0 x+ +b0 y+ +b0 z+ +sBranch\x20(0) {+ +sUnconditional\x20(0) |+ +0t, +sWeaklyNotTaken\x20(1) `/ +#3000000 +0! +0# +0++ +035 +0f5 +#3500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) u +b0 v +b0 w +b0 x +sBranch\x20(0) y +sUnconditional\x20(0) z +0m" +sWeaklyNotTaken\x20(1) Y% +sHdlNone\x20(0) }+ +b0 ~+ +b0 !, +b0 ", +sBranch\x20(0) #, +sUnconditional\x20(0) $, +0u, +sWeaklyNotTaken\x20(1) a/ +#4000000 +0! +0# +0++ +035 +0f5 +#4500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) { +b0 | +b0 } +b0 ~ +sBranch\x20(0) !" +sUnconditional\x20(0) "" +0n" +sWeaklyNotTaken\x20(1) Z% +sHdlNone\x20(0) %, +b0 &, +b0 ', +b0 (, +sBranch\x20(0) ), +sUnconditional\x20(0) *, +0v, +sWeaklyNotTaken\x20(1) b/ +#5000000 +0! +0# +0++ +035 +0f5 +#5500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) #" +b0 $" +b0 %" +b0 &" +sBranch\x20(0) '" +sUnconditional\x20(0) (" +0o" +sWeaklyNotTaken\x20(1) [% +sHdlNone\x20(0) +, +b0 ,, +b0 -, +b0 ., +sBranch\x20(0) /, +sUnconditional\x20(0) 0, +0w, +sWeaklyNotTaken\x20(1) c/ +#6000000 +0! +0# +0++ +035 +0f5 +#6500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) )" +b0 *" +b0 +" +b0 ," +sBranch\x20(0) -" +sUnconditional\x20(0) ." +0p" +sWeaklyNotTaken\x20(1) \% +sHdlNone\x20(0) 1, +b0 2, +b0 3, +b0 4, +sBranch\x20(0) 5, +sUnconditional\x20(0) 6, +0x, +sWeaklyNotTaken\x20(1) d/ +#7000000 +0! +0# +0++ +035 +0f5 +#7500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) /" +b0 0" +b0 1" +b0 2" +sBranch\x20(0) 3" +sUnconditional\x20(0) 4" +0q" +sWeaklyNotTaken\x20(1) ]% +sHdlNone\x20(0) 7, +b0 8, +b0 9, +b0 :, +sBranch\x20(0) ;, +sUnconditional\x20(0) <, +0y, +sWeaklyNotTaken\x20(1) e/ +#8000000 +0! +0# +0++ +035 +0f5 +#8500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) 5" +b0 6" +b0 7" +b0 8" +sBranch\x20(0) 9" +sUnconditional\x20(0) :" +0r" +sWeaklyNotTaken\x20(1) ^% +sHdlNone\x20(0) =, +b0 >, +b0 ?, +b0 @, +sBranch\x20(0) A, +sUnconditional\x20(0) B, +0z, +sWeaklyNotTaken\x20(1) f/ +#9000000 +0! +0# +0++ +035 +0f5 +#9500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) ;" +b0 <" +b0 =" +b0 >" +sBranch\x20(0) ?" +sUnconditional\x20(0) @" +0s" +sWeaklyNotTaken\x20(1) _% +sHdlNone\x20(0) C, +b0 D, +b0 E, +b0 F, +sBranch\x20(0) G, +sUnconditional\x20(0) H, +0{, +sWeaklyNotTaken\x20(1) g/ +#10000000 +0! +0# +0++ +035 +0f5 +#10500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) A" +b0 B" +b0 C" +b0 D" +sBranch\x20(0) E" +sUnconditional\x20(0) F" +0t" +sWeaklyNotTaken\x20(1) `% +sHdlNone\x20(0) I, +b0 J, +b0 K, +b0 L, +sBranch\x20(0) M, +sUnconditional\x20(0) N, +0|, +sWeaklyNotTaken\x20(1) h/ +#11000000 +0! +0# +0++ +035 +0f5 +#11500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) G" +b0 H" +b0 I" +b0 J" +sBranch\x20(0) K" +sUnconditional\x20(0) L" +0u" +sWeaklyNotTaken\x20(1) a% +sHdlNone\x20(0) O, +b0 P, +b0 Q, +b0 R, +sBranch\x20(0) S, +sUnconditional\x20(0) T, +0}, +sWeaklyNotTaken\x20(1) i/ +#12000000 +0! +0# +0++ +035 +0f5 +#12500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) M" +b0 N" +b0 O" +b0 P" +sBranch\x20(0) Q" +sUnconditional\x20(0) R" +0v" +sWeaklyNotTaken\x20(1) b% +sHdlNone\x20(0) U, +b0 V, +b0 W, +b0 X, +sBranch\x20(0) Y, +sUnconditional\x20(0) Z, +0~, +sWeaklyNotTaken\x20(1) j/ +#13000000 +0! +0# +0++ +035 +0f5 +#13500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) S" +b0 T" +b0 U" +b0 V" +sBranch\x20(0) W" +sUnconditional\x20(0) X" +0w" +sWeaklyNotTaken\x20(1) c% +sHdlNone\x20(0) [, +b0 \, +b0 ], +b0 ^, +sBranch\x20(0) _, +sUnconditional\x20(0) `, +0!- +sWeaklyNotTaken\x20(1) k/ +#14000000 +0! +0# +0++ +035 +0f5 +#14500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) Y" +b0 Z" +b0 [" +b0 \" +sBranch\x20(0) ]" +sUnconditional\x20(0) ^" +0x" +sWeaklyNotTaken\x20(1) d% +sHdlNone\x20(0) a, +b0 b, +b0 c, +b0 d, +sBranch\x20(0) e, +sUnconditional\x20(0) f, +0"- +sWeaklyNotTaken\x20(1) l/ +#15000000 +0! +0# +0++ +035 +0f5 +#15500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) _" +b0 `" +b0 a" +b0 b" +sBranch\x20(0) c" +sUnconditional\x20(0) d" +0y" +sWeaklyNotTaken\x20(1) e% +sHdlNone\x20(0) g, +b0 h, +b0 i, +b0 j, +sBranch\x20(0) k, +sUnconditional\x20(0) l, +0#- +sWeaklyNotTaken\x20(1) m/ +#16000000 +0! +0# +0++ +035 +0f5 +#16500000 +1! +1# +1++ +135 +1f5 +sHdlNone\x20(0) e" +b0 f" +b0 g" +b0 h" +sBranch\x20(0) i" +sUnconditional\x20(0) j" +0z" +sWeaklyNotTaken\x20(1) f% +sHdlNone\x20(0) m, +b0 n, +b0 o, +b0 p, +sBranch\x20(0) q, +sUnconditional\x20(0) r, +0$- +sWeaklyNotTaken\x20(1) n/ +#17000000 +0! +0# +0++ +035 +0f5 +#17500000 +1! +1# +1++ +135 +1f5 +0{" +sWeaklyNotTaken\x20(1) g% +0%- +sWeaklyNotTaken\x20(1) o/ +#18000000 +0! +0# +0++ +035 +0f5 +#18500000 +1! +1# +1++ +135 +1f5 +0|" +sWeaklyNotTaken\x20(1) h% +0&- +sWeaklyNotTaken\x20(1) p/ +#19000000 +0! +0# +0++ +035 +0f5 +#19500000 +1! +1# +1++ +135 +1f5 +0}" +sWeaklyNotTaken\x20(1) i% +0'- +sWeaklyNotTaken\x20(1) q/ +#20000000 +0! +0# +0++ +035 +0f5 +#20500000 +1! +1# +1++ +135 +1f5 +0~" +sWeaklyNotTaken\x20(1) j% +0(- +sWeaklyNotTaken\x20(1) r/ +#21000000 +0! +0# +0++ +035 +0f5 +#21500000 +1! +1# +1++ +135 +1f5 +0!# +sWeaklyNotTaken\x20(1) k% +0)- +sWeaklyNotTaken\x20(1) s/ +#22000000 +0! +0# +0++ +035 +0f5 +#22500000 +1! +1# +1++ +135 +1f5 +0"# +sWeaklyNotTaken\x20(1) l% +0*- +sWeaklyNotTaken\x20(1) t/ +#23000000 +0! +0# +0++ +035 +0f5 +#23500000 +1! +1# +1++ +135 +1f5 +0## +sWeaklyNotTaken\x20(1) m% +0+- +sWeaklyNotTaken\x20(1) u/ +#24000000 +0! +0# +0++ +035 +0f5 +#24500000 +1! +1# +1++ +135 +1f5 +0$# +sWeaklyNotTaken\x20(1) n% +0,- +sWeaklyNotTaken\x20(1) v/ +#25000000 +0! +0# +0++ +035 +0f5 +#25500000 +1! +1# +1++ +135 +1f5 +0%# +sWeaklyNotTaken\x20(1) o% +0-- +sWeaklyNotTaken\x20(1) w/ +#26000000 +0! +0# +0++ +035 +0f5 +#26500000 +1! +1# +1++ +135 +1f5 +0&# +sWeaklyNotTaken\x20(1) p% +0.- +sWeaklyNotTaken\x20(1) x/ +#27000000 +0! +0# +0++ +035 +0f5 +#27500000 +1! +1# +1++ +135 +1f5 +0'# +sWeaklyNotTaken\x20(1) q% +0/- +sWeaklyNotTaken\x20(1) y/ +#28000000 +0! +0# +0++ +035 +0f5 +#28500000 +1! +1# +1++ +135 +1f5 +0(# +sWeaklyNotTaken\x20(1) r% +00- +sWeaklyNotTaken\x20(1) z/ +#29000000 +0! +0# +0++ +035 +0f5 +#29500000 +1! +1# +1++ +135 +1f5 +0)# +sWeaklyNotTaken\x20(1) s% +01- +sWeaklyNotTaken\x20(1) {/ +#30000000 +0! +0# +0++ +035 +0f5 +#30500000 +1! +1# +1++ +135 +1f5 +0*# +sWeaklyNotTaken\x20(1) t% +02- +sWeaklyNotTaken\x20(1) |/ +#31000000 +0! +0# +0++ +035 +0f5 +#31500000 +1! +1# +1++ +135 +1f5 +0+# +sWeaklyNotTaken\x20(1) u% +03- +sWeaklyNotTaken\x20(1) }/ +#32000000 +0! +0# +0++ +035 +0f5 +#32500000 +1! +1# +1++ +135 +1f5 +0,# +sWeaklyNotTaken\x20(1) v% +04- +sWeaklyNotTaken\x20(1) ~/ +#33000000 +0! +0# +0++ +035 +0f5 +#33500000 +1! +1# +1++ +135 +1f5 +0-# +sWeaklyNotTaken\x20(1) w% +05- +sWeaklyNotTaken\x20(1) !0 +#34000000 +0! +0# +0++ +035 +0f5 +#34500000 +1! +1# +1++ +135 +1f5 +0.# +sWeaklyNotTaken\x20(1) x% +06- +sWeaklyNotTaken\x20(1) "0 +#35000000 +0! +0# +0++ +035 +0f5 +#35500000 +1! +1# +1++ +135 +1f5 +0/# +sWeaklyNotTaken\x20(1) y% +07- +sWeaklyNotTaken\x20(1) #0 +#36000000 +0! +0# +0++ +035 +0f5 +#36500000 +1! +1# +1++ +135 +1f5 +00# +sWeaklyNotTaken\x20(1) z% +08- +sWeaklyNotTaken\x20(1) $0 +#37000000 +0! +0# +0++ +035 +0f5 +#37500000 +1! +1# +1++ +135 +1f5 +01# +sWeaklyNotTaken\x20(1) {% +09- +sWeaklyNotTaken\x20(1) %0 +#38000000 +0! +0# +0++ +035 +0f5 +#38500000 +1! +1# +1++ +135 +1f5 +02# +sWeaklyNotTaken\x20(1) |% +0:- +sWeaklyNotTaken\x20(1) &0 +#39000000 +0! +0# +0++ +035 +0f5 +#39500000 +1! +1# +1++ +135 +1f5 +03# +sWeaklyNotTaken\x20(1) }% +0;- +sWeaklyNotTaken\x20(1) '0 +#40000000 +0! +0# +0++ +035 +0f5 +#40500000 +1! +1# +1++ +135 +1f5 +04# +sWeaklyNotTaken\x20(1) ~% +0<- +sWeaklyNotTaken\x20(1) (0 +#41000000 +0! +0# +0++ +035 +0f5 +#41500000 +1! +1# +1++ +135 +1f5 +05# +sWeaklyNotTaken\x20(1) !& +0=- +sWeaklyNotTaken\x20(1) )0 +#42000000 +0! +0# +0++ +035 +0f5 +#42500000 +1! +1# +1++ +135 +1f5 +06# +sWeaklyNotTaken\x20(1) "& +0>- +sWeaklyNotTaken\x20(1) *0 +#43000000 +0! +0# +0++ +035 +0f5 +#43500000 +1! +1# +1++ +135 +1f5 +07# +sWeaklyNotTaken\x20(1) #& +0?- +sWeaklyNotTaken\x20(1) +0 +#44000000 +0! +0# +0++ +035 +0f5 +#44500000 +1! +1# +1++ +135 +1f5 +08# +sWeaklyNotTaken\x20(1) $& +0@- +sWeaklyNotTaken\x20(1) ,0 +#45000000 +0! +0# +0++ +035 +0f5 +#45500000 +1! +1# +1++ +135 +1f5 +09# +sWeaklyNotTaken\x20(1) %& +0A- +sWeaklyNotTaken\x20(1) -0 +#46000000 +0! +0# +0++ +035 +0f5 +#46500000 +1! +1# +1++ +135 +1f5 +0:# +sWeaklyNotTaken\x20(1) && +0B- +sWeaklyNotTaken\x20(1) .0 +#47000000 +0! +0# +0++ +035 +0f5 +#47500000 +1! +1# +1++ +135 +1f5 +0;# +sWeaklyNotTaken\x20(1) '& +0C- +sWeaklyNotTaken\x20(1) /0 +#48000000 +0! +0# +0++ +035 +0f5 +#48500000 +1! +1# +1++ +135 +1f5 +0<# +sWeaklyNotTaken\x20(1) (& +0D- +sWeaklyNotTaken\x20(1) 00 +#49000000 +0! +0# +0++ +035 +0f5 +#49500000 +1! +1# +1++ +135 +1f5 +0=# +sWeaklyNotTaken\x20(1) )& +0E- +sWeaklyNotTaken\x20(1) 10 +#50000000 +0! +0# +0++ +035 +0f5 +#50500000 +1! +1# +1++ +135 +1f5 +0># +sWeaklyNotTaken\x20(1) *& +0F- +sWeaklyNotTaken\x20(1) 20 +#51000000 +0! +0# +0++ +035 +0f5 +#51500000 +1! +1# +1++ +135 +1f5 +0?# +sWeaklyNotTaken\x20(1) +& +0G- +sWeaklyNotTaken\x20(1) 30 +#52000000 +0! +0# +0++ +035 +0f5 +#52500000 +1! +1# +1++ +135 +1f5 +0@# +sWeaklyNotTaken\x20(1) ,& +0H- +sWeaklyNotTaken\x20(1) 40 +#53000000 +0! +0# +0++ +035 +0f5 +#53500000 +1! +1# +1++ +135 +1f5 +0A# +sWeaklyNotTaken\x20(1) -& +0I- +sWeaklyNotTaken\x20(1) 50 +#54000000 +0! +0# +0++ +035 +0f5 +#54500000 +1! +1# +1++ +135 +1f5 +0B# +sWeaklyNotTaken\x20(1) .& +0J- +sWeaklyNotTaken\x20(1) 60 +#55000000 +0! +0# +0++ +035 +0f5 +#55500000 +1! +1# +1++ +135 +1f5 +0C# +sWeaklyNotTaken\x20(1) /& +0K- +sWeaklyNotTaken\x20(1) 70 +#56000000 +0! +0# +0++ +035 +0f5 +#56500000 +1! +1# +1++ +135 +1f5 +0D# +sWeaklyNotTaken\x20(1) 0& +0L- +sWeaklyNotTaken\x20(1) 80 +#57000000 +0! +0# +0++ +035 +0f5 +#57500000 +1! +1# +1++ +135 +1f5 +0E# +sWeaklyNotTaken\x20(1) 1& +0M- +sWeaklyNotTaken\x20(1) 90 +#58000000 +0! +0# +0++ +035 +0f5 +#58500000 +1! +1# +1++ +135 +1f5 +0F# +sWeaklyNotTaken\x20(1) 2& +0N- +sWeaklyNotTaken\x20(1) :0 +#59000000 +0! +0# +0++ +035 +0f5 +#59500000 +1! +1# +1++ +135 +1f5 +0G# +sWeaklyNotTaken\x20(1) 3& +0O- +sWeaklyNotTaken\x20(1) ;0 +#60000000 +0! +0# +0++ +035 +0f5 +#60500000 +1! +1# +1++ +135 +1f5 +0H# +sWeaklyNotTaken\x20(1) 4& +0P- +sWeaklyNotTaken\x20(1) <0 +#61000000 +0! +0# +0++ +035 +0f5 +#61500000 +1! +1# +1++ +135 +1f5 +0I# +sWeaklyNotTaken\x20(1) 5& +0Q- +sWeaklyNotTaken\x20(1) =0 +#62000000 +0! +0# +0++ +035 +0f5 +#62500000 +1! +1# +1++ +135 +1f5 +0J# +sWeaklyNotTaken\x20(1) 6& +0R- +sWeaklyNotTaken\x20(1) >0 +#63000000 +0! +0# +0++ +035 +0f5 +#63500000 +1! +1# +1++ +135 +1f5 +0K# +sWeaklyNotTaken\x20(1) 7& +0S- +sWeaklyNotTaken\x20(1) ?0 +#64000000 +0! +0# +0++ +035 +0f5 +#64500000 +1! +1# +1++ +135 +1f5 +0L# +sWeaklyNotTaken\x20(1) 8& +0T- +sWeaklyNotTaken\x20(1) @0 +#65000000 +0! +0# +0++ +035 +0f5 +#65500000 +1! +1# +1++ +135 +1f5 +0M# +sWeaklyNotTaken\x20(1) 9& +0U- +sWeaklyNotTaken\x20(1) A0 +#66000000 +0! +0# +0++ +035 +0f5 +#66500000 +1! +1# +1++ +135 +1f5 +0N# +sWeaklyNotTaken\x20(1) :& +0V- +sWeaklyNotTaken\x20(1) B0 +#67000000 +0! +0# +0++ +035 +0f5 +#67500000 +1! +1# +1++ +135 +1f5 +0O# +sWeaklyNotTaken\x20(1) ;& +0W- +sWeaklyNotTaken\x20(1) C0 +#68000000 +0! +0# +0++ +035 +0f5 +#68500000 +1! +1# +1++ +135 +1f5 +0P# +sWeaklyNotTaken\x20(1) <& +0X- +sWeaklyNotTaken\x20(1) D0 +#69000000 +0! +0# +0++ +035 +0f5 +#69500000 +1! +1# +1++ +135 +1f5 +0Q# +sWeaklyNotTaken\x20(1) =& +0Y- +sWeaklyNotTaken\x20(1) E0 +#70000000 +0! +0# +0++ +035 +0f5 +#70500000 +1! +1# +1++ +135 +1f5 +0R# +sWeaklyNotTaken\x20(1) >& +0Z- +sWeaklyNotTaken\x20(1) F0 +#71000000 +0! +0# +0++ +035 +0f5 +#71500000 +1! +1# +1++ +135 +1f5 +0S# +sWeaklyNotTaken\x20(1) ?& +0[- +sWeaklyNotTaken\x20(1) G0 +#72000000 +0! +0# +0++ +035 +0f5 +#72500000 +1! +1# +1++ +135 +1f5 +0T# +sWeaklyNotTaken\x20(1) @& +0\- +sWeaklyNotTaken\x20(1) H0 +#73000000 +0! +0# +0++ +035 +0f5 +#73500000 +1! +1# +1++ +135 +1f5 +0U# +sWeaklyNotTaken\x20(1) A& +0]- +sWeaklyNotTaken\x20(1) I0 +#74000000 +0! +0# +0++ +035 +0f5 +#74500000 +1! +1# +1++ +135 +1f5 +0V# +sWeaklyNotTaken\x20(1) B& +0^- +sWeaklyNotTaken\x20(1) J0 +#75000000 +0! +0# +0++ +035 +0f5 +#75500000 +1! +1# +1++ +135 +1f5 +0W# +sWeaklyNotTaken\x20(1) C& +0_- +sWeaklyNotTaken\x20(1) K0 +#76000000 +0! +0# +0++ +035 +0f5 +#76500000 +1! +1# +1++ +135 +1f5 +0X# +sWeaklyNotTaken\x20(1) D& +0`- +sWeaklyNotTaken\x20(1) L0 +#77000000 +0! +0# +0++ +035 +0f5 +#77500000 +1! +1# +1++ +135 +1f5 +0Y# +sWeaklyNotTaken\x20(1) E& +0a- +sWeaklyNotTaken\x20(1) M0 +#78000000 +0! +0# +0++ +035 +0f5 +#78500000 +1! +1# +1++ +135 +1f5 +0Z# +sWeaklyNotTaken\x20(1) F& +0b- +sWeaklyNotTaken\x20(1) N0 +#79000000 +0! +0# +0++ +035 +0f5 +#79500000 +1! +1# +1++ +135 +1f5 +0[# +sWeaklyNotTaken\x20(1) G& +0c- +sWeaklyNotTaken\x20(1) O0 +#80000000 +0! +0# +0++ +035 +0f5 +#80500000 +1! +1# +1++ +135 +1f5 +0\# +sWeaklyNotTaken\x20(1) H& +0d- +sWeaklyNotTaken\x20(1) P0 +#81000000 +0! +0# +0++ +035 +0f5 +#81500000 +1! +1# +1++ +135 +1f5 +0]# +sWeaklyNotTaken\x20(1) I& +0e- +sWeaklyNotTaken\x20(1) Q0 +#82000000 +0! +0# +0++ +035 +0f5 +#82500000 +1! +1# +1++ +135 +1f5 +0^# +sWeaklyNotTaken\x20(1) J& +0f- +sWeaklyNotTaken\x20(1) R0 +#83000000 +0! +0# +0++ +035 +0f5 +#83500000 +1! +1# +1++ +135 +1f5 +0_# +sWeaklyNotTaken\x20(1) K& +0g- +sWeaklyNotTaken\x20(1) S0 +#84000000 +0! +0# +0++ +035 +0f5 +#84500000 +1! +1# +1++ +135 +1f5 +0`# +sWeaklyNotTaken\x20(1) L& +0h- +sWeaklyNotTaken\x20(1) T0 +#85000000 +0! +0# +0++ +035 +0f5 +#85500000 +1! +1# +1++ +135 +1f5 +0a# +sWeaklyNotTaken\x20(1) M& +0i- +sWeaklyNotTaken\x20(1) U0 +#86000000 +0! +0# +0++ +035 +0f5 +#86500000 +1! +1# +1++ +135 +1f5 +0b# +sWeaklyNotTaken\x20(1) N& +0j- +sWeaklyNotTaken\x20(1) V0 +#87000000 +0! +0# +0++ +035 +0f5 +#87500000 +1! +1# +1++ +135 +1f5 +0c# +sWeaklyNotTaken\x20(1) O& +0k- +sWeaklyNotTaken\x20(1) W0 +#88000000 +0! +0# +0++ +035 +0f5 +#88500000 +1! +1# +1++ +135 +1f5 +0d# +sWeaklyNotTaken\x20(1) P& +0l- +sWeaklyNotTaken\x20(1) X0 +#89000000 +0! +0# +0++ +035 +0f5 +#89500000 +1! +1# +1++ +135 +1f5 +0e# +sWeaklyNotTaken\x20(1) Q& +0m- +sWeaklyNotTaken\x20(1) Y0 +#90000000 +0! +0# +0++ +035 +0f5 +#90500000 +1! +1# +1++ +135 +1f5 +0f# +sWeaklyNotTaken\x20(1) R& +0n- +sWeaklyNotTaken\x20(1) Z0 +#91000000 +0! +0# +0++ +035 +0f5 +#91500000 +1! +1# +1++ +135 +1f5 +0g# +sWeaklyNotTaken\x20(1) S& +0o- +sWeaklyNotTaken\x20(1) [0 +#92000000 +0! +0# +0++ +035 +0f5 +#92500000 +1! +1# +1++ +135 +1f5 +0h# +sWeaklyNotTaken\x20(1) T& +0p- +sWeaklyNotTaken\x20(1) \0 +#93000000 +0! +0# +0++ +035 +0f5 +#93500000 +1! +1# +1++ +135 +1f5 +0i# +sWeaklyNotTaken\x20(1) U& +0q- +sWeaklyNotTaken\x20(1) ]0 +#94000000 +0! +0# +0++ +035 +0f5 +#94500000 +1! +1# +1++ +135 +1f5 +0j# +sWeaklyNotTaken\x20(1) V& +0r- +sWeaklyNotTaken\x20(1) ^0 +#95000000 +0! +0# +0++ +035 +0f5 +#95500000 +1! +1# +1++ +135 +1f5 +0k# +sWeaklyNotTaken\x20(1) W& +0s- +sWeaklyNotTaken\x20(1) _0 +#96000000 +0! +0# +0++ +035 +0f5 +#96500000 +1! +1# +1++ +135 +1f5 +0l# +sWeaklyNotTaken\x20(1) X& +0t- +sWeaklyNotTaken\x20(1) `0 +#97000000 +0! +0# +0++ +035 +0f5 +#97500000 +1! +1# +1++ +135 +1f5 +0m# +sWeaklyNotTaken\x20(1) Y& +0u- +sWeaklyNotTaken\x20(1) a0 +#98000000 +0! +0# +0++ +035 +0f5 +#98500000 +1! +1# +1++ +135 +1f5 +0n# +sWeaklyNotTaken\x20(1) Z& +0v- +sWeaklyNotTaken\x20(1) b0 +#99000000 +0! +0# +0++ +035 +0f5 +#99500000 +1! +1# +1++ +135 +1f5 +0o# +sWeaklyNotTaken\x20(1) [& +0w- +sWeaklyNotTaken\x20(1) c0 +#100000000 +0! +0# +0++ +035 +0f5 +#100500000 +1! +1# +1++ +135 +1f5 +0p# +sWeaklyNotTaken\x20(1) \& +0x- +sWeaklyNotTaken\x20(1) d0 +#101000000 +0! +0# +0++ +035 +0f5 +#101500000 +1! +1# +1++ +135 +1f5 +0q# +sWeaklyNotTaken\x20(1) ]& +0y- +sWeaklyNotTaken\x20(1) e0 +#102000000 +0! +0# +0++ +035 +0f5 +#102500000 +1! +1# +1++ +135 +1f5 +0r# +sWeaklyNotTaken\x20(1) ^& +0z- +sWeaklyNotTaken\x20(1) f0 +#103000000 +0! +0# +0++ +035 +0f5 +#103500000 +1! +1# +1++ +135 +1f5 +0s# +sWeaklyNotTaken\x20(1) _& +0{- +sWeaklyNotTaken\x20(1) g0 +#104000000 +0! +0# +0++ +035 +0f5 +#104500000 +1! +1# +1++ +135 +1f5 +0t# +sWeaklyNotTaken\x20(1) `& +0|- +sWeaklyNotTaken\x20(1) h0 +#105000000 +0! +0# +0++ +035 +0f5 +#105500000 +1! +1# +1++ +135 +1f5 +0u# +sWeaklyNotTaken\x20(1) a& +0}- +sWeaklyNotTaken\x20(1) i0 +#106000000 +0! +0# +0++ +035 +0f5 +#106500000 +1! +1# +1++ +135 +1f5 +0v# +sWeaklyNotTaken\x20(1) b& +0~- +sWeaklyNotTaken\x20(1) j0 +#107000000 +0! +0# +0++ +035 +0f5 +#107500000 +1! +1# +1++ +135 +1f5 +0w# +sWeaklyNotTaken\x20(1) c& +0!. +sWeaklyNotTaken\x20(1) k0 +#108000000 +0! +0# +0++ +035 +0f5 +#108500000 +1! +1# +1++ +135 +1f5 +0x# +sWeaklyNotTaken\x20(1) d& +0". +sWeaklyNotTaken\x20(1) l0 +#109000000 +0! +0# +0++ +035 +0f5 +#109500000 +1! +1# +1++ +135 +1f5 +0y# +sWeaklyNotTaken\x20(1) e& +0#. +sWeaklyNotTaken\x20(1) m0 +#110000000 +0! +0# +0++ +035 +0f5 +#110500000 +1! +1# +1++ +135 +1f5 +0z# +sWeaklyNotTaken\x20(1) f& +0$. +sWeaklyNotTaken\x20(1) n0 +#111000000 +0! +0# +0++ +035 +0f5 +#111500000 +1! +1# +1++ +135 +1f5 +0{# +sWeaklyNotTaken\x20(1) g& +0%. +sWeaklyNotTaken\x20(1) o0 +#112000000 +0! +0# +0++ +035 +0f5 +#112500000 +1! +1# +1++ +135 +1f5 +0|# +sWeaklyNotTaken\x20(1) h& +0&. +sWeaklyNotTaken\x20(1) p0 +#113000000 +0! +0# +0++ +035 +0f5 +#113500000 +1! +1# +1++ +135 +1f5 +0}# +sWeaklyNotTaken\x20(1) i& +0'. +sWeaklyNotTaken\x20(1) q0 +#114000000 +0! +0# +0++ +035 +0f5 +#114500000 +1! +1# +1++ +135 +1f5 +0~# +sWeaklyNotTaken\x20(1) j& +0(. +sWeaklyNotTaken\x20(1) r0 +#115000000 +0! +0# +0++ +035 +0f5 +#115500000 +1! +1# +1++ +135 +1f5 +0!$ +sWeaklyNotTaken\x20(1) k& +0). +sWeaklyNotTaken\x20(1) s0 +#116000000 +0! +0# +0++ +035 +0f5 +#116500000 +1! +1# +1++ +135 +1f5 +0"$ +sWeaklyNotTaken\x20(1) l& +0*. +sWeaklyNotTaken\x20(1) t0 +#117000000 +0! +0# +0++ +035 +0f5 +#117500000 +1! +1# +1++ +135 +1f5 +0#$ +sWeaklyNotTaken\x20(1) m& +0+. +sWeaklyNotTaken\x20(1) u0 +#118000000 +0! +0# +0++ +035 +0f5 +#118500000 +1! +1# +1++ +135 +1f5 +0$$ +sWeaklyNotTaken\x20(1) n& +0,. +sWeaklyNotTaken\x20(1) v0 +#119000000 +0! +0# +0++ +035 +0f5 +#119500000 +1! +1# +1++ +135 +1f5 +0%$ +sWeaklyNotTaken\x20(1) o& +0-. +sWeaklyNotTaken\x20(1) w0 +#120000000 +0! +0# +0++ +035 +0f5 +#120500000 +1! +1# +1++ +135 +1f5 +0&$ +sWeaklyNotTaken\x20(1) p& +0.. +sWeaklyNotTaken\x20(1) x0 +#121000000 +0! +0# +0++ +035 +0f5 +#121500000 +1! +1# +1++ +135 +1f5 +0'$ +sWeaklyNotTaken\x20(1) q& +0/. +sWeaklyNotTaken\x20(1) y0 +#122000000 +0! +0# +0++ +035 +0f5 +#122500000 +1! +1# +1++ +135 +1f5 +0($ +sWeaklyNotTaken\x20(1) r& +00. +sWeaklyNotTaken\x20(1) z0 +#123000000 +0! +0# +0++ +035 +0f5 +#123500000 +1! +1# +1++ +135 +1f5 +0)$ +sWeaklyNotTaken\x20(1) s& +01. +sWeaklyNotTaken\x20(1) {0 +#124000000 +0! +0# +0++ +035 +0f5 +#124500000 +1! +1# +1++ +135 +1f5 +0*$ +sWeaklyNotTaken\x20(1) t& +02. +sWeaklyNotTaken\x20(1) |0 +#125000000 +0! +0# +0++ +035 +0f5 +#125500000 +1! +1# +1++ +135 +1f5 +0+$ +sWeaklyNotTaken\x20(1) u& +03. +sWeaklyNotTaken\x20(1) }0 +#126000000 +0! +0# +0++ +035 +0f5 +#126500000 +1! +1# +1++ +135 +1f5 +0,$ +sWeaklyNotTaken\x20(1) v& +04. +sWeaklyNotTaken\x20(1) ~0 +#127000000 +0! +0# +0++ +035 +0f5 +#127500000 +1! +1# +1++ +135 +1f5 +0-$ +sWeaklyNotTaken\x20(1) w& +05. +sWeaklyNotTaken\x20(1) !1 +#128000000 +0! +0# +0++ +035 +0f5 +#128500000 +1! +1# +1++ +135 +1f5 +0.$ +sWeaklyNotTaken\x20(1) x& +06. +sWeaklyNotTaken\x20(1) "1 +#129000000 +0! +0# +0++ +035 +0f5 +#129500000 +1! +1# +1++ +135 +1f5 +0/$ +sWeaklyNotTaken\x20(1) y& +07. +sWeaklyNotTaken\x20(1) #1 +#130000000 +0! +0# +0++ +035 +0f5 +#130500000 +1! +1# +1++ +135 +1f5 +00$ +sWeaklyNotTaken\x20(1) z& +08. +sWeaklyNotTaken\x20(1) $1 +#131000000 +0! +0# +0++ +035 +0f5 +#131500000 +1! +1# +1++ +135 +1f5 +01$ +sWeaklyNotTaken\x20(1) {& +09. +sWeaklyNotTaken\x20(1) %1 +#132000000 +0! +0# +0++ +035 +0f5 +#132500000 +1! +1# +1++ +135 +1f5 +02$ +sWeaklyNotTaken\x20(1) |& +0:. +sWeaklyNotTaken\x20(1) &1 +#133000000 +0! +0# +0++ +035 +0f5 +#133500000 +1! +1# +1++ +135 +1f5 +03$ +sWeaklyNotTaken\x20(1) }& +0;. +sWeaklyNotTaken\x20(1) '1 +#134000000 +0! +0# +0++ +035 +0f5 +#134500000 +1! +1# +1++ +135 +1f5 +04$ +sWeaklyNotTaken\x20(1) ~& +0<. +sWeaklyNotTaken\x20(1) (1 +#135000000 +0! +0# +0++ +035 +0f5 +#135500000 +1! +1# +1++ +135 +1f5 +05$ +sWeaklyNotTaken\x20(1) !' +0=. +sWeaklyNotTaken\x20(1) )1 +#136000000 +0! +0# +0++ +035 +0f5 +#136500000 +1! +1# +1++ +135 +1f5 +06$ +sWeaklyNotTaken\x20(1) "' +0>. +sWeaklyNotTaken\x20(1) *1 +#137000000 +0! +0# +0++ +035 +0f5 +#137500000 +1! +1# +1++ +135 +1f5 +07$ +sWeaklyNotTaken\x20(1) #' +0?. +sWeaklyNotTaken\x20(1) +1 +#138000000 +0! +0# +0++ +035 +0f5 +#138500000 +1! +1# +1++ +135 +1f5 +08$ +sWeaklyNotTaken\x20(1) $' +0@. +sWeaklyNotTaken\x20(1) ,1 +#139000000 +0! +0# +0++ +035 +0f5 +#139500000 +1! +1# +1++ +135 +1f5 +09$ +sWeaklyNotTaken\x20(1) %' +0A. +sWeaklyNotTaken\x20(1) -1 +#140000000 +0! +0# +0++ +035 +0f5 +#140500000 +1! +1# +1++ +135 +1f5 +0:$ +sWeaklyNotTaken\x20(1) &' +0B. +sWeaklyNotTaken\x20(1) .1 +#141000000 +0! +0# +0++ +035 +0f5 +#141500000 +1! +1# +1++ +135 +1f5 +0;$ +sWeaklyNotTaken\x20(1) '' +0C. +sWeaklyNotTaken\x20(1) /1 +#142000000 +0! +0# +0++ +035 +0f5 +#142500000 +1! +1# +1++ +135 +1f5 +0<$ +sWeaklyNotTaken\x20(1) (' +0D. +sWeaklyNotTaken\x20(1) 01 +#143000000 +0! +0# +0++ +035 +0f5 +#143500000 +1! +1# +1++ +135 +1f5 +0=$ +sWeaklyNotTaken\x20(1) )' +0E. +sWeaklyNotTaken\x20(1) 11 +#144000000 +0! +0# +0++ +035 +0f5 +#144500000 +1! +1# +1++ +135 +1f5 +0>$ +sWeaklyNotTaken\x20(1) *' +0F. +sWeaklyNotTaken\x20(1) 21 +#145000000 +0! +0# +0++ +035 +0f5 +#145500000 +1! +1# +1++ +135 +1f5 +0?$ +sWeaklyNotTaken\x20(1) +' +0G. +sWeaklyNotTaken\x20(1) 31 +#146000000 +0! +0# +0++ +035 +0f5 +#146500000 +1! +1# +1++ +135 +1f5 +0@$ +sWeaklyNotTaken\x20(1) ,' +0H. +sWeaklyNotTaken\x20(1) 41 +#147000000 +0! +0# +0++ +035 +0f5 +#147500000 +1! +1# +1++ +135 +1f5 +0A$ +sWeaklyNotTaken\x20(1) -' +0I. +sWeaklyNotTaken\x20(1) 51 +#148000000 +0! +0# +0++ +035 +0f5 +#148500000 +1! +1# +1++ +135 +1f5 +0B$ +sWeaklyNotTaken\x20(1) .' +0J. +sWeaklyNotTaken\x20(1) 61 +#149000000 +0! +0# +0++ +035 +0f5 +#149500000 +1! +1# +1++ +135 +1f5 +0C$ +sWeaklyNotTaken\x20(1) /' +0K. +sWeaklyNotTaken\x20(1) 71 +#150000000 +0! +0# +0++ +035 +0f5 +#150500000 +1! +1# +1++ +135 +1f5 +0D$ +sWeaklyNotTaken\x20(1) 0' +0L. +sWeaklyNotTaken\x20(1) 81 +#151000000 +0! +0# +0++ +035 +0f5 +#151500000 +1! +1# +1++ +135 +1f5 +0E$ +sWeaklyNotTaken\x20(1) 1' +0M. +sWeaklyNotTaken\x20(1) 91 +#152000000 +0! +0# +0++ +035 +0f5 +#152500000 +1! +1# +1++ +135 +1f5 +0F$ +sWeaklyNotTaken\x20(1) 2' +0N. +sWeaklyNotTaken\x20(1) :1 +#153000000 +0! +0# +0++ +035 +0f5 +#153500000 +1! +1# +1++ +135 +1f5 +0G$ +sWeaklyNotTaken\x20(1) 3' +0O. +sWeaklyNotTaken\x20(1) ;1 +#154000000 +0! +0# +0++ +035 +0f5 +#154500000 +1! +1# +1++ +135 +1f5 +0H$ +sWeaklyNotTaken\x20(1) 4' +0P. +sWeaklyNotTaken\x20(1) <1 +#155000000 +0! +0# +0++ +035 +0f5 +#155500000 +1! +1# +1++ +135 +1f5 +0I$ +sWeaklyNotTaken\x20(1) 5' +0Q. +sWeaklyNotTaken\x20(1) =1 +#156000000 +0! +0# +0++ +035 +0f5 +#156500000 +1! +1# +1++ +135 +1f5 +0J$ +sWeaklyNotTaken\x20(1) 6' +0R. +sWeaklyNotTaken\x20(1) >1 +#157000000 +0! +0# +0++ +035 +0f5 +#157500000 +1! +1# +1++ +135 +1f5 +0K$ +sWeaklyNotTaken\x20(1) 7' +0S. +sWeaklyNotTaken\x20(1) ?1 +#158000000 +0! +0# +0++ +035 +0f5 +#158500000 +1! +1# +1++ +135 +1f5 +0L$ +sWeaklyNotTaken\x20(1) 8' +0T. +sWeaklyNotTaken\x20(1) @1 +#159000000 +0! +0# +0++ +035 +0f5 +#159500000 +1! +1# +1++ +135 +1f5 +0M$ +sWeaklyNotTaken\x20(1) 9' +0U. +sWeaklyNotTaken\x20(1) A1 +#160000000 +0! +0# +0++ +035 +0f5 +#160500000 +1! +1# +1++ +135 +1f5 +0N$ +sWeaklyNotTaken\x20(1) :' +0V. +sWeaklyNotTaken\x20(1) B1 +#161000000 +0! +0# +0++ +035 +0f5 +#161500000 +1! +1# +1++ +135 +1f5 +0O$ +sWeaklyNotTaken\x20(1) ;' +0W. +sWeaklyNotTaken\x20(1) C1 +#162000000 +0! +0# +0++ +035 +0f5 +#162500000 +1! +1# +1++ +135 +1f5 +0P$ +sWeaklyNotTaken\x20(1) <' +0X. +sWeaklyNotTaken\x20(1) D1 +#163000000 +0! +0# +0++ +035 +0f5 +#163500000 +1! +1# +1++ +135 +1f5 +0Q$ +sWeaklyNotTaken\x20(1) =' +0Y. +sWeaklyNotTaken\x20(1) E1 +#164000000 +0! +0# +0++ +035 +0f5 +#164500000 +1! +1# +1++ +135 +1f5 +0R$ +sWeaklyNotTaken\x20(1) >' +0Z. +sWeaklyNotTaken\x20(1) F1 +#165000000 +0! +0# +0++ +035 +0f5 +#165500000 +1! +1# +1++ +135 +1f5 +0S$ +sWeaklyNotTaken\x20(1) ?' +0[. +sWeaklyNotTaken\x20(1) G1 +#166000000 +0! +0# +0++ +035 +0f5 +#166500000 +1! +1# +1++ +135 +1f5 +0T$ +sWeaklyNotTaken\x20(1) @' +0\. +sWeaklyNotTaken\x20(1) H1 +#167000000 +0! +0# +0++ +035 +0f5 +#167500000 +1! +1# +1++ +135 +1f5 +0U$ +sWeaklyNotTaken\x20(1) A' +0]. +sWeaklyNotTaken\x20(1) I1 +#168000000 +0! +0# +0++ +035 +0f5 +#168500000 +1! +1# +1++ +135 +1f5 +0V$ +sWeaklyNotTaken\x20(1) B' +0^. +sWeaklyNotTaken\x20(1) J1 +#169000000 +0! +0# +0++ +035 +0f5 +#169500000 +1! +1# +1++ +135 +1f5 +0W$ +sWeaklyNotTaken\x20(1) C' +0_. +sWeaklyNotTaken\x20(1) K1 +#170000000 +0! +0# +0++ +035 +0f5 +#170500000 +1! +1# +1++ +135 +1f5 +0X$ +sWeaklyNotTaken\x20(1) D' +0`. +sWeaklyNotTaken\x20(1) L1 +#171000000 +0! +0# +0++ +035 +0f5 +#171500000 +1! +1# +1++ +135 +1f5 +0Y$ +sWeaklyNotTaken\x20(1) E' +0a. +sWeaklyNotTaken\x20(1) M1 +#172000000 +0! +0# +0++ +035 +0f5 +#172500000 +1! +1# +1++ +135 +1f5 +0Z$ +sWeaklyNotTaken\x20(1) F' +0b. +sWeaklyNotTaken\x20(1) N1 +#173000000 +0! +0# +0++ +035 +0f5 +#173500000 +1! +1# +1++ +135 +1f5 +0[$ +sWeaklyNotTaken\x20(1) G' +0c. +sWeaklyNotTaken\x20(1) O1 +#174000000 +0! +0# +0++ +035 +0f5 +#174500000 +1! +1# +1++ +135 +1f5 +0\$ +sWeaklyNotTaken\x20(1) H' +0d. +sWeaklyNotTaken\x20(1) P1 +#175000000 +0! +0# +0++ +035 +0f5 +#175500000 +1! +1# +1++ +135 +1f5 +0]$ +sWeaklyNotTaken\x20(1) I' +0e. +sWeaklyNotTaken\x20(1) Q1 +#176000000 +0! +0# +0++ +035 +0f5 +#176500000 +1! +1# +1++ +135 +1f5 +0^$ +sWeaklyNotTaken\x20(1) J' +0f. +sWeaklyNotTaken\x20(1) R1 +#177000000 +0! +0# +0++ +035 +0f5 +#177500000 +1! +1# +1++ +135 +1f5 +0_$ +sWeaklyNotTaken\x20(1) K' +0g. +sWeaklyNotTaken\x20(1) S1 +#178000000 +0! +0# +0++ +035 +0f5 +#178500000 +1! +1# +1++ +135 +1f5 +0`$ +sWeaklyNotTaken\x20(1) L' +0h. +sWeaklyNotTaken\x20(1) T1 +#179000000 +0! +0# +0++ +035 +0f5 +#179500000 +1! +1# +1++ +135 +1f5 +0a$ +sWeaklyNotTaken\x20(1) M' +0i. +sWeaklyNotTaken\x20(1) U1 +#180000000 +0! +0# +0++ +035 +0f5 +#180500000 +1! +1# +1++ +135 +1f5 +0b$ +sWeaklyNotTaken\x20(1) N' +0j. +sWeaklyNotTaken\x20(1) V1 +#181000000 +0! +0# +0++ +035 +0f5 +#181500000 +1! +1# +1++ +135 +1f5 +0c$ +sWeaklyNotTaken\x20(1) O' +0k. +sWeaklyNotTaken\x20(1) W1 +#182000000 +0! +0# +0++ +035 +0f5 +#182500000 +1! +1# +1++ +135 +1f5 +0d$ +sWeaklyNotTaken\x20(1) P' +0l. +sWeaklyNotTaken\x20(1) X1 +#183000000 +0! +0# +0++ +035 +0f5 +#183500000 +1! +1# +1++ +135 +1f5 +0e$ +sWeaklyNotTaken\x20(1) Q' +0m. +sWeaklyNotTaken\x20(1) Y1 +#184000000 +0! +0# +0++ +035 +0f5 +#184500000 +1! +1# +1++ +135 +1f5 +0f$ +sWeaklyNotTaken\x20(1) R' +0n. +sWeaklyNotTaken\x20(1) Z1 +#185000000 +0! +0# +0++ +035 +0f5 +#185500000 +1! +1# +1++ +135 +1f5 +0g$ +sWeaklyNotTaken\x20(1) S' +0o. +sWeaklyNotTaken\x20(1) [1 +#186000000 +0! +0# +0++ +035 +0f5 +#186500000 +1! +1# +1++ +135 +1f5 +0h$ +sWeaklyNotTaken\x20(1) T' +0p. +sWeaklyNotTaken\x20(1) \1 +#187000000 +0! +0# +0++ +035 +0f5 +#187500000 +1! +1# +1++ +135 +1f5 +0i$ +sWeaklyNotTaken\x20(1) U' +0q. +sWeaklyNotTaken\x20(1) ]1 +#188000000 +0! +0# +0++ +035 +0f5 +#188500000 +1! +1# +1++ +135 +1f5 +0j$ +sWeaklyNotTaken\x20(1) V' +0r. +sWeaklyNotTaken\x20(1) ^1 +#189000000 +0! +0# +0++ +035 +0f5 +#189500000 +1! +1# +1++ +135 +1f5 +0k$ +sWeaklyNotTaken\x20(1) W' +0s. +sWeaklyNotTaken\x20(1) _1 +#190000000 +0! +0# +0++ +035 +0f5 +#190500000 +1! +1# +1++ +135 +1f5 +0l$ +sWeaklyNotTaken\x20(1) X' +0t. +sWeaklyNotTaken\x20(1) `1 +#191000000 +0! +0# +0++ +035 +0f5 +#191500000 +1! +1# +1++ +135 +1f5 +0m$ +sWeaklyNotTaken\x20(1) Y' +0u. +sWeaklyNotTaken\x20(1) a1 +#192000000 +0! +0# +0++ +035 +0f5 +#192500000 +1! +1# +1++ +135 +1f5 +0n$ +sWeaklyNotTaken\x20(1) Z' +0v. +sWeaklyNotTaken\x20(1) b1 +#193000000 +0! +0# +0++ +035 +0f5 +#193500000 +1! +1# +1++ +135 +1f5 +0o$ +sWeaklyNotTaken\x20(1) [' +0w. +sWeaklyNotTaken\x20(1) c1 +#194000000 +0! +0# +0++ +035 +0f5 +#194500000 +1! +1# +1++ +135 +1f5 +0p$ +sWeaklyNotTaken\x20(1) \' +0x. +sWeaklyNotTaken\x20(1) d1 +#195000000 +0! +0# +0++ +035 +0f5 +#195500000 +1! +1# +1++ +135 +1f5 +0q$ +sWeaklyNotTaken\x20(1) ]' +0y. +sWeaklyNotTaken\x20(1) e1 +#196000000 +0! +0# +0++ +035 +0f5 +#196500000 +1! +1# +1++ +135 +1f5 +0r$ +sWeaklyNotTaken\x20(1) ^' +0z. +sWeaklyNotTaken\x20(1) f1 +#197000000 +0! +0# +0++ +035 +0f5 +#197500000 +1! +1# +1++ +135 +1f5 +0s$ +sWeaklyNotTaken\x20(1) _' +0{. +sWeaklyNotTaken\x20(1) g1 +#198000000 +0! +0# +0++ +035 +0f5 +#198500000 +1! +1# +1++ +135 +1f5 +0t$ +sWeaklyNotTaken\x20(1) `' +0|. +sWeaklyNotTaken\x20(1) h1 +#199000000 +0! +0# +0++ +035 +0f5 +#199500000 +1! +1# +1++ +135 +1f5 +0u$ +sWeaklyNotTaken\x20(1) a' +0}. +sWeaklyNotTaken\x20(1) i1 +#200000000 +0! +0# +0++ +035 +0f5 +#200500000 +1! +1# +1++ +135 +1f5 +0v$ +sWeaklyNotTaken\x20(1) b' +0~. +sWeaklyNotTaken\x20(1) j1 +#201000000 +0! +0# +0++ +035 +0f5 +#201500000 +1! +1# +1++ +135 +1f5 +0w$ +sWeaklyNotTaken\x20(1) c' +0!/ +sWeaklyNotTaken\x20(1) k1 +#202000000 +0! +0# +0++ +035 +0f5 +#202500000 +1! +1# +1++ +135 +1f5 +0x$ +sWeaklyNotTaken\x20(1) d' +0"/ +sWeaklyNotTaken\x20(1) l1 +#203000000 +0! +0# +0++ +035 +0f5 +#203500000 +1! +1# +1++ +135 +1f5 +0y$ +sWeaklyNotTaken\x20(1) e' +0#/ +sWeaklyNotTaken\x20(1) m1 +#204000000 +0! +0# +0++ +035 +0f5 +#204500000 +1! +1# +1++ +135 +1f5 +0z$ +sWeaklyNotTaken\x20(1) f' +0$/ +sWeaklyNotTaken\x20(1) n1 +#205000000 +0! +0# +0++ +035 +0f5 +#205500000 +1! +1# +1++ +135 +1f5 +0{$ +sWeaklyNotTaken\x20(1) g' +0%/ +sWeaklyNotTaken\x20(1) o1 +#206000000 +0! +0# +0++ +035 +0f5 +#206500000 +1! +1# +1++ +135 +1f5 +0|$ +sWeaklyNotTaken\x20(1) h' +0&/ +sWeaklyNotTaken\x20(1) p1 +#207000000 +0! +0# +0++ +035 +0f5 +#207500000 +1! +1# +1++ +135 +1f5 +0}$ +sWeaklyNotTaken\x20(1) i' +0'/ +sWeaklyNotTaken\x20(1) q1 +#208000000 +0! +0# +0++ +035 +0f5 +#208500000 +1! +1# +1++ +135 +1f5 +0~$ +sWeaklyNotTaken\x20(1) j' +0(/ +sWeaklyNotTaken\x20(1) r1 +#209000000 +0! +0# +0++ +035 +0f5 +#209500000 +1! +1# +1++ +135 +1f5 +0!% +sWeaklyNotTaken\x20(1) k' +0)/ +sWeaklyNotTaken\x20(1) s1 +#210000000 +0! +0# +0++ +035 +0f5 +#210500000 +1! +1# +1++ +135 +1f5 +0"% +sWeaklyNotTaken\x20(1) l' +0*/ +sWeaklyNotTaken\x20(1) t1 +#211000000 +0! +0# +0++ +035 +0f5 +#211500000 +1! +1# +1++ +135 +1f5 +0#% +sWeaklyNotTaken\x20(1) m' +0+/ +sWeaklyNotTaken\x20(1) u1 +#212000000 +0! +0# +0++ +035 +0f5 +#212500000 +1! +1# +1++ +135 +1f5 +0$% +sWeaklyNotTaken\x20(1) n' +0,/ +sWeaklyNotTaken\x20(1) v1 +#213000000 +0! +0# +0++ +035 +0f5 +#213500000 +1! +1# +1++ +135 +1f5 +0%% +sWeaklyNotTaken\x20(1) o' +0-/ +sWeaklyNotTaken\x20(1) w1 +#214000000 +0! +0# +0++ +035 +0f5 +#214500000 +1! +1# +1++ +135 +1f5 +0&% +sWeaklyNotTaken\x20(1) p' +0./ +sWeaklyNotTaken\x20(1) x1 +#215000000 +0! +0# +0++ +035 +0f5 +#215500000 +1! +1# +1++ +135 +1f5 +0'% +sWeaklyNotTaken\x20(1) q' +0// +sWeaklyNotTaken\x20(1) y1 +#216000000 +0! +0# +0++ +035 +0f5 +#216500000 +1! +1# +1++ +135 +1f5 +0(% +sWeaklyNotTaken\x20(1) r' +00/ +sWeaklyNotTaken\x20(1) z1 +#217000000 +0! +0# +0++ +035 +0f5 +#217500000 +1! +1# +1++ +135 +1f5 +0)% +sWeaklyNotTaken\x20(1) s' +01/ +sWeaklyNotTaken\x20(1) {1 +#218000000 +0! +0# +0++ +035 +0f5 +#218500000 +1! +1# +1++ +135 +1f5 +0*% +sWeaklyNotTaken\x20(1) t' +02/ +sWeaklyNotTaken\x20(1) |1 +#219000000 +0! +0# +0++ +035 +0f5 +#219500000 +1! +1# +1++ +135 +1f5 +0+% +sWeaklyNotTaken\x20(1) u' +03/ +sWeaklyNotTaken\x20(1) }1 +#220000000 +0! +0# +0++ +035 +0f5 +#220500000 +1! +1# +1++ +135 +1f5 +0,% +sWeaklyNotTaken\x20(1) v' +04/ +sWeaklyNotTaken\x20(1) ~1 +#221000000 +0! +0# +0++ +035 +0f5 +#221500000 +1! +1# +1++ +135 +1f5 +0-% +sWeaklyNotTaken\x20(1) w' +05/ +sWeaklyNotTaken\x20(1) !2 +#222000000 +0! +0# +0++ +035 +0f5 +#222500000 +1! +1# +1++ +135 +1f5 +0.% +sWeaklyNotTaken\x20(1) x' +06/ +sWeaklyNotTaken\x20(1) "2 +#223000000 +0! +0# +0++ +035 +0f5 +#223500000 +1! +1# +1++ +135 +1f5 +0/% +sWeaklyNotTaken\x20(1) y' +07/ +sWeaklyNotTaken\x20(1) #2 +#224000000 +0! +0# +0++ +035 +0f5 +#224500000 +1! +1# +1++ +135 +1f5 +00% +sWeaklyNotTaken\x20(1) z' +08/ +sWeaklyNotTaken\x20(1) $2 +#225000000 +0! +0# +0++ +035 +0f5 +#225500000 +1! +1# +1++ +135 +1f5 +01% +sWeaklyNotTaken\x20(1) {' +09/ +sWeaklyNotTaken\x20(1) %2 +#226000000 +0! +0# +0++ +035 +0f5 +#226500000 +1! +1# +1++ +135 +1f5 +02% +sWeaklyNotTaken\x20(1) |' +0:/ +sWeaklyNotTaken\x20(1) &2 +#227000000 +0! +0# +0++ +035 +0f5 +#227500000 +1! +1# +1++ +135 +1f5 +03% +sWeaklyNotTaken\x20(1) }' +0;/ +sWeaklyNotTaken\x20(1) '2 +#228000000 +0! +0# +0++ +035 +0f5 +#228500000 +1! +1# +1++ +135 +1f5 +04% +sWeaklyNotTaken\x20(1) ~' +0/ +sWeaklyNotTaken\x20(1) *2 +#231000000 +0! +0# +0++ +035 +0f5 +#231500000 +1! +1# +1++ +135 +1f5 +07% +sWeaklyNotTaken\x20(1) #( +0?/ +sWeaklyNotTaken\x20(1) +2 +#232000000 +0! +0# +0++ +035 +0f5 +#232500000 +1! +1# +1++ +135 +1f5 +08% +sWeaklyNotTaken\x20(1) $( +0@/ +sWeaklyNotTaken\x20(1) ,2 +#233000000 +0! +0# +0++ +035 +0f5 +#233500000 +1! +1# +1++ +135 +1f5 +09% +sWeaklyNotTaken\x20(1) %( +0A/ +sWeaklyNotTaken\x20(1) -2 +#234000000 +0! +0# +0++ +035 +0f5 +#234500000 +1! +1# +1++ +135 +1f5 +0:% +sWeaklyNotTaken\x20(1) &( +0B/ +sWeaklyNotTaken\x20(1) .2 +#235000000 +0! +0# +0++ +035 +0f5 +#235500000 +1! +1# +1++ +135 +1f5 +0;% +sWeaklyNotTaken\x20(1) '( +0C/ +sWeaklyNotTaken\x20(1) /2 +#236000000 +0! +0# +0++ +035 +0f5 +#236500000 +1! +1# +1++ +135 +1f5 +0<% +sWeaklyNotTaken\x20(1) (( +0D/ +sWeaklyNotTaken\x20(1) 02 +#237000000 +0! +0# +0++ +035 +0f5 +#237500000 +1! +1# +1++ +135 +1f5 +0=% +sWeaklyNotTaken\x20(1) )( +0E/ +sWeaklyNotTaken\x20(1) 12 +#238000000 +0! +0# +0++ +035 +0f5 +#238500000 +1! +1# +1++ +135 +1f5 +0>% +sWeaklyNotTaken\x20(1) *( +0F/ +sWeaklyNotTaken\x20(1) 22 +#239000000 +0! +0# +0++ +035 +0f5 +#239500000 +1! +1# +1++ +135 +1f5 +0?% +sWeaklyNotTaken\x20(1) +( +0G/ +sWeaklyNotTaken\x20(1) 32 +#240000000 +0! +0# +0++ +035 +0f5 +#240500000 +1! +1# +1++ +135 +1f5 +0@% +sWeaklyNotTaken\x20(1) ,( +0H/ +sWeaklyNotTaken\x20(1) 42 +#241000000 +0! +0# +0++ +035 +0f5 +#241500000 +1! +1# +1++ +135 +1f5 +0A% +sWeaklyNotTaken\x20(1) -( +0I/ +sWeaklyNotTaken\x20(1) 52 +#242000000 +0! +0# +0++ +035 +0f5 +#242500000 +1! +1# +1++ +135 +1f5 +0B% +sWeaklyNotTaken\x20(1) .( +0J/ +sWeaklyNotTaken\x20(1) 62 +#243000000 +0! +0# +0++ +035 +0f5 +#243500000 +1! +1# +1++ +135 +1f5 +0C% +sWeaklyNotTaken\x20(1) /( +0K/ +sWeaklyNotTaken\x20(1) 72 +#244000000 +0! +0# +0++ +035 +0f5 +#244500000 +1! +1# +1++ +135 +1f5 +0D% +sWeaklyNotTaken\x20(1) 0( +0L/ +sWeaklyNotTaken\x20(1) 82 +#245000000 +0! +0# +0++ +035 +0f5 +#245500000 +1! +1# +1++ +135 +1f5 +0E% +sWeaklyNotTaken\x20(1) 1( +0M/ +sWeaklyNotTaken\x20(1) 92 +#246000000 +0! +0# +0++ +035 +0f5 +#246500000 +1! +1# +1++ +135 +1f5 +0F% +sWeaklyNotTaken\x20(1) 2( +0N/ +sWeaklyNotTaken\x20(1) :2 +#247000000 +0! +0# +0++ +035 +0f5 +#247500000 +1! +1# +1++ +135 +1f5 +0G% +sWeaklyNotTaken\x20(1) 3( +0O/ +sWeaklyNotTaken\x20(1) ;2 +#248000000 +0! +0# +0++ +035 +0f5 +#248500000 +1! +1# +1++ +135 +1f5 +0H% +sWeaklyNotTaken\x20(1) 4( +0P/ +sWeaklyNotTaken\x20(1) <2 +#249000000 +0! +0# +0++ +035 +0f5 +#249500000 +1! +1# +1++ +135 +1f5 +0I% +sWeaklyNotTaken\x20(1) 5( +0Q/ +sWeaklyNotTaken\x20(1) =2 +#250000000 +0! +0# +0++ +035 +0f5 +#250500000 +1! +1# +1++ +135 +1f5 +0J% +sWeaklyNotTaken\x20(1) 6( +0R/ +sWeaklyNotTaken\x20(1) >2 +#251000000 +0! +0# +0++ +035 +0f5 +#251500000 +1! +1# +1++ +135 +1f5 +0K% +sWeaklyNotTaken\x20(1) 7( +0S/ +sWeaklyNotTaken\x20(1) ?2 +#252000000 +0! +0# +0++ +035 +0f5 +#252500000 +1! +1# +1++ +135 +1f5 +0L% +sWeaklyNotTaken\x20(1) 8( +0T/ +sWeaklyNotTaken\x20(1) @2 +#253000000 +0! +0# +0++ +035 +0f5 +#253500000 +1! +1# +1++ +135 +1f5 +0M% +sWeaklyNotTaken\x20(1) 9( +0U/ +sWeaklyNotTaken\x20(1) A2 +#254000000 +0! +0# +0++ +035 +0f5 +#254500000 +1! +1# +1++ +135 +1f5 +0N% +sWeaklyNotTaken\x20(1) :( +0V/ +sWeaklyNotTaken\x20(1) B2 +#255000000 +0! +0# +0++ +035 +0f5 +#255500000 +1! +1# +1++ +135 +1f5 +0O% +sWeaklyNotTaken\x20(1) ;( +0W/ +sWeaklyNotTaken\x20(1) C2 +#256000000 +0! +0# +0++ +035 +0f5 +#256500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) % +0P% +sWeaklyNotTaken\x20(1) <( +b1 #+ +b1000 (+ +b1 )+ +sHdlSome\x20(1) -+ +0X/ +sWeaklyNotTaken\x20(1) D2 +b1 +5 +b1000 05 +b1 15 +sHdlSome\x20(1) 55 +sHdlSome\x20(1) h5 +#257000000 +0! +0# +0++ +035 +0f5 +#257500000 +1! +1# +1++ +135 +1f5 +1D +1L+ +1T5 +1)6 +b1000 & +b1 ' +b1 ?( +b10 #+ +b10000 (+ +b10 )+ +b1000 .+ +b1 /+ +b1 G2 +b10 +5 +b10000 05 +b10 15 +b1000 65 +b1 75 +b1000 i5 +b1 j5 +b10 V5 +b1 d5 +b10 +6 +b1 96 +#258000000 +0! +0# +0++ +035 +0f5 +#258500000 +1! +1# +1++ +135 +1f5 +b10000 & +b10 ' +b10 @( +b11 #+ +b11000 (+ +b11 )+ +b10000 .+ +b10 /+ +b10 H2 +b11 +5 +b11000 05 +b11 15 +b10000 65 +b10 75 +b10000 i5 +b10 j5 +b1 V5 +b1000 X5 +b110 Y5 +b1 Z5 +b10 d5 +b1 +6 +b1000 -6 +b110 .6 +b1 /6 +b10 96 +#259000000 +0! +0# +0++ +035 +0f5 +#259500000 +1! +1# +1++ +135 +1f5 +b11000 & +b11 ' +b11 A( +b100 #+ +b100000 (+ +b100 )+ +b11000 .+ +b11 /+ +b11 I2 +b100 +5 +b100000 05 +b100 15 +b11000 65 +b11 75 +b11000 i5 +b11 j5 +sHdlSome\x20(1) + +b100 0 +b1 8 +b100 9 +b100 : +b10 A +sHdlSome\x20(1) 3+ +b100 8+ +b1 @+ +b100 A+ +b100 B+ +b10 I+ +sHdlSome\x20(1) ;5 +b100 @5 +b1 H5 +b100 I5 +b100 J5 +b10 Q5 +b0 V5 +b101 Y5 +b10000 [5 +b1 \5 +b10 ]5 +b11 d5 +sHdlSome\x20(1) n5 +b100 s5 +b1 {5 +b100 |5 +b100 }5 +b10 &6 +b0 +6 +b101 .6 +b10000 06 +b1 16 +b10 26 +b11 96 +#260000000 +0! +0# +0++ +035 +0f5 +#260500000 +1! +1# +1++ +135 +1f5 +b100000 & +b100 ' +b100 B( +b101 #+ +b101000 (+ +b101 )+ +b100000 .+ +b100 /+ +b100 J2 +b101 +5 +b101000 05 +b101 15 +b100000 65 +b100 75 +b100000 i5 +b100 j5 +sHdlNone\x20(0) + +b0 0 +b0 8 +b0 9 +b0 : +b0 A +sHdlNone\x20(0) 3+ +b0 8+ +b0 @+ +b0 A+ +b0 B+ +b0 I+ +sHdlNone\x20(0) ;5 +b0 @5 +b0 H5 +b0 I5 +b0 J5 +b0 Q5 +b1000 U5 +b100 V5 +b1 W5 +b10000 X5 +b0 Y5 +b10 Z5 +b11000 [5 +b101 \5 +b11 ]5 +sHdlNone\x20(0) n5 +b0 s5 +b0 {5 +b0 |5 +b0 }5 +b0 &6 +b1000 *6 +b100 +6 +b1 ,6 +b10000 -6 +b0 .6 +b10 /6 +b11000 06 +b101 16 +b11 26 +#261000000 +0! +0# +0++ +035 +0f5 +#261500000 +1! +1# +1++ +135 +1f5 +b101000 & +b101 ' +b101 C( +b110 #+ +b110000 (+ +b110 )+ +b101000 .+ +b101 /+ +b101 K2 +b110 +5 +b110000 05 +b110 15 +b101000 65 +b101 75 +b101000 i5 +b101 j5 +b11 V5 +b100 \5 +b100000 ^5 +b100 `5 +b100 d5 +b11 +6 +b100 16 +b100000 36 +b100 56 +b100 96 +#262000000 +0! +0# +0++ +035 +0f5 +#262500000 +1! +1# +1++ +135 +1f5 +b110000 & +b110 ' +b110 D( +b111 #+ +b111000 (+ +b111 )+ +b110000 .+ +b110 /+ +b110 L2 +b111 +5 +b111000 05 +b111 15 +b110000 65 +b110 75 +b110000 i5 +b110 j5 +0) +01+ +095 +b10 V5 +b11 \5 +b101000 a5 +b11 b5 +b101 c5 +b101 d5 +0l5 +b10 +6 +b11 16 +b101000 66 +b11 76 +b101 86 +b101 96 +#263000000 +0! +0# +0++ +035 +0f5 +#263500000 +1! +1# +1++ +135 +1f5 +b111000 & +b111 ' +b111000 .+ +b111 /+ +b111000 65 +b111 75 +b111000 i5 +b111 j5 +b1 V5 +b10 \5 +b10 b5 +b1 +6 +b10 16 +b10 76 +#264000000 +0! +0# +0++ +035 +0f5 +#264500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) + +b1 , +b1 - +b10 . +b1000 / +b100 0 +sBranchCond\x20(2) 1 +b100 2 +b100 3 +b100 4 +b100 5 +b100 6 +b1 7 +b11 8 +b1100 9 +b100 : +sCall\x20(5) ; +b11000 < +b11000 = +b11000 > +b11000 ? +b11000 @ +b10 A +sHdlSome\x20(1) 3+ +b1 4+ +b1 5+ +b10 6+ +b1000 7+ +b100 8+ +sBranchCond\x20(2) 9+ +b100 :+ +b100 ;+ +b100 <+ +b100 =+ +b100 >+ +b1 ?+ +b11 @+ +b1100 A+ +b100 B+ +sCall\x20(5) C+ +b11000 D+ +b11000 E+ +b11000 F+ +b11000 G+ +b11000 H+ +b10 I+ +sHdlSome\x20(1) ;5 +b1 <5 +b1 =5 +b10 >5 +b1000 ?5 +b100 @5 +sBranchCond\x20(2) A5 +b100 B5 +b100 C5 +b100 D5 +b100 E5 +b100 F5 +b1 G5 +b11 H5 +b1100 I5 +b100 J5 +sCall\x20(5) K5 +b11000 L5 +b11000 M5 +b11000 N5 +b11000 O5 +b11000 P5 +b10 Q5 +b0 V5 +b1 \5 +b1 b5 +sHdlSome\x20(1) n5 +b1 o5 +b1 p5 +b10 q5 +b1000 r5 +b100 s5 +sBranchCond\x20(2) t5 +b100 u5 +b100 v5 +b100 w5 +b100 x5 +b100 y5 +b1 z5 +b11 {5 +b1100 |5 +b100 }5 +sCall\x20(5) ~5 +b11000 !6 +b11000 "6 +b11000 #6 +b11000 $6 +b11000 %6 +b10 &6 +b0 +6 +b1 16 +b1 76 +#265000000 +0! +0# +0++ +035 +0f5 +#265500000 +1! +1# +1++ +135 +1f5 +1) +b10 , +b10 - +b100 . +b10000 / +sBranch\x20(1) 1 +b10000 2 +b10000 3 +b10000 4 +b10000 5 +b10000 6 +b10 7 +b101 8 +b10100 9 +sBranch\x20(1) ; +b10000 < +b10000 = +b10000 > +b10000 ? +b10000 @ +11+ +b10 4+ +b10 5+ +b100 6+ +b10000 7+ +sBranch\x20(1) 9+ +b10000 :+ +b10000 ;+ +b10000 <+ +b10000 =+ +b10000 >+ +b10 ?+ +b101 @+ +b10100 A+ +sBranch\x20(1) C+ +b10000 D+ +b10000 E+ +b10000 F+ +b10000 G+ +b10000 H+ +195 +b10 <5 +b10 =5 +b100 >5 +b10000 ?5 +sBranch\x20(1) A5 +b10000 B5 +b10000 C5 +b10000 D5 +b10000 E5 +b10000 F5 +b10 G5 +b101 H5 +b10100 I5 +sBranch\x20(1) K5 +b10000 L5 +b10000 M5 +b10000 N5 +b10000 O5 +b10000 P5 +b10000 U5 +b10 W5 +b11000 X5 +b11 Z5 +b100000 [5 +b0 \5 +b100 ]5 +b101000 ^5 +b101 `5 +b0 a5 +b0 b5 +b0 c5 +b100 d5 +1l5 +b10 o5 +b10 p5 +b100 q5 +b10000 r5 +sBranch\x20(1) t5 +b10000 u5 +b10000 v5 +b10000 w5 +b10000 x5 +b10000 y5 +b10 z5 +b101 {5 +b10100 |5 +sBranch\x20(1) ~5 +b10000 !6 +b10000 "6 +b10000 #6 +b10000 $6 +b10000 %6 +b10000 *6 +b10 ,6 +b11000 -6 +b11 /6 +b100000 06 +b0 16 +b100 26 +b101000 36 +b101 56 +b0 66 +b0 76 +b0 86 +b100 96 +#266000000 +0! +0# +0++ +035 +0f5 +#266500000 +1! +1# +1++ +135 +1f5 +b111 E( +b1000 #+ +b1000000 (+ +b1000 )+ +b111 M2 +b1000 +5 +b1000000 05 +b1000 15 +b11 , +b11 - +b110 . +b11000 / +b11100 2 +b11100 3 +b11100 4 +b11100 5 +b11100 6 +b11 7 +b111 8 +b11100 9 +sRet\x20(9) ; +b0 < +b0 = +b0 > +b0 ? +b0 @ +b11 4+ +b11 5+ +b110 6+ +b11000 7+ +b11100 :+ +b11100 ;+ +b11100 <+ +b11100 =+ +b11100 >+ +b11 ?+ +b111 @+ +b11100 A+ +sRet\x20(9) C+ +b0 D+ +b0 E+ +b0 F+ +b0 G+ +b0 H+ +b11 <5 +b11 =5 +b110 >5 +b11000 ?5 +b11100 B5 +b11100 C5 +b11100 D5 +b11100 E5 +b11100 F5 +b11 G5 +b111 H5 +b11100 I5 +sRet\x20(9) K5 +b0 L5 +b0 M5 +b0 N5 +b0 O5 +b0 P5 +b11000 U5 +b11 W5 +b100000 X5 +b100 Z5 +b101000 [5 +b101 ]5 +b111000 ^5 +b111 _5 +b111 `5 +b11 o5 +b11 p5 +b110 q5 +b11000 r5 +b11100 u5 +b11100 v5 +b11100 w5 +b11100 x5 +b11100 y5 +b11 z5 +b111 {5 +b11100 |5 +sRet\x20(9) ~5 +b0 !6 +b0 "6 +b0 #6 +b0 $6 +b0 %6 +b11000 *6 +b11 ,6 +b100000 -6 +b100 /6 +b101000 06 +b101 26 +b111000 36 +b111 46 +b111 56 +#267000000 +0! +0# +0++ +035 +0f5 +#267500000 +1! +1# +1++ +135 +1f5 +b1000000 & +b1000 ' +b1000 F( +b1001 #+ +b1001000 (+ +b1001 )+ +b1000000 .+ +b1000 /+ +b1000 N2 +b1001 +5 +b1001000 05 +b1001 15 +b1000000 65 +b1000 75 +b1000000 i5 +b1000 j5 +b100 , +b100 - +b1000 . +b100000 / +b0 0 +sInterrupt\x20(11) 1 +b11111111000000000000000000000000 2 +b11111111000000000000000000000000 3 +b11111111000000000000000000000000 4 +b11111111000000000000000000000000 5 +b11111111000000000000000000000000 6 +b0 7 +b0 8 +b0 9 +b0 : +sNonBranch\x20(0) ; +b1 A +b100 4+ +b100 5+ +b1000 6+ +b100000 7+ +b0 8+ +sInterrupt\x20(11) 9+ +b11111111000000000000000000000000 :+ +b11111111000000000000000000000000 ;+ +b11111111000000000000000000000000 <+ +b11111111000000000000000000000000 =+ +b11111111000000000000000000000000 >+ +b0 ?+ +b0 @+ +b0 A+ +b0 B+ +sNonBranch\x20(0) C+ +b1 I+ +b100 <5 +b100 =5 +b1000 >5 +b100000 ?5 +b0 @5 +sInterrupt\x20(11) A5 +b11111111000000000000000000000000 B5 +b11111111000000000000000000000000 C5 +b11111111000000000000000000000000 D5 +b11111111000000000000000000000000 E5 +b11111111000000000000000000000000 F5 +b0 G5 +b0 H5 +b0 I5 +b0 J5 +sNonBranch\x20(0) K5 +b1 Q5 +b100000 U5 +b100 W5 +b101000 X5 +b101 Z5 +b111000 [5 +b110 \5 +b111 ]5 +b10 _5 +b100 o5 +b100 p5 +b1000 q5 +b100000 r5 +b0 s5 +sInterrupt\x20(11) t5 +b11111111000000000000000000000000 u5 +b11111111000000000000000000000000 v5 +b11111111000000000000000000000000 w5 +b11111111000000000000000000000000 x5 +b11111111000000000000000000000000 y5 +b0 z5 +b0 {5 +b0 |5 +b0 }5 +sNonBranch\x20(0) ~5 +b1 &6 +b100000 *6 +b100 ,6 +b101000 -6 +b101 /6 +b111000 06 +b110 16 +b111 26 +b10 46 +#268000000 +0! +0# +0++ +035 +0f5 +#268500000 +1! +1# +1++ +135 +1f5 +b1001000 & +b1001 ' +b1001 G( +b1010 #+ +b1010000 (+ +b1010 )+ +b1001000 .+ +b1001 /+ +b1001 O2 +b1010 +5 +b1010000 05 +b1010 15 +b1001000 65 +b1001 75 +b1001000 i5 +b1001 j5 +b101 , +b101 - +b1001 . +b101000 / +b101 4+ +b101 5+ +b1001 6+ +b101000 7+ +b101 <5 +b101 =5 +b1001 >5 +b101000 ?5 +b101000 U5 +b101 W5 +b111000 X5 +b101 Y5 +b111 Z5 +b1 \5 +b1000000 ^5 +b110 _5 +b1000 `5 +b101 o5 +b101 p5 +b1001 q5 +b101000 r5 +b101000 *6 +b101 ,6 +b111000 -6 +b101 .6 +b111 /6 +b1 16 +b1000000 36 +b110 46 +b1000 56 +#269000000 +0! +0# +0++ +035 +0f5 +#269500000 +1! +1# +1++ +135 +1f5 +b1010000 & +b1010 ' +b1010 H( +b1011 #+ +b1011000 (+ +b1011 )+ +b1010000 .+ +b1010 /+ +b1010 P2 +b1011 +5 +b1011000 05 +b1011 15 +b1010000 65 +b1010 75 +b1010000 i5 +b1010 j5 +sHdlNone\x20(0) + +b0 , +b0 - +b0 . +b0 / +sNonBranch\x20(0) 1 +b0 2 +b0 3 +b0 4 +b0 5 +b0 6 +b0 A +sHdlNone\x20(0) 3+ +b0 4+ +b0 5+ +b0 6+ +b0 7+ +sNonBranch\x20(0) 9+ +b0 :+ +b0 ;+ +b0 <+ +b0 =+ +b0 >+ +b0 I+ +sHdlNone\x20(0) ;5 +b0 <5 +b0 =5 +b0 >5 +b0 ?5 +sNonBranch\x20(0) A5 +b0 B5 +b0 C5 +b0 D5 +b0 E5 +b0 F5 +b0 Q5 +b111000 U5 +b100 V5 +b111 W5 +b0 Y5 +b1000000 [5 +b101 \5 +b1000 ]5 +b1001000 ^5 +b1 _5 +b1001 `5 +sHdlNone\x20(0) n5 +b0 o5 +b0 p5 +b0 q5 +b0 r5 +sNonBranch\x20(0) t5 +b0 u5 +b0 v5 +b0 w5 +b0 x5 +b0 y5 +b0 &6 +b111000 *6 +b100 +6 +b111 ,6 +b0 .6 +b1000000 06 +b101 16 +b1000 26 +b1001000 36 +b1 46 +b1001 56 +#270000000 +0! +0# +0++ +035 +0f5 +#270500000 +1! +1# +1++ +135 +1f5 +b1011000 & +b1011 ' +b1011 I( +b1100 #+ +b1100000 (+ +b1100 )+ +b1011000 .+ +b1011 /+ +b1011 Q2 +b1100 +5 +b1100000 05 +b1100 15 +b1011000 65 +b1011 75 +b1011000 i5 +b1011 j5 +0) +01+ +095 +b11 V5 +b100 \5 +b0 _5 +b1010000 a5 +b11 b5 +b1010 c5 +b101 d5 +0l5 +b11 +6 +b100 16 +b0 46 +b1010000 66 +b11 76 +b1010 86 +b101 96 +#271000000 +0! +0# +0++ +035 +0f5 +#271500000 +1! +1# +1++ +135 +1f5 +b1100000 & +b1100 ' +b1100000 .+ +b1100 /+ +b1100000 65 +b1100 75 +b1100000 i5 +b1100 j5 +b10 V5 +b11 \5 +b10 b5 +b10 +6 +b11 16 +b10 76 +#272000000 +0! +0# +0++ +035 +0f5 +#272500000 +1! +1# +1++ +135 +1f5 +b1 V5 +b10 \5 +b1 b5 +b1 +6 +b10 16 +b1 76 +#273000000 +0! +0# +0++ +035 +0f5 +#273500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) + +b111 , +b111 - +b1010 . +b111000 / +sInterrupt\x20(11) 1 +b11111111000000000000000000000000 2 +b11111111000000000000000000000000 3 +b11111111000000000000000000000000 4 +b11111111000000000000000000000000 5 +b11111111000000000000000000000000 6 +b1 A +sHdlSome\x20(1) 3+ +b111 4+ +b111 5+ +b1010 6+ +b111000 7+ +sInterrupt\x20(11) 9+ +b11111111000000000000000000000000 :+ +b11111111000000000000000000000000 ;+ +b11111111000000000000000000000000 <+ +b11111111000000000000000000000000 =+ +b11111111000000000000000000000000 >+ +b1 I+ +sHdlSome\x20(1) ;5 +b111 <5 +b111 =5 +b1010 >5 +b111000 ?5 +sInterrupt\x20(11) A5 +b11111111000000000000000000000000 B5 +b11111111000000000000000000000000 C5 +b11111111000000000000000000000000 D5 +b11111111000000000000000000000000 E5 +b11111111000000000000000000000000 F5 +b1 Q5 +b0 V5 +b1 \5 +b0 b5 +sHdlSome\x20(1) n5 +b111 o5 +b111 p5 +b1010 q5 +b111000 r5 +sInterrupt\x20(11) t5 +b11111111000000000000000000000000 u5 +b11111111000000000000000000000000 v5 +b11111111000000000000000000000000 w5 +b11111111000000000000000000000000 x5 +b11111111000000000000000000000000 y5 +b1 &6 +b0 +6 +b1 16 +b0 76 +#274000000 +0! +0# +0++ +035 +0f5 +#274500000 +1! +1# +1++ +135 +1f5 +1) +b1011 . +11+ +b1011 6+ +195 +b1011 >5 +b1000000 X5 +b1000 Z5 +b1001000 [5 +b0 \5 +b1001 ]5 +b1010000 ^5 +b1010 `5 +b0 a5 +b0 c5 +b100 d5 +1l5 +b1011 q5 +b1000000 -6 +b1000 /6 +b1001000 06 +b0 16 +b1001 26 +b1010000 36 +b1010 56 +b0 66 +b0 86 +b100 96 +#275000000 +0! +0# +0++ +035 +0f5 +#275500000 +1! +1# +1++ +135 +1f5 +b1100 J( +b1101 #+ +b1101000 (+ +b1101 )+ +b1100 R2 +b1101 +5 +b1101000 05 +b1101 15 +b1000 , +b1000 - +b1100 . +b1000000 / +b1000 4+ +b1000 5+ +b1100 6+ +b1000000 7+ +b1000 <5 +b1000 =5 +b1100 >5 +b1000000 ?5 +b1000000 U5 +b1000 W5 +b1001000 X5 +b1001 Z5 +b1010000 [5 +b1010 ]5 +b1100000 ^5 +b110 _5 +b1100 `5 +b1000 o5 +b1000 p5 +b1100 q5 +b1000000 r5 +b1000000 *6 +b1000 ,6 +b1001000 -6 +b1001 /6 +b1010000 06 +b1010 26 +b1100000 36 +b110 46 +b1100 56 +#276000000 +0! +0# +0++ +035 +0f5 +#276500000 +1! +1# +1++ +135 +1f5 +b1101000 & +b1101 ' +b1101 K( +b1110 #+ +b1110000 (+ +b1110 )+ +b1101000 .+ +b1101 /+ +b1101 S2 +b1110 +5 +b1110000 05 +b1110 15 +b1101000 65 +b1101 75 +b1101000 i5 +b1101 j5 +b1001 , +b1001 - +b1101 . +b1001000 / +b1001 4+ +b1001 5+ +b1101 6+ +b1001000 7+ +b1001 <5 +b1001 =5 +b1101 >5 +b1001000 ?5 +b1001000 U5 +b1001 W5 +b1010000 X5 +b1010 Z5 +b1100000 [5 +b101 \5 +b1100 ]5 +b1 _5 +b1001 o5 +b1001 p5 +b1101 q5 +b1001000 r5 +b1001000 *6 +b1001 ,6 +b1010000 -6 +b1010 /6 +b1100000 06 +b101 16 +b1100 26 +b1 46 +#277000000 +0! +0# +0++ +035 +0f5 +#277500000 +1! +1# +1++ +135 +1f5 +b1110000 & +b1110 ' +b1110 L( +b1111 #+ +b1111000 (+ +b1111 )+ +b1110000 .+ +b1110 /+ +b1110 T2 +b1111 +5 +b1111000 05 +b1111 15 +b1110000 65 +b1110 75 +b1110000 i5 +b1110 j5 +b1010 , +b1010 - +b1110 . +b1010000 / +b1010 4+ +b1010 5+ +b1110 6+ +b1010000 7+ +b1010 <5 +b1010 =5 +b1110 >5 +b1010000 ?5 +b1010000 U5 +b1010 W5 +b1100000 X5 +b100 Y5 +b1100 Z5 +b0 \5 +b1101000 ^5 +b101 _5 +b1101 `5 +b1010 o5 +b1010 p5 +b1110 q5 +b1010000 r5 +b1010000 *6 +b1010 ,6 +b1100000 -6 +b100 .6 +b1100 /6 +b0 16 +b1101000 36 +b101 46 +b1101 56 +#278000000 +0! +0# +0++ +035 +0f5 +#278500000 +1! +1# +1++ +135 +1f5 +b1111000 & +b1111 ' +b1111 M( +b10000 #+ +b10000000 (+ +b10000 )+ +b1111000 .+ +b1111 /+ +b1111 U2 +b10000 +5 +b10000000 05 +b10000 15 +b1111000 65 +b1111 75 +b1111000 i5 +b1111 j5 +sHdlNone\x20(0) + +b0 , +b0 - +b0 . +b0 / +sNonBranch\x20(0) 1 +b0 2 +b0 3 +b0 4 +b0 5 +b0 6 +b0 A +sHdlNone\x20(0) 3+ +b0 4+ +b0 5+ +b0 6+ +b0 7+ +sNonBranch\x20(0) 9+ +b0 :+ +b0 ;+ +b0 <+ +b0 =+ +b0 >+ +b0 I+ +sHdlNone\x20(0) ;5 +b0 <5 +b0 =5 +b0 >5 +b0 ?5 +sNonBranch\x20(0) A5 +b0 B5 +b0 C5 +b0 D5 +b0 E5 +b0 F5 +b0 Q5 +b1100000 U5 +b11 V5 +b1100 W5 +b0 Y5 +b1101000 [5 +b100 \5 +b1101 ]5 +b1110000 ^5 +b0 _5 +b1110 `5 +sHdlNone\x20(0) n5 +b0 o5 +b0 p5 +b0 q5 +b0 r5 +sNonBranch\x20(0) t5 +b0 u5 +b0 v5 +b0 w5 +b0 x5 +b0 y5 +b0 &6 +b1100000 *6 +b11 +6 +b1100 ,6 +b0 .6 +b1101000 06 +b100 16 +b1101 26 +b1110000 36 +b0 46 +b1110 56 +#279000000 +0! +0# +0++ +035 +0f5 +#279500000 +1! +1# +1++ +135 +1f5 +b10000000 & +b10000 ' +b10000 N( +b10001 #+ +b10001000 (+ +b10001 )+ +b10000000 .+ +b10000 /+ +b10000 V2 +b10001 +5 +b10001000 05 +b10001 15 +b10000000 65 +b10000 75 +b10000000 i5 +b10000 j5 +0) +01+ +095 +b10 V5 +b11 \5 +b1111000 a5 +b11 b5 +b1111 c5 +b101 d5 +0l5 +b10 +6 +b11 16 +b1111000 66 +b11 76 +b1111 86 +b101 96 +#280000000 +0! +0# +0++ +035 +0f5 +#280500000 +1! +1# +1++ +135 +1f5 +b10001000 & +b10001 ' +b10001000 .+ +b10001 /+ +b10001000 65 +b10001 75 +b10001000 i5 +b10001 j5 +b1 V5 +b10 \5 +b10 b5 +b1 +6 +b10 16 +b10 76 +#281000000 +0! +0# +0++ +035 +0f5 +#281500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) + +b1100 , +b1100 - +b1111 . +b1100000 / +sInterrupt\x20(11) 1 +b11111111000000000000000000000000 2 +b11111111000000000000000000000000 3 +b11111111000000000000000000000000 4 +b11111111000000000000000000000000 5 +b11111111000000000000000000000000 6 +b1 A +sHdlSome\x20(1) 3+ +b1100 4+ +b1100 5+ +b1111 6+ +b1100000 7+ +sInterrupt\x20(11) 9+ +b11111111000000000000000000000000 :+ +b11111111000000000000000000000000 ;+ +b11111111000000000000000000000000 <+ +b11111111000000000000000000000000 =+ +b11111111000000000000000000000000 >+ +b1 I+ +sHdlSome\x20(1) ;5 +b1100 <5 +b1100 =5 +b1111 >5 +b1100000 ?5 +sInterrupt\x20(11) A5 +b11111111000000000000000000000000 B5 +b11111111000000000000000000000000 C5 +b11111111000000000000000000000000 D5 +b11111111000000000000000000000000 E5 +b11111111000000000000000000000000 F5 +b1 Q5 +b0 V5 +b1 \5 +b1 b5 +sHdlSome\x20(1) n5 +b1100 o5 +b1100 p5 +b1111 q5 +b1100000 r5 +sInterrupt\x20(11) t5 +b11111111000000000000000000000000 u5 +b11111111000000000000000000000000 v5 +b11111111000000000000000000000000 w5 +b11111111000000000000000000000000 x5 +b11111111000000000000000000000000 y5 +b1 &6 +b0 +6 +b1 16 +b1 76 +#282000000 +0! +0# +0++ +035 +0f5 +#282500000 +1! +1# +1++ +135 +1f5 +1) +b10000 . +11+ +b10000 6+ +195 +b10000 >5 +b1101000 X5 +b1101 Z5 +b1110000 [5 +b0 \5 +b1110 ]5 +b1111000 ^5 +b1111 `5 +b0 a5 +b0 b5 +b0 c5 +b100 d5 +1l5 +b10000 q5 +b1101000 -6 +b1101 /6 +b1110000 06 +b0 16 +b1110 26 +b1111000 36 +b1111 56 +b0 66 +b0 76 +b0 86 +b100 96 +#283000000 +0! +0# +0++ +035 +0f5 +#283500000 +1! +1# +1++ +135 +1f5 +b10001 O( +b10010 #+ +b10010000 (+ +b10010 )+ +b10001 W2 +b10010 +5 +b10010000 05 +b10010 15 +b1101 , +b1101 - +b10001 . +b1101000 / +b1101 4+ +b1101 5+ +b10001 6+ +b1101000 7+ +b1101 <5 +b1101 =5 +b10001 >5 +b1101000 ?5 +b1101000 U5 +b1101 W5 +b1110000 X5 +b1110 Z5 +b1111000 [5 +b1111 ]5 +b10001000 ^5 +b111 _5 +b10001 `5 +b1101 o5 +b1101 p5 +b10001 q5 +b1101000 r5 +b1101000 *6 +b1101 ,6 +b1110000 -6 +b1110 /6 +b1111000 06 +b1111 26 +b10001000 36 +b111 46 +b10001 56 +#284000000 +0! +0# +0++ +035 +0f5 +#284500000 +1! +1# +1++ +135 +1f5 +b10010000 & +b10010 ' +b10010 P( +b10011 #+ +b10011000 (+ +b10011 )+ +b10010000 .+ +b10010 /+ +b10010 X2 +b10011 +5 +b10011000 05 +b10011 15 +b10010000 65 +b10010 75 +b10010000 i5 +b10010 j5 +b1110 , +b1110 - +b10010 . +b1110000 / +b1110 4+ +b1110 5+ +b10010 6+ +b1110000 7+ +b1110 <5 +b1110 =5 +b10010 >5 +b1110000 ?5 +b1110000 U5 +b1110 W5 +b1111000 X5 +b1111 Z5 +b10001000 [5 +b110 \5 +b10001 ]5 +b10 _5 +b1110 o5 +b1110 p5 +b10010 q5 +b1110000 r5 +b1110000 *6 +b1110 ,6 +b1111000 -6 +b1111 /6 +b10001000 06 +b110 16 +b10001 26 +b10 46 +#285000000 +0! +0# +0++ +035 +0f5 +#285500000 +1! +1# +1++ +135 +1f5 +b10011000 & +b10011 ' +b10011 Q( +b10100 #+ +b10100000 (+ +b10100 )+ +b10011000 .+ +b10011 /+ +b10011 Y2 +b10100 +5 +b10100000 05 +b10100 15 +b10011000 65 +b10011 75 +b10011000 i5 +b10011 j5 +b1111 , +b1111 - +b10011 . +b1111000 / +b1111 4+ +b1111 5+ +b10011 6+ +b1111000 7+ +b1111 <5 +b1111 =5 +b10011 >5 +b1111000 ?5 +b1111000 U5 +b1111 W5 +b10001000 X5 +b101 Y5 +b10001 Z5 +b1 \5 +b10010000 ^5 +b110 _5 +b10010 `5 +b1111 o5 +b1111 p5 +b10011 q5 +b1111000 r5 +b1111000 *6 +b1111 ,6 +b10001000 -6 +b101 .6 +b10001 /6 +b1 16 +b10010000 36 +b110 46 +b10010 56 +#286000000 +0! +0# +0++ +035 +0f5 +#286500000 +1! +1# +1++ +135 +1f5 +b10100000 & +b10100 ' +b10100 R( +b10101 #+ +b10101000 (+ +b10101 )+ +b10100000 .+ +b10100 /+ +b10100 Z2 +b10101 +5 +b10101000 05 +b10101 15 +b10100000 65 +b10100 75 +b10100000 i5 +b10100 j5 +sHdlNone\x20(0) + +b0 , +b0 - +b0 . +b0 / +sNonBranch\x20(0) 1 +b0 2 +b0 3 +b0 4 +b0 5 +b0 6 +b0 A +sHdlNone\x20(0) 3+ +b0 4+ +b0 5+ +b0 6+ +b0 7+ +sNonBranch\x20(0) 9+ +b0 :+ +b0 ;+ +b0 <+ +b0 =+ +b0 >+ +b0 I+ +sHdlNone\x20(0) ;5 +b0 <5 +b0 =5 +b0 >5 +b0 ?5 +sNonBranch\x20(0) A5 +b0 B5 +b0 C5 +b0 D5 +b0 E5 +b0 F5 +b0 Q5 +b10001000 U5 +b100 V5 +b10001 W5 +b0 Y5 +b10010000 [5 +b101 \5 +b10010 ]5 +b10011000 ^5 +b1 _5 +b10011 `5 +sHdlNone\x20(0) n5 +b0 o5 +b0 p5 +b0 q5 +b0 r5 +sNonBranch\x20(0) t5 +b0 u5 +b0 v5 +b0 w5 +b0 x5 +b0 y5 +b0 &6 +b10001000 *6 +b100 +6 +b10001 ,6 +b0 .6 +b10010000 06 +b101 16 +b10010 26 +b10011000 36 +b1 46 +b10011 56 +#287000000 +0! +0# +0++ +035 +0f5 +#287500000 +1! +1# +1++ +135 +1f5 +b10101000 & +b10101 ' +b10101 S( +b10110 #+ +b10110000 (+ +b10110 )+ +b10101000 .+ +b10101 /+ +b10101 [2 +b10110 +5 +b10110000 05 +b10110 15 +b10101000 65 +b10101 75 +b10101000 i5 +b10101 j5 +0) +01+ +095 +b11 V5 +b100 \5 +b0 _5 +b10100000 a5 +b11 b5 +b10100 c5 +b101 d5 +0l5 +b11 +6 +b100 16 +b0 46 +b10100000 66 +b11 76 +b10100 86 +b101 96 +#288000000 +0! +0# +0++ +035 +0f5 +#288500000 +1! +1# +1++ +135 +1f5 +b10110000 & +b10110 ' +b10110000 .+ +b10110 /+ +b10110000 65 +b10110 75 +b10110000 i5 +b10110 j5 +b10 V5 +b11 \5 +b10 b5 +b10 +6 +b11 16 +b10 76 +#289000000 +0! +0# +0++ +035 +0f5 +#289500000 +1! +1# +1++ +135 +1f5 +b1 V5 +b10 \5 +b1 b5 +b1 +6 +b10 16 +b1 76 +#290000000 +0! +0# +0++ +035 +0f5 +#290500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) + +b10001 , +b10001 - +b10100 . +b10001000 / +sInterrupt\x20(11) 1 +b11111111000000000000000000000000 2 +b11111111000000000000000000000000 3 +b11111111000000000000000000000000 4 +b11111111000000000000000000000000 5 +b11111111000000000000000000000000 6 +b1 A +sHdlSome\x20(1) 3+ +b10001 4+ +b10001 5+ +b10100 6+ +b10001000 7+ +sInterrupt\x20(11) 9+ +b11111111000000000000000000000000 :+ +b11111111000000000000000000000000 ;+ +b11111111000000000000000000000000 <+ +b11111111000000000000000000000000 =+ +b11111111000000000000000000000000 >+ +b1 I+ +sHdlSome\x20(1) ;5 +b10001 <5 +b10001 =5 +b10100 >5 +b10001000 ?5 +sInterrupt\x20(11) A5 +b11111111000000000000000000000000 B5 +b11111111000000000000000000000000 C5 +b11111111000000000000000000000000 D5 +b11111111000000000000000000000000 E5 +b11111111000000000000000000000000 F5 +b1 Q5 +b0 V5 +b1 \5 +b0 b5 +sHdlSome\x20(1) n5 +b10001 o5 +b10001 p5 +b10100 q5 +b10001000 r5 +sInterrupt\x20(11) t5 +b11111111000000000000000000000000 u5 +b11111111000000000000000000000000 v5 +b11111111000000000000000000000000 w5 +b11111111000000000000000000000000 x5 +b11111111000000000000000000000000 y5 +b1 &6 +b0 +6 +b1 16 +b0 76 +#291000000 +0! +0# +0++ +035 +0f5 +#291500000 +1! +1# +1++ +135 +1f5 +1) +b10101 . +11+ +b10101 6+ +195 +b10101 >5 +b10010000 X5 +b10010 Z5 +b10011000 [5 +b0 \5 +b10011 ]5 +b10100000 ^5 +b10100 `5 +b0 a5 +b0 c5 +b100 d5 +1l5 +b10101 q5 +b10010000 -6 +b10010 /6 +b10011000 06 +b0 16 +b10011 26 +b10100000 36 +b10100 56 +b0 66 +b0 86 +b100 96 +#292000000 +0! +0# +0++ +035 +0f5 +#292500000 +1! +1# +1++ +135 +1f5 +b10110 T( +b10111 #+ +b10111000 (+ +b10111 )+ +b10110 \2 +b10111 +5 +b10111000 05 +b10111 15 +b10010 , +b10010 - +b10110 . +b10010000 / +b10010 4+ +b10010 5+ +b10110 6+ +b10010000 7+ +b10010 <5 +b10010 =5 +b10110 >5 +b10010000 ?5 +b10010000 U5 +b10010 W5 +b10011000 X5 +b10011 Z5 +b10100000 [5 +b10100 ]5 +b10110000 ^5 +b110 _5 +b10110 `5 +b10010 o5 +b10010 p5 +b10110 q5 +b10010000 r5 +b10010000 *6 +b10010 ,6 +b10011000 -6 +b10011 /6 +b10100000 06 +b10100 26 +b10110000 36 +b110 46 +b10110 56 +#293000000 +0! +0# +0++ +035 +0f5 +#293500000 +1! +1# +1++ +135 +1f5 +b10111000 & +b10111 ' +b10111 U( +b11000 #+ +b11000000 (+ +b11000 )+ +b10111000 .+ +b10111 /+ +b10111 ]2 +b11000 +5 +b11000000 05 +b11000 15 +b10111000 65 +b10111 75 +b10111000 i5 +b10111 j5 +b10011 , +b10011 - +b10111 . +b10011000 / +b10011 4+ +b10011 5+ +b10111 6+ +b10011000 7+ +b10011 <5 +b10011 =5 +b10111 >5 +b10011000 ?5 +b10011000 U5 +b10011 W5 +b10100000 X5 +b10100 Z5 +b10110000 [5 +b101 \5 +b10110 ]5 +b10 _5 +b10011 o5 +b10011 p5 +b10111 q5 +b10011000 r5 +b10011000 *6 +b10011 ,6 +b10100000 -6 +b10100 /6 +b10110000 06 +b101 16 +b10110 26 +b10 46 +#294000000 +0! +0# +0++ +035 +0f5 +#294500000 +1! +1# +1++ +135 +1f5 +b11000000 & +b11000 ' +b11000 V( +b11001 #+ +b11001000 (+ +b11001 )+ +b11000000 .+ +b11000 /+ +b11000 ^2 +b11001 +5 +b11001000 05 +b11001 15 +b11000000 65 +b11000 75 +b11000000 i5 +b11000 j5 +b10100 , +b10100 - +b11000 . +b10100000 / +b10100 4+ +b10100 5+ +b11000 6+ +b10100000 7+ +b10100 <5 +b10100 =5 +b11000 >5 +b10100000 ?5 +b10100000 U5 +b10100 W5 +b10110000 X5 +b100 Y5 +b10110 Z5 +b1 \5 +b10111000 ^5 +b101 _5 +b10111 `5 +b10100 o5 +b10100 p5 +b11000 q5 +b10100000 r5 +b10100000 *6 +b10100 ,6 +b10110000 -6 +b100 .6 +b10110 /6 +b1 16 +b10111000 36 +b101 46 +b10111 56 +#295000000 +0! +0# +0++ +035 +0f5 +#295500000 +1! +1# +1++ +135 +1f5 +b11001000 & +b11001 ' +b11001 W( +b11010 #+ +b11010000 (+ +b11010 )+ +b11001000 .+ +b11001 /+ +b11001 _2 +b11010 +5 +b11010000 05 +b11010 15 +b11001000 65 +b11001 75 +b11001000 i5 +b11001 j5 +sHdlNone\x20(0) + +b0 , +b0 - +b0 . +b0 / +sNonBranch\x20(0) 1 +b0 2 +b0 3 +b0 4 +b0 5 +b0 6 +b0 A +sHdlNone\x20(0) 3+ +b0 4+ +b0 5+ +b0 6+ +b0 7+ +sNonBranch\x20(0) 9+ +b0 :+ +b0 ;+ +b0 <+ +b0 =+ +b0 >+ +b0 I+ +sHdlNone\x20(0) ;5 +b0 <5 +b0 =5 +b0 >5 +b0 ?5 +sNonBranch\x20(0) A5 +b0 B5 +b0 C5 +b0 D5 +b0 E5 +b0 F5 +b0 Q5 +b10110000 U5 +b11 V5 +b10110 W5 +b0 Y5 +b10111000 [5 +b100 \5 +b10111 ]5 +b11000000 ^5 +b0 _5 +b11000 `5 +sHdlNone\x20(0) n5 +b0 o5 +b0 p5 +b0 q5 +b0 r5 +sNonBranch\x20(0) t5 +b0 u5 +b0 v5 +b0 w5 +b0 x5 +b0 y5 +b0 &6 +b10110000 *6 +b11 +6 +b10110 ,6 +b0 .6 +b10111000 06 +b100 16 +b10111 26 +b11000000 36 +b0 46 +b11000 56 +#296000000 +0! +0# +0++ +035 +0f5 +#296500000 +1! +1# +1++ +135 +1f5 +b11010000 & +b11010 ' +b11010 X( +b11011 #+ +b11011000 (+ +b11011 )+ +b11010000 .+ +b11010 /+ +b11010 `2 +b11011 +5 +b11011000 05 +b11011 15 +b11010000 65 +b11010 75 +b11010000 i5 +b11010 j5 +0) +01+ +095 +b10 V5 +b11 \5 +b11001000 a5 +b11 b5 +b11001 c5 +b101 d5 +0l5 +b10 +6 +b11 16 +b11001000 66 +b11 76 +b11001 86 +b101 96 +#297000000 +0! +0# +0++ +035 +0f5 +#297500000 +1! +1# +1++ +135 +1f5 +b11011000 & +b11011 ' +b11011000 .+ +b11011 /+ +b11011000 65 +b11011 75 +b11011000 i5 +b11011 j5 +b1 V5 +b10 \5 +b10 b5 +b1 +6 +b10 16 +b10 76 +#298000000 +0! +0# +0++ +035 +0f5 +#298500000 +1! +1# +1++ +135 +1f5 +sHdlSome\x20(1) + +b10110 , +b10110 - +b11001 . +b10110000 / +sInterrupt\x20(11) 1 +b11111111000000000000000000000000 2 +b11111111000000000000000000000000 3 +b11111111000000000000000000000000 4 +b11111111000000000000000000000000 5 +b11111111000000000000000000000000 6 +b1 A +sHdlSome\x20(1) 3+ +b10110 4+ +b10110 5+ +b11001 6+ +b10110000 7+ +sInterrupt\x20(11) 9+ +b11111111000000000000000000000000 :+ +b11111111000000000000000000000000 ;+ +b11111111000000000000000000000000 <+ +b11111111000000000000000000000000 =+ +b11111111000000000000000000000000 >+ +b1 I+ +sHdlSome\x20(1) ;5 +b10110 <5 +b10110 =5 +b11001 >5 +b10110000 ?5 +sInterrupt\x20(11) A5 +b11111111000000000000000000000000 B5 +b11111111000000000000000000000000 C5 +b11111111000000000000000000000000 D5 +b11111111000000000000000000000000 E5 +b11111111000000000000000000000000 F5 +b1 Q5 +b0 V5 +b1 \5 +b1 b5 +sHdlSome\x20(1) n5 +b10110 o5 +b10110 p5 +b11001 q5 +b10110000 r5 +sInterrupt\x20(11) t5 +b11111111000000000000000000000000 u5 +b11111111000000000000000000000000 v5 +b11111111000000000000000000000000 w5 +b11111111000000000000000000000000 x5 +b11111111000000000000000000000000 y5 +b1 &6 +b0 +6 +b1 16 +b1 76 +#299000000 +0! +0# +0++ +035 +0f5 +#299500000 +1! +1# +1++ +135 +1f5 +1) +b11010 . +11+ +b11010 6+ +195 +b11010 >5 +b10111000 X5 +b10111 Z5 +b11000000 [5 +b0 \5 +b11000 ]5 +b11001000 ^5 +b11001 `5 +b0 a5 +b0 b5 +b0 c5 +b100 d5 +1l5 +b11010 q5 +b10111000 -6 +b10111 /6 +b11000000 06 +b0 16 +b11000 26 +b11001000 36 +b11001 56 +b0 66 +b0 76 +b0 86 +b100 96 +#300000000 diff --git a/crates/cpu/tests/next_pc.rs b/crates/cpu/tests/next_pc.rs new file mode 100644 index 0000000..9af026d --- /dev/null +++ b/crates/cpu/tests/next_pc.rs @@ -0,0 +1,340 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// See Notices.txt for copyright information + +use cpu::{ + config::{CpuConfig, UnitConfig}, + next_pc::{ + DecodeToPostDecodeInterface, DecodeToPostDecodeInterfaceInner, FETCH_BLOCK_ID_WIDTH, + NextPcToFetchInterface, NextPcToFetchInterfaceInner, WipDecodedInsn, WipDecodedInsnKind, + next_pc, + }, + unit::UnitKind, + util::array_vec::ArrayVec, +}; +use fayalite::{prelude::*, sim::vcd::VcdWriterDecls, util::RcWriter}; +use std::{ + cell::Cell, + collections::{BTreeMap, VecDeque}, + num::NonZeroUsize, +}; + +#[derive(Copy, Clone, Debug)] +enum MockInsn { + Nop4, + Jump { target: u64 }, + CondBranch { target: u64 }, + Call { target: u64 }, + Ret, +} + +impl MockInsn { + fn byte_len(self) -> u64 { + match self { + MockInsn::Nop4 => 4, + MockInsn::Jump { .. } => 4, + MockInsn::CondBranch { .. } => 4, + MockInsn::Call { .. } => 4, + MockInsn::Ret => 4, + } + } +} + +#[derive(Debug)] +struct MockInsns { + insns: BTreeMap, +} + +impl MockInsns { + fn new() -> Self { + Self { + insns: BTreeMap::from_iter([ + (0x0, MockInsn::Nop4), + (0x4, MockInsn::Nop4), + (0x8, MockInsn::CondBranch { target: 0x4 }), + (0xC, MockInsn::Call { target: 0x18 }), + (0x10, MockInsn::Jump { target: 0x10 }), + (0x14, MockInsn::Jump { target: 0x10 }), + (0x18, MockInsn::Jump { target: 0x1C }), + (0x1C, MockInsn::Ret), + ]), + } + } + fn fetch_block(&self, pc_range: std::ops::Range) -> impl Iterator { + self.insns + .range(pc_range.clone()) + .filter_map(move |(&pc, &insn)| { + if pc_range.end >= pc + insn.byte_len() { + Some((pc, insn)) + } else { + None + } + }) + } +} + +const FETCH_PIPE_QUEUE_SIZE: usize = 5; + +const DEMO_ILLEGAL_INSN_TRAP: u64 = 0xFF000000u64; + +#[hdl] +struct FetchPipeQueueEntry { + fetch_pc: UInt<64>, + cycles_left: UInt<8>, + fetch_block_id: UInt<{ FETCH_BLOCK_ID_WIDTH }>, +} + +impl FetchPipeQueueEntry { + #[hdl] + fn default_sim(self) -> SimValue { + #[hdl(sim)] + FetchPipeQueueEntry { + fetch_pc: 0u64, + cycles_left: 0u8, + fetch_block_id: 0u8, + } + } + fn get_next_delay(delay_sequence_index: &Cell) -> u8 { + let index = delay_sequence_index.get(); + delay_sequence_index.set(delay_sequence_index.get().wrapping_add(1)); + // make a pseudo-random number deterministically based on index + let random = index + .wrapping_add(1) + .wrapping_mul(0x18C49126EABE7A0D) // random prime + .rotate_left(32) + .wrapping_mul(0x92B38C197608A6B) // random prime + .rotate_right(60); + (random % 8) as u8 + } +} + +#[hdl_module(extern)] +fn mock_fetch_pipe(config: PhantomConst) { + #[hdl] + let cd: ClockDomain = m.input(); + #[hdl] + let from_fetch: NextPcToFetchInterface> = + m.input(NextPcToFetchInterface[config]); + #[hdl] + let to_post_decode: DecodeToPostDecodeInterface> = + m.output(DecodeToPostDecodeInterface[config]); + #[hdl] + let queue_debug: ArrayVec> = + m.output(); + m.register_clock_for_past(cd.clk); + m.extern_module_simulation_fn( + (cd, from_fetch, to_post_decode, queue_debug), + |(cd, from_fetch, to_post_decode, queue_debug), mut sim| async move { + // intentionally have a different sequence each time we're reset + let delay_sequence_index = Cell::new(0); + sim.resettable( + cd, + async |mut sim| { + sim.write(from_fetch.inner.ready, false).await; + sim.write( + to_post_decode.inner.data, + to_post_decode.ty().inner.data.HdlNone(), + ) + .await; + sim.write( + queue_debug, + queue_debug.ty().new_sim(FetchPipeQueueEntry.default_sim()), + ) + .await; + }, + |sim, ()| { + run_fn( + cd, + from_fetch, + to_post_decode, + queue_debug, + &delay_sequence_index, + sim, + ) + }, + ) + .await; + }, + ); + #[hdl] + async fn run_fn( + cd: Expr, + from_fetch: Expr>>, + to_post_decode: Expr>>, + queue_debug: Expr>>, + delay_sequence_index: &Cell, + mut sim: ExternModuleSimulationState, + ) { + let config = from_fetch.config.ty(); + let mock_insns = MockInsns::new(); + let mut queue: VecDeque> = VecDeque::new(); + let mut next_id = 0u32; + loop { + let mut sim_queue = queue_debug.ty().new_sim(FetchPipeQueueEntry.default_sim()); + for entry in &queue { + ArrayVec::try_push_sim(&mut sim_queue, entry) + .ok() + .expect("queue is known to be small enough"); + } + sim.write(queue_debug, sim_queue).await; + if let Some(front) = queue.front().filter(|v| v.cycles_left.as_int() == 0) { + #[hdl(sim)] + let FetchPipeQueueEntry { + fetch_pc, + cycles_left: _, + fetch_block_id, + } = front; + let fetch_pc = fetch_pc.as_int(); + let fetch_end = + (fetch_pc + 1).next_multiple_of(config.get().fetch_width_in_bytes() as u64); + let insns = to_post_decode.ty().inner.data.HdlSome.insns; + let zeroed_insn = UInt[insns.element().canonical().bit_width()] + .zero() + .cast_bits_to(insns.element()); + let mut insns = insns.new_sim(zeroed_insn); + let mut expected_pc = fetch_pc; + // TODO: handle instructions that go past the end of a fetch block + for (pc, insn) in mock_insns.fetch_block(fetch_pc..fetch_end) { + let next_pc = pc + insn.byte_len(); + if pc != expected_pc { + break; + } + expected_pc = next_pc; + let kind = match insn { + MockInsn::Nop4 => WipDecodedInsnKind.NonBranch(), + MockInsn::Jump { target } => WipDecodedInsnKind.Branch(target), + MockInsn::CondBranch { target } => WipDecodedInsnKind.BranchCond(target), + MockInsn::Call { target } => WipDecodedInsnKind.Call(target), + MockInsn::Ret => WipDecodedInsnKind.Ret(), + }; + let insn = #[hdl(sim)] + WipDecodedInsn { + fetch_block_id, + id: next_id.cast_to_static::>(), + pc, + size_in_bytes: insn.byte_len().cast_to_static::>(), + kind, + }; + match ArrayVec::try_push_sim(&mut insns, insn) { + Ok(()) => next_id = next_id.wrapping_add(1), + Err(_) => break, + } + } + if **ArrayVec::len_sim(&insns) == 0 { + let Ok(()) = ArrayVec::try_push_sim( + &mut insns, + #[hdl(sim)] + WipDecodedInsn { + fetch_block_id, + id: next_id.cast_to_static::>(), + pc: fetch_pc, + size_in_bytes: 0u8.cast_to_static::>(), + kind: WipDecodedInsnKind.Interrupt(DEMO_ILLEGAL_INSN_TRAP), + }, + ) else { + unreachable!(); + }; + next_id = next_id.wrapping_add(1); + } + sim.write( + to_post_decode.inner.data, + HdlSome( + #[hdl(sim)] + DecodeToPostDecodeInterfaceInner::<_> { insns, config }, + ), + ) + .await; + } else { + sim.write( + to_post_decode.inner.data, + to_post_decode.ty().inner.data.HdlNone(), + ) + .await; + } + sim.write(from_fetch.inner.ready, queue.len() < FETCH_PIPE_QUEUE_SIZE) + .await; + sim.wait_for_clock_edge(cd.clk).await; + if sim.read_past_bool(to_post_decode.inner.ready, cd.clk).await { + #[hdl(sim)] + if let HdlSome(_) = sim.read_past(to_post_decode.inner.data, cd.clk).await { + queue.pop_front(); + } + } + for entry in &mut queue { + if entry.cycles_left.as_int() > 0 { + entry.cycles_left = (entry.cycles_left.as_int() - 1u8).to_sim_value(); + } + } + if !sim.read_past_bool(from_fetch.inner.ready, cd.clk).await { + continue; + } + #[hdl(sim)] + if let HdlSome(inner) = sim.read_past(from_fetch.inner.data, cd.clk).await { + #[hdl(sim)] + let NextPcToFetchInterfaceInner { + next_fetch_pc, + fetch_block_id, + in_progress_fetches_to_cancel, + } = &inner; + // cancel in-progress fetches from newest to oldest + for _ in 0..in_progress_fetches_to_cancel.as_int() { + let _ = queue.pop_back(); + } + queue.push_back( + #[hdl(sim)] + FetchPipeQueueEntry { + fetch_pc: next_fetch_pc, + cycles_left: FetchPipeQueueEntry::get_next_delay(delay_sequence_index), + fetch_block_id, + }, + ); + } + } + } +} + +#[hdl_module] +fn dut(config: PhantomConst) { + #[hdl] + let cd: ClockDomain = m.input(); + #[hdl] + let next_pc = instance(next_pc(config)); + connect(next_pc.cd, cd); + #[hdl] + let mock_fetch_pipe = instance(mock_fetch_pipe(config)); + connect(mock_fetch_pipe.cd, cd); + connect(mock_fetch_pipe.from_fetch, next_pc.to_fetch); + connect(next_pc.from_decode, mock_fetch_pipe.to_post_decode); +} + +#[hdl] +#[test] +fn test_next_pc() { + let _n = SourceLocation::normalize_files_for_tests(); + let mut config = CpuConfig::new( + vec![ + UnitConfig::new(UnitKind::AluBranch), + UnitConfig::new(UnitKind::AluBranch), + ], + NonZeroUsize::new(20).unwrap(), + ); + config.fetch_width = NonZeroUsize::new(2).unwrap(); + let m = dut(PhantomConst::new_sized(config)); + let mut sim = Simulation::new(m); + let mut writer = RcWriter::default(); + sim.add_trace_writer(VcdWriterDecls::new(writer.clone())); + sim.write_clock(sim.io().cd.clk, false); + sim.write_reset(sim.io().cd.rst, true); + for _cycle in 0..300 { + sim.advance_time(SimDuration::from_nanos(500)); + sim.write_clock(sim.io().cd.clk, true); + sim.advance_time(SimDuration::from_nanos(500)); + sim.write_clock(sim.io().cd.clk, false); + sim.write_reset(sim.io().cd.rst, false); + } + // FIXME: vcd is just whatever next_pc does now, which isn't known to be correct + let vcd = String::from_utf8(writer.take()).unwrap(); + println!("####### VCD:\n{vcd}\n#######"); + if vcd != include_str!("expected/next_pc.vcd") { + panic!(); + } +}