URL
https://opencores.org/ocsvn/tcp_socket/tcp_socket/trunk
Subversion Repositories tcp_socket
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 3 to Rev 4
- ↔ Reverse comparison
Rev 3 → Rev 4
/tcp_socket/trunk/source/user_design.c
68,7 → 68,7
<button type=\"sumbit\" value=\"Submit\">Update LEDs</button>\ |
</form>\ |
<p>This <a href=\"https://github.com/dawsonjon/Chips-Demo\">project</a>\ |
is powered by <a href=\"https://github.com/dawsonjon/Chips-2.0\">Chips-2.0</a>.</p>\ |
is powered by <a href=\"http:pyandchips.org\">Chips-2.0</a>.</p>\ |
</body>\ |
</html>"; |
|
/tcp_socket/trunk/source/atlys.vhd
82,17 → 82,17
|
entity ATLYS is |
port( |
CLK_IN : in std_logic; |
RST : in std_logic; |
CLK_IN : in std_logic; |
RST : in std_logic; |
|
--PHY INTERFACE |
TX : out std_logic; |
RX : in std_logic; |
PHY_RESET : out std_logic; |
RXDV : in std_logic; |
RXER : in std_logic; |
RXCLK : in std_logic; |
RXD : in std_logic_vector(7 downto 0); |
TX : out std_logic; |
RX : in std_logic; |
PHY_RESET : out std_logic; |
RXDV : in std_logic; |
RXER : in std_logic; |
RXCLK : in std_logic; |
RXD : in std_logic_vector(7 downto 0); |
TXCLK : in std_logic; |
GTXCLK : out std_logic; |
TXD : out std_logic_vector(7 downto 0); |
148,7 → 148,7
port( |
CLK : in std_logic; |
RST : in std_logic; |
|
|
--ETH RX STREAM |
INPUT_ETH_RX : in std_logic_vector(15 downto 0); |
INPUT_ETH_RX_STB : in std_logic; |
176,7 → 176,7
port( |
CLK : in std_logic; |
RST : in std_logic; |
|
|
OUTPUT_LEDS : out std_logic_vector(15 downto 0); |
OUTPUT_LEDS_STB : out std_logic; |
OUTPUT_LEDS_ACK : in std_logic; |
357,7 → 357,7
SERVER_INST_1 : SERVER port map( |
CLK => CLK, |
RST => INTERNAL_RST, |
|
|
--ETH RX STREAM |
INPUT_ETH_RX => ETH_RX, |
INPUT_ETH_RX_STB => ETH_RX_STB, |
383,7 → 383,7
USER_DESIGN_INST_1 : USER_DESIGN port map( |
CLK => CLK, |
RST => INTERNAL_RST, |
|
|
OUTPUT_LEDS => OUTPUT_LEDS, |
OUTPUT_LEDS_STB => OUTPUT_LEDS_STB, |
OUTPUT_LEDS_ACK => OUTPUT_LEDS_ACK, |
451,11 → 451,11
wait until rising_edge(CLK); |
NOT_LOCKED <= not LOCKED_INTERNAL; |
INTERNAL_RST <= NOT_LOCKED; |
|
|
if OUTPUT_LEDS_STB = '1' then |
GPIO_LEDS <= OUTPUT_LEDS(7 downto 0); |
GPIO_LEDS <= OUTPUT_LEDS(7 downto 0); |
end if; |
OUTPUT_LEDS_ACK <= '1'; |
OUTPUT_LEDS_ACK <= '1'; |
|
INPUT_SWITCHES_STB <= '1'; |
GPIO_SWITCHES_D <= GPIO_SWITCHES; |
/tcp_socket/trunk/source/server.h
17,12 → 17,12
// TCP-IP User Settings |
// |
|
unsigned local_mac_address_hi = 0x0001u; |
unsigned local_mac_address_med = 0x0203u; |
unsigned local_mac_address_lo = 0x0405u; |
unsigned local_ip_address_hi = 0xc0A8u;//192/168 |
unsigned local_ip_address_lo = 0x0101u;//1/1 |
unsigned local_port = 80u;//http |
const unsigned local_mac_address_hi = 0x0001u; |
const unsigned local_mac_address_med = 0x0203u; |
const unsigned local_mac_address_lo = 0x0405u; |
const unsigned local_ip_address_hi = 0xc0A8u;//192/168 |
const unsigned local_ip_address_lo = 0x0101u;//1/1 |
const unsigned local_port = 80u;//http |
|
//////////////////////////////////////////////////////////////////////////////// |
// TCP-IP GLOBALS |
301,6 → 301,7
unsigned payload_length; |
unsigned i, from, to; |
unsigned payload_end; |
unsigned number_of_bytes; |
|
number_of_bytes = get_ethernet_packet(packet); |
|
383,6 → 384,7
unsigned payload_start = 17; |
unsigned packet_length; |
unsigned index; |
unsigned i; |
|
//encode TCP header |
tx_packet[payload_start + 0] = tx_source; |
511,11 → 513,11
unsigned last_state; |
unsigned new_rx_data; |
|
unsigned listen = 0; |
unsigned open = 1; |
unsigned send = 2; |
unsigned wait_acknowledge = 3; |
unsigned close = 4; |
const unsigned listen = 0; |
const unsigned open = 1; |
const unsigned send = 2; |
const unsigned wait_acknowledge = 3; |
const unsigned close = 4; |
unsigned state = listen; |
|
tx_seq[0] = 0; |
537,13 → 539,13
|
// (optionaly) send something |
switch(state){ |
case 0: |
case listen: |
tx_rst_flag = 0; |
tx_syn_flag = 0; |
tx_fin_flag = 0; |
tx_ack_flag = 0; |
break; |
case 1: |
case open: |
// set remote ip/port |
remote_ip_hi = rx_packet[13]; |
remote_ip_lo = rx_packet[14]; |
555,7 → 557,7
tx_ack_flag = 1; |
put_tcp_packet(tx_packet, 0); |
break; |
case 2: |
case send: |
// application -> tcp |
tx_length = application_get_data(tx_packet, tx_start); |
tx_seq[0] = next_tx_seq[0]; |
565,11 → 567,11
tx_ack_flag = 1; |
put_tcp_packet(tx_packet, tx_length); |
break; |
case 3: |
case wait_acknowledge: |
// resend until acknowledge recieved |
put_tcp_packet(tx_packet, tx_length); |
break; |
case 4: |
case close: |
// send fin ack |
tx_fin_flag = 1; |
tx_ack_flag = 1; |
589,7 → 591,7
switch(state){ |
|
// If a syn packet is recieved, wait for an ack |
case 0: |
case listen: |
if(rx_syn_flag) state = open; |
else{ |
tx_rst_flag = 1; |
598,7 → 600,7
break; |
|
// If an ack is recieved the connection is established |
case 1: |
case open: |
if(rx_ack_flag){ |
tx_seq[1] = rx_ack[1]; |
tx_seq[0] = rx_ack[0]; |
609,7 → 611,7
break; |
|
// Send some data |
case 2: |
case send: |
new_rx_data = calc_ack(tx_ack, rx_seq, rx_length); |
if(rx_fin_flag){ |
state = close; |
619,7 → 621,7
break; |
|
// Wait until data is acknowledged before sending some more. |
case 3: |
case wait_acknowledge: |
|
new_rx_data = calc_ack(tx_ack, rx_seq, rx_length); |
if(rx_fin_flag){ |
633,7 → 635,7
break; |
|
// wait for fin/ack. |
case 4: |
case close: |
if(rx_ack_flag) state = listen; |
break; |
} |
/tcp_socket/trunk/precompiled/ATLYS.bit
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tcp_socket/trunk/precompiled/server.v
1,5 → 1,5
////////////////////////////////////////////////////////////////////////////// |
//name : server |
//tag : c components |
//input : input_eth_rx:16 |
//input : input_socket:16 |
//output : output_socket:16 |
7,7 → 7,7
//source_file : ../source/server.c |
///====== |
/// |
///*Created by C2CHIP* |
///Created by C2CHIP |
|
////////////////////////////////////////////////////////////////////////////// |
// Register Allocation |
14,216 → 14,212
// =================== |
// Register Name Size |
// 0 put_eth return address 2 |
// 1 function argument i 2 |
// 1 variable i 2 |
// 2 put_socket return address 2 |
// 3 function argument i 2 |
// 3 variable i 2 |
// 4 get_eth return address 2 |
// 5 get_eth return value 2 |
// 5 variable get_eth return value 2 |
// 6 rdy_eth return address 2 |
// 7 rdy_eth return value 2 |
// 7 variable rdy_eth return value 2 |
// 8 get_socket return address 2 |
// 9 get_socket return value 2 |
// 10 variable local_mac_address_hi 2 |
// 11 variable local_mac_address_med 2 |
// 12 variable local_mac_address_lo 2 |
// 13 variable local_ip_address_hi 2 |
// 14 variable local_ip_address_lo 2 |
// 15 variable local_port 2 |
// 16 array 2 |
// 17 variable checksum 4 |
// 18 reset_checksum return address 2 |
// 19 add_checksum return address 2 |
// 20 function argument data 2 |
// 21 check_checksum return address 2 |
// 22 check_checksum return value 2 |
// 23 calc_ack return address 2 |
// 24 calc_ack return value 2 |
// 25 function argument ack 2 |
// 26 function argument seq 2 |
// 27 function argument length 2 |
// 28 variable new_ack_0 2 |
// 29 variable new_ack_1 2 |
// 30 variable return_value 2 |
// 31 put_ethernet_packet return address 2 |
// 32 function argument packet 2 |
// 33 function argument number_of_bytes 2 |
// 34 function argument destination_mac_address_hi 2 |
// 35 function argument destination_mac_address_med 2 |
// 36 function argument destination_mac_address_lo 2 |
// 37 function argument protocol 2 |
// 38 variable byte 2 |
// 39 variable index 2 |
// 40 get_ethernet_packet return address 2 |
// 41 get_ethernet_packet return value 2 |
// 42 function argument packet 2 |
// 43 variable number_of_bytes 2 |
// 44 variable index 2 |
// 45 variable byte 2 |
// 46 array 2 |
// 47 array 2 |
// 48 array 2 |
// 49 array 2 |
// 50 array 2 |
// 51 variable arp_pounsigneder 2 |
// 52 get_arp_cache return address 2 |
// 53 get_arp_cache return value 2 |
// 54 function argument ip_hi 2 |
// 55 function argument ip_lo 2 |
// 56 variable number_of_bytes 2 |
// 57 variable byte 2 |
// 58 array 2 |
// 59 variable i 2 |
// 60 put_ip_packet return address 2 |
// 61 function argument packet 2 |
// 62 function argument total_length 2 |
// 63 function argument protocol 2 |
// 64 function argument ip_hi 2 |
// 65 function argument ip_lo 2 |
// 66 variable number_of_bytes 2 |
// 67 variable i 2 |
// 68 variable arp_cache 2 |
// 69 get_ip_packet return address 2 |
// 70 get_ip_packet return value 2 |
// 71 function argument packet 2 |
// 72 variable total_length 2 |
// 73 variable header_length 2 |
// 74 variable payload_start 2 |
// 75 variable payload_length 2 |
// 76 variable i 2 |
// 77 variable from 2 |
// 78 variable to 2 |
// 79 variable payload_end 2 |
// 80 variable remote_ip_hi 2 |
// 81 variable remote_ip_lo 2 |
// 82 variable tx_source 2 |
// 83 variable tx_dest 2 |
// 84 array 2 |
// 85 array 2 |
// 86 array 2 |
// 87 variable tx_window 2 |
// 88 variable tx_fin_flag 2 |
// 89 variable tx_syn_flag 2 |
// 90 variable tx_rst_flag 2 |
// 91 variable tx_psh_flag 2 |
// 92 variable tx_ack_flag 2 |
// 93 variable tx_urg_flag 2 |
// 94 variable rx_source 2 |
// 95 variable rx_dest 2 |
// 96 array 2 |
// 97 array 2 |
// 98 variable rx_fin_flag 2 |
// 99 variable rx_syn_flag 2 |
// 100 variable rx_rst_flag 2 |
// 101 variable rx_ack_flag 2 |
// 102 put_tcp_packet return address 2 |
// 103 function argument tx_packet 2 |
// 104 function argument tx_length 2 |
// 105 variable payload_start 2 |
// 106 variable packet_length 2 |
// 107 variable index 2 |
// 108 variable rx_length 2 |
// 109 variable rx_start 2 |
// 110 get_tcp_packet return address 2 |
// 111 get_tcp_packet return value 2 |
// 112 function argument rx_packet 2 |
// 113 variable number_of_bytes 2 |
// 114 variable header_length 2 |
// 115 variable payload_start 2 |
// 116 variable total_length 2 |
// 117 variable payload_length 2 |
// 118 variable tcp_header_length 2 |
// 119 application_put_data return address 2 |
// 120 function argument packet 2 |
// 121 function argument start 2 |
// 122 function argument length 2 |
// 123 variable i 2 |
// 124 variable index 2 |
// 125 application_get_data return address 2 |
// 126 application_get_data return value 2 |
// 127 function argument packet 2 |
// 128 function argument start 2 |
// 129 variable i 2 |
// 130 variable index 2 |
// 131 variable length 2 |
// 132 server return address 2 |
// 133 array 2 |
// 134 array 2 |
// 135 variable tx_start 2 |
// 136 variable tx_length 2 |
// 137 variable timeout 2 |
// 138 variable resend_wait 2 |
// 139 variable bytes 2 |
// 140 variable last_state 2 |
// 141 variable new_rx_data 2 |
// 142 variable listen 2 |
// 143 variable open 2 |
// 144 variable send 2 |
// 145 variable wait_acknowledge 2 |
// 146 variable close 2 |
// 147 variable state 2 |
// 9 variable get_socket return value 2 |
// 10 array 2 |
// 11 variable checksum 4 |
// 12 reset_checksum return address 2 |
// 13 add_checksum return address 2 |
// 14 variable data 2 |
// 15 check_checksum return address 2 |
// 16 variable check_checksum return value 2 |
// 17 calc_ack return address 2 |
// 18 variable calc_ack return value 2 |
// 19 array 2 |
// 20 array 2 |
// 21 variable length 2 |
// 22 variable new_ack_0 2 |
// 23 variable new_ack_1 2 |
// 24 variable return_value 2 |
// 25 put_ethernet_packet return address 2 |
// 26 array 2 |
// 27 variable number_of_bytes 2 |
// 28 variable destination_mac_address_hi 2 |
// 29 variable destination_mac_address_med 2 |
// 30 variable destination_mac_address_lo 2 |
// 31 variable protocol 2 |
// 32 variable byte 2 |
// 33 variable index 2 |
// 34 get_ethernet_packet return address 2 |
// 35 variable get_ethernet_packet return value 2 |
// 36 array 2 |
// 37 variable number_of_bytes 2 |
// 38 variable index 2 |
// 39 variable byte 2 |
// 40 array 2 |
// 41 array 2 |
// 42 array 2 |
// 43 array 2 |
// 44 array 2 |
// 45 variable arp_pounsigneder 2 |
// 46 get_arp_cache return address 2 |
// 47 variable get_arp_cache return value 2 |
// 48 variable ip_hi 2 |
// 49 variable ip_lo 2 |
// 50 variable number_of_bytes 2 |
// 51 variable byte 2 |
// 52 array 2 |
// 53 variable i 2 |
// 54 put_ip_packet return address 2 |
// 55 array 2 |
// 56 variable total_length 2 |
// 57 variable protocol 2 |
// 58 variable ip_hi 2 |
// 59 variable ip_lo 2 |
// 60 variable number_of_bytes 2 |
// 61 variable i 2 |
// 62 variable arp_cache 2 |
// 63 get_ip_packet return address 2 |
// 64 variable get_ip_packet return value 2 |
// 65 array 2 |
// 66 variable total_length 2 |
// 67 variable header_length 2 |
// 68 variable payload_start 2 |
// 69 variable payload_length 2 |
// 70 variable i 2 |
// 71 variable from 2 |
// 72 variable to 2 |
// 73 variable payload_end 2 |
// 74 variable number_of_bytes 2 |
// 75 variable remote_ip_hi 2 |
// 76 variable remote_ip_lo 2 |
// 77 variable tx_source 2 |
// 78 variable tx_dest 2 |
// 79 array 2 |
// 80 array 2 |
// 81 array 2 |
// 82 variable tx_window 2 |
// 83 variable tx_fin_flag 2 |
// 84 variable tx_syn_flag 2 |
// 85 variable tx_rst_flag 2 |
// 86 variable tx_psh_flag 2 |
// 87 variable tx_ack_flag 2 |
// 88 variable tx_urg_flag 2 |
// 89 variable rx_source 2 |
// 90 variable rx_dest 2 |
// 91 array 2 |
// 92 array 2 |
// 93 variable rx_fin_flag 2 |
// 94 variable rx_syn_flag 2 |
// 95 variable rx_rst_flag 2 |
// 96 variable rx_ack_flag 2 |
// 97 put_tcp_packet return address 2 |
// 98 array 2 |
// 99 variable tx_length 2 |
// 100 variable payload_start 2 |
// 101 variable packet_length 2 |
// 102 variable index 2 |
// 103 variable i 2 |
// 104 variable rx_length 2 |
// 105 variable rx_start 2 |
// 106 get_tcp_packet return address 2 |
// 107 variable get_tcp_packet return value 2 |
// 108 array 2 |
// 109 variable number_of_bytes 2 |
// 110 variable header_length 2 |
// 111 variable payload_start 2 |
// 112 variable total_length 2 |
// 113 variable payload_length 2 |
// 114 variable tcp_header_length 2 |
// 115 application_put_data return address 2 |
// 116 array 2 |
// 117 variable start 2 |
// 118 variable length 2 |
// 119 variable i 2 |
// 120 variable index 2 |
// 121 application_get_data return address 2 |
// 122 variable application_get_data return value 2 |
// 123 array 2 |
// 124 variable start 2 |
// 125 variable i 2 |
// 126 variable index 2 |
// 127 variable length 2 |
// 128 server return address 2 |
// 129 array 2 |
// 130 array 2 |
// 131 variable tx_start 2 |
// 132 variable tx_length 2 |
// 133 variable timeout 2 |
// 134 variable resend_wait 2 |
// 135 variable bytes 2 |
// 136 variable last_state 2 |
// 137 variable new_rx_data 2 |
// 138 variable state 2 |
// 139 temporary_register 2 |
// 140 temporary_register 2 |
// 141 temporary_register 2 |
// 142 temporary_register 4 |
// 143 temporary_register 4 |
// 144 temporary_register 4 |
// 145 temporary_register 2 |
// 146 temporary_register 2 |
// 147 temporary_register 1024 |
// 148 temporary_register 2 |
// 149 temporary_register 2 |
// 150 temporary_register 2 |
// 151 temporary_register 2 |
// 152 temporary_register 2 |
// 153 temporary_register 2 |
|
`timescale 1ns/1ps |
// 150 temporary_register 2048 |
module server(input_eth_rx,input_socket,input_eth_rx_stb,input_socket_stb,output_socket_ack,output_eth_tx_ack,clk,rst,output_socket,output_eth_tx,output_socket_stb,output_eth_tx_stb,input_eth_rx_ack,input_socket_ack); |
integer file_count; |
input [15:0] input_eth_rx; |
input [15:0] input_socket; |
input input_eth_rx_stb; |
input input_socket_stb; |
input output_socket_ack; |
input output_eth_tx_ack; |
input clk; |
input rst; |
output [15:0] output_socket; |
output [15:0] output_eth_tx; |
output output_socket_stb; |
output output_eth_tx_stb; |
output input_eth_rx_ack; |
output input_socket_ack; |
reg [15:0] timer; |
reg timer_enable; |
reg stage_0_enable; |
reg stage_1_enable; |
reg stage_2_enable; |
reg [11:0] program_counter; |
reg [11:0] program_counter_0; |
reg [53:0] instruction_0; |
reg [5:0] opcode_0; |
reg [7:0] dest_0; |
reg [7:0] src_0; |
reg [7:0] srcb_0; |
reg [31:0] literal_0; |
reg [11:0] program_counter_1; |
reg [5:0] opcode_1; |
reg [7:0] dest_1; |
reg [31:0] register_1; |
reg [31:0] registerb_1; |
reg [31:0] literal_1; |
reg [7:0] dest_2; |
reg [31:0] result_2; |
reg write_enable_2; |
reg [15:0] address_2; |
reg [15:0] data_out_2; |
reg [15:0] data_in_2; |
reg memory_enable_2; |
reg [15:0] address_4; |
reg [31:0] data_out_4; |
reg [31:0] data_in_4; |
reg memory_enable_4; |
reg [15:0] s_output_socket_stb; |
reg [15:0] s_output_eth_tx_stb; |
reg [15:0] s_output_socket; |
reg [15:0] s_output_eth_tx; |
reg [15:0] s_input_eth_rx_ack; |
reg [15:0] s_input_socket_ack; |
reg [15:0] memory_2 [2665:0]; |
reg [53:0] instructions [3024:0]; |
reg [31:0] registers [153:0]; |
real fp_value; |
input [15:0] input_eth_rx; |
input [15:0] input_socket; |
input input_eth_rx_stb; |
input input_socket_stb; |
input output_socket_ack; |
input output_eth_tx_ack; |
input clk; |
input rst; |
output [15:0] output_socket; |
output [15:0] output_eth_tx; |
output output_socket_stb; |
output output_eth_tx_stb; |
output input_eth_rx_ack; |
output input_socket_ack; |
reg [15:0] timer; |
reg timer_enable; |
reg stage_0_enable; |
reg stage_1_enable; |
reg stage_2_enable; |
reg [11:0] program_counter; |
reg [11:0] program_counter_0; |
reg [53:0] instruction_0; |
reg [5:0] opcode_0; |
reg [7:0] dest_0; |
reg [7:0] src_0; |
reg [7:0] srcb_0; |
reg [31:0] literal_0; |
reg [11:0] program_counter_1; |
reg [5:0] opcode_1; |
reg [7:0] dest_1; |
reg [31:0] register_1; |
reg [31:0] registerb_1; |
reg [31:0] literal_1; |
reg [7:0] dest_2; |
reg [31:0] result_2; |
reg write_enable_2; |
reg [15:0] address_2; |
reg [15:0] data_out_2; |
reg [15:0] data_in_2; |
reg memory_enable_2; |
reg [15:0] address_4; |
reg [31:0] data_out_4; |
reg [31:0] data_in_4; |
reg memory_enable_4; |
reg [15:0] s_output_socket_stb; |
reg [15:0] s_output_eth_tx_stb; |
reg [15:0] s_output_socket; |
reg [15:0] s_output_eth_tx; |
reg [15:0] s_input_eth_rx_ack; |
reg [15:0] s_input_socket_ack; |
reg [15:0] memory_2 [2685:0]; |
reg [53:0] instructions [3316:0]; |
reg [31:0] registers [150:0]; |
|
////////////////////////////////////////////////////////////////////////////// |
// INSTRUCTION INITIALIZATION |
232,3076 → 228,3369
// |
// Intruction Set |
// ============== |
// 0 {'literal': True, 'right': False, 'unsigned': False, 'op': 'literal'} |
// 1 {'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_and_link'} |
// 2 {'literal': False, 'right': False, 'unsigned': False, 'op': 'stop'} |
// 3 {'literal': False, 'right': False, 'unsigned': False, 'op': 'move'} |
// 4 {'literal': False, 'right': False, 'unsigned': False, 'op': 'nop'} |
// 5 {'output': 'eth_tx', 'literal': False, 'right': False, 'unsigned': False, 'op': 'write'} |
// 6 {'literal': False, 'right': False, 'unsigned': False, 'op': 'jmp_to_reg'} |
// 7 {'output': 'socket', 'literal': False, 'right': False, 'unsigned': False, 'op': 'write'} |
// 8 {'input': 'eth_rx', 'literal': False, 'right': False, 'unsigned': False, 'op': 'read'} |
// 9 {'input': 'eth_rx', 'literal': False, 'right': False, 'unsigned': False, 'op': 'ready'} |
// 10 {'input': 'socket', 'literal': False, 'right': False, 'unsigned': False, 'op': 'read'} |
// 11 {'literal': False, 'right': False, 'unsigned': True, 'op': '+'} |
// 12 {'literal': True, 'right': True, 'unsigned': True, 'op': '&'} |
// 13 {'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_if_false'} |
// 14 {'literal': True, 'right': True, 'unsigned': True, 'op': '+'} |
// 15 {'literal': True, 'right': False, 'unsigned': False, 'op': 'goto'} |
// 16 {'literal': False, 'right': False, 'unsigned': False, 'op': '~'} |
// 17 {'element_size': 2, 'literal': False, 'right': False, 'unsigned': False, 'op': 'memory_read_request'} |
// 18 {'element_size': 2, 'literal': False, 'right': False, 'unsigned': False, 'op': 'memory_read_wait'} |
// 19 {'element_size': 2, 'literal': False, 'right': False, 'unsigned': False, 'op': 'memory_read'} |
// 20 {'literal': False, 'right': False, 'unsigned': True, 'op': '<'} |
// 21 {'literal': False, 'right': False, 'unsigned': True, 'op': '!='} |
// 22 {'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_if_true'} |
// 23 {'element_size': 2, 'literal': False, 'right': False, 'unsigned': False, 'op': 'memory_write'} |
// 24 {'right': False, 'file_': '/media/sdb1/Projects/Chips-Demo/source/server.h', 'unsigned': True, 'literal': False, 'line': 107, 'op': 'report'} |
// 25 {'literal': True, 'right': True, 'unsigned': True, 'op': '=='} |
// 26 {'literal': True, 'right': True, 'unsigned': True, 'op': '!='} |
// 27 {'literal': True, 'right': True, 'unsigned': True, 'op': '<'} |
// 28 {'literal': False, 'right': False, 'unsigned': True, 'op': '=='} |
// 29 {'literal': True, 'right': False, 'unsigned': True, 'op': '|'} |
// 30 {'literal': True, 'right': True, 'unsigned': True, 'op': '<='} |
// 31 {'literal': True, 'right': True, 'unsigned': True, 'op': '>>'} |
// 32 {'literal': True, 'right': True, 'unsigned': True, 'op': '<<'} |
// 33 {'literal': False, 'right': False, 'unsigned': True, 'op': '-'} |
// 34 {'literal': True, 'right': True, 'unsigned': True, 'op': '-'} |
// 35 {'literal': False, 'right': False, 'unsigned': True, 'op': '<='} |
// 36 {'literal': True, 'right': True, 'unsigned': True, 'op': '|'} |
// 37 {'input': 'socket', 'literal': False, 'right': False, 'unsigned': False, 'op': 'ready'} |
// 38 {'literal': True, 'right': True, 'unsigned': False, 'op': '=='} |
// 39 {'literal': False, 'right': False, 'unsigned': False, 'op': 'wait_clocks'} |
// 0 {'float': False, 'literal': True, 'right': False, 'unsigned': False, 'op': 'literal'} |
// 1 {'float': False, 'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_and_link'} |
// 2 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': 'stop'} |
// 3 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': 'move'} |
// 4 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': 'nop'} |
// 5 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'output': 'eth_tx', 'op': 'write'} |
// 6 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': 'jmp_to_reg'} |
// 7 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'output': 'socket', 'op': 'write'} |
// 8 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'input': 'eth_rx', 'op': 'read'} |
// 9 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'input': 'eth_rx', 'op': 'ready'} |
// 10 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'input': 'socket', 'op': 'read'} |
// 11 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '+'} |
// 12 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '&'} |
// 13 {'float': False, 'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_if_false'} |
// 14 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '+'} |
// 15 {'float': False, 'literal': True, 'right': False, 'unsigned': False, 'op': 'goto'} |
// 16 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': '~'} |
// 17 {'right': False, 'element_size': 2, 'float': False, 'unsigned': False, 'literal': False, 'op': 'memory_read_request'} |
// 18 {'right': False, 'element_size': 2, 'float': False, 'unsigned': False, 'literal': False, 'op': 'memory_read_wait'} |
// 19 {'right': False, 'element_size': 2, 'float': False, 'unsigned': False, 'literal': False, 'op': 'memory_read'} |
// 20 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '<'} |
// 21 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '!='} |
// 22 {'float': False, 'literal': True, 'right': False, 'unsigned': False, 'op': 'jmp_if_true'} |
// 23 {'right': False, 'element_size': 2, 'float': False, 'unsigned': False, 'literal': False, 'op': 'memory_write'} |
// 24 {'right': False, 'float': False, 'unsigned': True, 'literal': False, 'file': '/media/sdb1/Projects/Chips-Demo/source/server.h', 'line': 107, 'op': 'report'} |
// 25 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '=='} |
// 26 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '!='} |
// 27 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': '+'} |
// 28 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '<'} |
// 29 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '=='} |
// 30 {'float': False, 'literal': True, 'right': False, 'unsigned': True, 'op': '|'} |
// 31 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '<='} |
// 32 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '>>'} |
// 33 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '<<'} |
// 34 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '-'} |
// 35 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '-'} |
// 36 {'float': False, 'literal': False, 'right': False, 'unsigned': True, 'op': '<='} |
// 37 {'float': False, 'literal': True, 'right': True, 'unsigned': True, 'op': '|'} |
// 38 {'right': False, 'float': False, 'unsigned': False, 'literal': False, 'input': 'socket', 'op': 'ready'} |
// 39 {'float': False, 'literal': True, 'right': True, 'unsigned': False, 'op': '=='} |
// 40 {'float': False, 'literal': False, 'right': False, 'unsigned': False, 'op': 'wait_clocks'} |
// Intructions |
// =========== |
|
initial |
begin |
instructions[0] = {6'd0, 8'd10, 8'd0, 32'd1};//{'dest': 10, 'literal': 1, 'op': 'literal'} |
instructions[1] = {6'd0, 8'd11, 8'd0, 32'd515};//{'dest': 11, 'literal': 515, 'op': 'literal'} |
instructions[2] = {6'd0, 8'd12, 8'd0, 32'd1029};//{'dest': 12, 'literal': 1029, 'op': 'literal'} |
instructions[3] = {6'd0, 8'd13, 8'd0, 32'd49320};//{'dest': 13, 'literal': 49320, 'op': 'literal'} |
instructions[4] = {6'd0, 8'd14, 8'd0, 32'd257};//{'dest': 14, 'literal': 257, 'op': 'literal'} |
instructions[5] = {6'd0, 8'd15, 8'd0, 32'd80};//{'dest': 15, 'literal': 80, 'op': 'literal'} |
instructions[6] = {6'd0, 8'd16, 8'd0, 32'd0};//{'dest': 16, 'literal': 0, 'op': 'literal'} |
instructions[7] = {6'd0, 8'd17, 8'd0, 32'd0};//{'dest': 17, 'literal': 0, 'op': 'literal'} |
instructions[8] = {6'd0, 8'd46, 8'd0, 32'd512};//{'dest': 46, 'literal': 512, 'op': 'literal'} |
instructions[9] = {6'd0, 8'd47, 8'd0, 32'd528};//{'dest': 47, 'literal': 528, 'op': 'literal'} |
instructions[10] = {6'd0, 8'd48, 8'd0, 32'd544};//{'dest': 48, 'literal': 544, 'op': 'literal'} |
instructions[11] = {6'd0, 8'd49, 8'd0, 32'd560};//{'dest': 49, 'literal': 560, 'op': 'literal'} |
instructions[12] = {6'd0, 8'd50, 8'd0, 32'd576};//{'dest': 50, 'literal': 576, 'op': 'literal'} |
instructions[13] = {6'd0, 8'd51, 8'd0, 32'd0};//{'dest': 51, 'literal': 0, 'op': 'literal'} |
instructions[14] = {6'd0, 8'd80, 8'd0, 32'd0};//{'dest': 80, 'literal': 0, 'op': 'literal'} |
instructions[15] = {6'd0, 8'd81, 8'd0, 32'd0};//{'dest': 81, 'literal': 0, 'op': 'literal'} |
instructions[16] = {6'd0, 8'd82, 8'd0, 32'd0};//{'dest': 82, 'literal': 0, 'op': 'literal'} |
instructions[17] = {6'd0, 8'd83, 8'd0, 32'd0};//{'dest': 83, 'literal': 0, 'op': 'literal'} |
instructions[18] = {6'd0, 8'd84, 8'd0, 32'd608};//{'dest': 84, 'literal': 608, 'op': 'literal'} |
instructions[19] = {6'd0, 8'd85, 8'd0, 32'd610};//{'dest': 85, 'literal': 610, 'op': 'literal'} |
instructions[20] = {6'd0, 8'd86, 8'd0, 32'd612};//{'dest': 86, 'literal': 612, 'op': 'literal'} |
instructions[21] = {6'd0, 8'd87, 8'd0, 32'd1460};//{'dest': 87, 'literal': 1460, 'op': 'literal'} |
instructions[22] = {6'd0, 8'd88, 8'd0, 32'd0};//{'dest': 88, 'literal': 0, 'op': 'literal'} |
instructions[23] = {6'd0, 8'd89, 8'd0, 32'd0};//{'dest': 89, 'literal': 0, 'op': 'literal'} |
instructions[24] = {6'd0, 8'd90, 8'd0, 32'd0};//{'dest': 90, 'literal': 0, 'op': 'literal'} |
instructions[25] = {6'd0, 8'd91, 8'd0, 32'd0};//{'dest': 91, 'literal': 0, 'op': 'literal'} |
instructions[26] = {6'd0, 8'd92, 8'd0, 32'd0};//{'dest': 92, 'literal': 0, 'op': 'literal'} |
instructions[27] = {6'd0, 8'd93, 8'd0, 32'd0};//{'dest': 93, 'literal': 0, 'op': 'literal'} |
instructions[28] = {6'd0, 8'd94, 8'd0, 32'd0};//{'dest': 94, 'literal': 0, 'op': 'literal'} |
instructions[29] = {6'd0, 8'd95, 8'd0, 32'd0};//{'dest': 95, 'literal': 0, 'op': 'literal'} |
instructions[30] = {6'd0, 8'd96, 8'd0, 32'd614};//{'dest': 96, 'literal': 614, 'op': 'literal'} |
instructions[31] = {6'd0, 8'd97, 8'd0, 32'd616};//{'dest': 97, 'literal': 616, 'op': 'literal'} |
instructions[32] = {6'd0, 8'd98, 8'd0, 32'd0};//{'dest': 98, 'literal': 0, 'op': 'literal'} |
instructions[33] = {6'd0, 8'd99, 8'd0, 32'd0};//{'dest': 99, 'literal': 0, 'op': 'literal'} |
instructions[34] = {6'd0, 8'd100, 8'd0, 32'd0};//{'dest': 100, 'literal': 0, 'op': 'literal'} |
instructions[35] = {6'd0, 8'd101, 8'd0, 32'd0};//{'dest': 101, 'literal': 0, 'op': 'literal'} |
instructions[36] = {6'd0, 8'd108, 8'd0, 32'd0};//{'dest': 108, 'literal': 0, 'op': 'literal'} |
instructions[37] = {6'd0, 8'd109, 8'd0, 32'd0};//{'dest': 109, 'literal': 0, 'op': 'literal'} |
instructions[38] = {6'd1, 8'd132, 8'd0, 32'd2432};//{'dest': 132, 'label': 2432, 'op': 'jmp_and_link'} |
instructions[39] = {6'd2, 8'd0, 8'd0, 32'd0};//{'op': 'stop'} |
instructions[40] = {6'd3, 8'd148, 8'd1, 32'd0};//{'dest': 148, 'src': 1, 'op': 'move'} |
instructions[0] = {6'd0, 8'd10, 8'd0, 32'd0};//{'dest': 10, 'literal': 0, 'op': 'literal'} |
instructions[1] = {6'd0, 8'd11, 8'd0, 32'd0};//{'dest': 11, 'literal': 0, 'size': 4, 'signed': 4, 'op': 'literal'} |
instructions[2] = {6'd0, 8'd40, 8'd0, 32'd520};//{'dest': 40, 'literal': 520, 'op': 'literal'} |
instructions[3] = {6'd0, 8'd41, 8'd0, 32'd536};//{'dest': 41, 'literal': 536, 'op': 'literal'} |
instructions[4] = {6'd0, 8'd42, 8'd0, 32'd552};//{'dest': 42, 'literal': 552, 'op': 'literal'} |
instructions[5] = {6'd0, 8'd43, 8'd0, 32'd568};//{'dest': 43, 'literal': 568, 'op': 'literal'} |
instructions[6] = {6'd0, 8'd44, 8'd0, 32'd584};//{'dest': 44, 'literal': 584, 'op': 'literal'} |
instructions[7] = {6'd0, 8'd45, 8'd0, 32'd0};//{'dest': 45, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[8] = {6'd0, 8'd75, 8'd0, 32'd0};//{'dest': 75, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[9] = {6'd0, 8'd76, 8'd0, 32'd0};//{'dest': 76, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[10] = {6'd0, 8'd77, 8'd0, 32'd0};//{'dest': 77, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[11] = {6'd0, 8'd78, 8'd0, 32'd0};//{'dest': 78, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[12] = {6'd0, 8'd79, 8'd0, 32'd620};//{'dest': 79, 'literal': 620, 'op': 'literal'} |
instructions[13] = {6'd0, 8'd80, 8'd0, 32'd622};//{'dest': 80, 'literal': 622, 'op': 'literal'} |
instructions[14] = {6'd0, 8'd81, 8'd0, 32'd624};//{'dest': 81, 'literal': 624, 'op': 'literal'} |
instructions[15] = {6'd0, 8'd82, 8'd0, 32'd1460};//{'dest': 82, 'literal': 1460, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[16] = {6'd0, 8'd83, 8'd0, 32'd0};//{'dest': 83, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[17] = {6'd0, 8'd84, 8'd0, 32'd0};//{'dest': 84, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[18] = {6'd0, 8'd85, 8'd0, 32'd0};//{'dest': 85, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[19] = {6'd0, 8'd86, 8'd0, 32'd0};//{'dest': 86, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[20] = {6'd0, 8'd87, 8'd0, 32'd0};//{'dest': 87, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[21] = {6'd0, 8'd88, 8'd0, 32'd0};//{'dest': 88, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[22] = {6'd0, 8'd89, 8'd0, 32'd0};//{'dest': 89, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[23] = {6'd0, 8'd90, 8'd0, 32'd0};//{'dest': 90, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[24] = {6'd0, 8'd91, 8'd0, 32'd626};//{'dest': 91, 'literal': 626, 'op': 'literal'} |
instructions[25] = {6'd0, 8'd92, 8'd0, 32'd628};//{'dest': 92, 'literal': 628, 'op': 'literal'} |
instructions[26] = {6'd0, 8'd93, 8'd0, 32'd0};//{'dest': 93, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[27] = {6'd0, 8'd94, 8'd0, 32'd0};//{'dest': 94, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[28] = {6'd0, 8'd95, 8'd0, 32'd0};//{'dest': 95, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[29] = {6'd0, 8'd96, 8'd0, 32'd0};//{'dest': 96, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[30] = {6'd0, 8'd104, 8'd0, 32'd0};//{'dest': 104, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[31] = {6'd0, 8'd105, 8'd0, 32'd0};//{'dest': 105, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[32] = {6'd1, 8'd128, 8'd0, 32'd2627};//{'dest': 128, 'label': 2627, 'op': 'jmp_and_link'} |
instructions[33] = {6'd2, 8'd0, 8'd0, 32'd0};//{'op': 'stop'} |
instructions[34] = {6'd3, 8'd139, 8'd1, 32'd0};//{'dest': 139, 'src': 1, 'op': 'move'} |
instructions[35] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[36] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[37] = {6'd5, 8'd0, 8'd139, 32'd0};//{'src': 139, 'output': 'eth_tx', 'op': 'write'} |
instructions[38] = {6'd6, 8'd0, 8'd0, 32'd0};//{'src': 0, 'op': 'jmp_to_reg'} |
instructions[39] = {6'd3, 8'd139, 8'd3, 32'd0};//{'dest': 139, 'src': 3, 'op': 'move'} |
instructions[40] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[41] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[42] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[43] = {6'd5, 8'd0, 8'd148, 32'd0};//{'src': 148, 'output': 'eth_tx', 'op': 'write'} |
instructions[44] = {6'd6, 8'd0, 8'd0, 32'd0};//{'src': 0, 'op': 'jmp_to_reg'} |
instructions[45] = {6'd3, 8'd148, 8'd3, 32'd0};//{'dest': 148, 'src': 3, 'op': 'move'} |
instructions[42] = {6'd7, 8'd0, 8'd139, 32'd0};//{'src': 139, 'output': 'socket', 'op': 'write'} |
instructions[43] = {6'd6, 8'd0, 8'd2, 32'd0};//{'src': 2, 'op': 'jmp_to_reg'} |
instructions[44] = {6'd8, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'input': 'eth_rx', 'op': 'read'} |
instructions[45] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[46] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[47] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[48] = {6'd7, 8'd0, 8'd148, 32'd0};//{'src': 148, 'output': 'socket', 'op': 'write'} |
instructions[49] = {6'd6, 8'd0, 8'd2, 32'd0};//{'src': 2, 'op': 'jmp_to_reg'} |
instructions[50] = {6'd8, 8'd5, 8'd0, 32'd0};//{'dest': 5, 'input': 'eth_rx', 'op': 'read'} |
instructions[51] = {6'd6, 8'd0, 8'd4, 32'd0};//{'src': 4, 'op': 'jmp_to_reg'} |
instructions[52] = {6'd9, 8'd7, 8'd0, 32'd0};//{'dest': 7, 'input': 'eth_rx', 'op': 'ready'} |
instructions[47] = {6'd3, 8'd5, 8'd139, 32'd0};//{'dest': 5, 'src': 139, 'op': 'move'} |
instructions[48] = {6'd6, 8'd0, 8'd4, 32'd0};//{'src': 4, 'op': 'jmp_to_reg'} |
instructions[49] = {6'd9, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'input': 'eth_rx', 'op': 'ready'} |
instructions[50] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[51] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[52] = {6'd3, 8'd7, 8'd139, 32'd0};//{'dest': 7, 'src': 139, 'op': 'move'} |
instructions[53] = {6'd6, 8'd0, 8'd6, 32'd0};//{'src': 6, 'op': 'jmp_to_reg'} |
instructions[54] = {6'd10, 8'd9, 8'd0, 32'd0};//{'dest': 9, 'input': 'socket', 'op': 'read'} |
instructions[55] = {6'd6, 8'd0, 8'd8, 32'd0};//{'src': 8, 'op': 'jmp_to_reg'} |
instructions[56] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[57] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[58] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[59] = {6'd3, 8'd17, 8'd148, 32'd0};//{'dest': 17, 'src': 148, 'op': 'move'} |
instructions[60] = {6'd6, 8'd0, 8'd18, 32'd0};//{'src': 18, 'op': 'jmp_to_reg'} |
instructions[54] = {6'd10, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'input': 'socket', 'op': 'read'} |
instructions[55] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[56] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[57] = {6'd3, 8'd9, 8'd139, 32'd0};//{'dest': 9, 'src': 139, 'op': 'move'} |
instructions[58] = {6'd6, 8'd0, 8'd8, 32'd0};//{'src': 8, 'op': 'jmp_to_reg'} |
instructions[59] = {6'd0, 8'd142, 8'd0, 32'd0};//{'dest': 142, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[60] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[61] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[62] = {6'd3, 8'd149, 8'd17, 32'd0};//{'dest': 149, 'src': 17, 'op': 'move'} |
instructions[63] = {6'd3, 8'd150, 8'd20, 32'd0};//{'dest': 150, 'src': 20, 'op': 'move'} |
instructions[62] = {6'd3, 8'd11, 8'd142, 32'd0};//{'dest': 11, 'src': 142, 'op': 'move'} |
instructions[63] = {6'd6, 8'd0, 8'd12, 32'd0};//{'src': 12, 'op': 'jmp_to_reg'} |
instructions[64] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[65] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[66] = {6'd11, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '+'} |
instructions[65] = {6'd3, 8'd143, 8'd11, 32'd0};//{'dest': 143, 'src': 11, 'op': 'move'} |
instructions[66] = {6'd3, 8'd144, 8'd14, 32'd0};//{'dest': 144, 'src': 14, 'op': 'move'} |
instructions[67] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[68] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[69] = {6'd3, 8'd17, 8'd148, 32'd0};//{'dest': 17, 'src': 148, 'op': 'move'} |
instructions[69] = {6'd11, 8'd142, 8'd143, 32'd144};//{'srcb': 144, 'src': 143, 'dest': 142, 'signed': False, 'op': '+', 'type': 'int', 'size': 4} |
instructions[70] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[71] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[72] = {6'd3, 8'd149, 8'd17, 32'd0};//{'dest': 149, 'src': 17, 'op': 'move'} |
instructions[72] = {6'd3, 8'd11, 8'd142, 32'd0};//{'dest': 11, 'src': 142, 'op': 'move'} |
instructions[73] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[74] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[75] = {6'd12, 8'd148, 8'd149, 32'd65536};//{'dest': 148, 'src': 149, 'right': 65536, 'signed': False, 'op': '&'} |
instructions[75] = {6'd3, 8'd143, 8'd11, 32'd0};//{'dest': 143, 'src': 11, 'op': 'move'} |
instructions[76] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[77] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[78] = {6'd13, 8'd0, 8'd148, 32'd96};//{'src': 148, 'label': 96, 'op': 'jmp_if_false'} |
instructions[79] = {6'd3, 8'd149, 8'd17, 32'd0};//{'dest': 149, 'src': 17, 'op': 'move'} |
instructions[78] = {6'd12, 8'd142, 8'd143, 32'd65536};//{'src': 143, 'right': 65536, 'dest': 142, 'signed': False, 'op': '&', 'type': 'int', 'size': 4} |
instructions[79] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[80] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[81] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[82] = {6'd12, 8'd148, 8'd149, 32'd65535};//{'dest': 148, 'src': 149, 'right': 65535, 'signed': False, 'op': '&'} |
instructions[81] = {6'd13, 8'd0, 8'd142, 32'd99};//{'src': 142, 'label': 99, 'op': 'jmp_if_false'} |
instructions[82] = {6'd3, 8'd143, 8'd11, 32'd0};//{'dest': 143, 'src': 11, 'op': 'move'} |
instructions[83] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[84] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[85] = {6'd3, 8'd17, 8'd148, 32'd0};//{'dest': 17, 'src': 148, 'op': 'move'} |
instructions[85] = {6'd12, 8'd142, 8'd143, 32'd65535};//{'src': 143, 'right': 65535, 'dest': 142, 'signed': False, 'op': '&', 'type': 'int', 'size': 4} |
instructions[86] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[87] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[88] = {6'd3, 8'd149, 8'd17, 32'd0};//{'dest': 149, 'src': 17, 'op': 'move'} |
instructions[88] = {6'd3, 8'd11, 8'd142, 32'd0};//{'dest': 11, 'src': 142, 'op': 'move'} |
instructions[89] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[90] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[91] = {6'd14, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '+'} |
instructions[91] = {6'd3, 8'd143, 8'd11, 32'd0};//{'dest': 143, 'src': 11, 'op': 'move'} |
instructions[92] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[93] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[94] = {6'd3, 8'd17, 8'd148, 32'd0};//{'dest': 17, 'src': 148, 'op': 'move'} |
instructions[95] = {6'd15, 8'd0, 8'd0, 32'd96};//{'label': 96, 'op': 'goto'} |
instructions[96] = {6'd6, 8'd0, 8'd19, 32'd0};//{'src': 19, 'op': 'jmp_to_reg'} |
instructions[97] = {6'd3, 8'd148, 8'd17, 32'd0};//{'dest': 148, 'src': 17, 'op': 'move'} |
instructions[98] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[99] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[100] = {6'd16, 8'd22, 8'd148, 32'd0};//{'dest': 22, 'src': 148, 'op': '~'} |
instructions[101] = {6'd6, 8'd0, 8'd21, 32'd0};//{'src': 21, 'op': 'jmp_to_reg'} |
instructions[102] = {6'd0, 8'd28, 8'd0, 32'd0};//{'dest': 28, 'literal': 0, 'op': 'literal'} |
instructions[103] = {6'd0, 8'd29, 8'd0, 32'd0};//{'dest': 29, 'literal': 0, 'op': 'literal'} |
instructions[104] = {6'd0, 8'd30, 8'd0, 32'd0};//{'dest': 30, 'literal': 0, 'op': 'literal'} |
instructions[105] = {6'd0, 8'd150, 8'd0, 32'd0};//{'dest': 150, 'literal': 0, 'op': 'literal'} |
instructions[106] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[107] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[108] = {6'd11, 8'd151, 8'd150, 32'd26};//{'dest': 151, 'src': 150, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[109] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[110] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[111] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18319552, 'op': 'memory_read_request'} |
instructions[94] = {6'd14, 8'd142, 8'd143, 32'd1};//{'src': 143, 'right': 1, 'dest': 142, 'signed': False, 'op': '+', 'type': 'int', 'size': 4} |
instructions[95] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[96] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[97] = {6'd3, 8'd11, 8'd142, 32'd0};//{'dest': 11, 'src': 142, 'op': 'move'} |
instructions[98] = {6'd15, 8'd0, 8'd0, 32'd99};//{'label': 99, 'op': 'goto'} |
instructions[99] = {6'd6, 8'd0, 8'd13, 32'd0};//{'src': 13, 'op': 'jmp_to_reg'} |
instructions[100] = {6'd3, 8'd142, 8'd11, 32'd0};//{'dest': 142, 'src': 11, 'op': 'move'} |
instructions[101] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[102] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[103] = {6'd16, 8'd139, 8'd142, 32'd0};//{'dest': 139, 'src': 142, 'op': '~'} |
instructions[104] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[105] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[106] = {6'd3, 8'd16, 8'd139, 32'd0};//{'dest': 16, 'src': 139, 'op': 'move'} |
instructions[107] = {6'd6, 8'd0, 8'd15, 32'd0};//{'src': 15, 'op': 'jmp_to_reg'} |
instructions[108] = {6'd0, 8'd22, 8'd0, 32'd0};//{'dest': 22, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[109] = {6'd0, 8'd23, 8'd0, 32'd0};//{'dest': 23, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[110] = {6'd0, 8'd24, 8'd0, 32'd0};//{'dest': 24, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[111] = {6'd0, 8'd141, 8'd0, 32'd0};//{'dest': 141, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[112] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[113] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18319552, 'op': 'memory_read_wait'} |
instructions[114] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18319552, 'element_size': 2, 'op': 'memory_read'} |
instructions[115] = {6'd3, 8'd150, 8'd27, 32'd0};//{'dest': 150, 'src': 27, 'op': 'move'} |
instructions[113] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[114] = {6'd11, 8'd145, 8'd141, 32'd20};//{'dest': 145, 'src': 141, 'srcb': 20, 'signed': False, 'op': '+'} |
instructions[115] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[116] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[117] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[118] = {6'd11, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '+'} |
instructions[119] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[120] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[121] = {6'd3, 8'd28, 8'd148, 32'd0};//{'dest': 28, 'src': 148, 'op': 'move'} |
instructions[122] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[117] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20357272, 'op': 'memory_read_request'} |
instructions[118] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[119] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20357272, 'op': 'memory_read_wait'} |
instructions[120] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20357272, 'element_size': 2, 'op': 'memory_read'} |
instructions[121] = {6'd3, 8'd141, 8'd21, 32'd0};//{'dest': 141, 'src': 21, 'op': 'move'} |
instructions[122] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[123] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[124] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[125] = {6'd11, 8'd150, 8'd149, 32'd26};//{'dest': 150, 'src': 149, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[124] = {6'd11, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[125] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[126] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[127] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[128] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18320056, 'op': 'memory_read_request'} |
instructions[127] = {6'd3, 8'd22, 8'd139, 32'd0};//{'dest': 22, 'src': 139, 'op': 'move'} |
instructions[128] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[129] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[130] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18320056, 'op': 'memory_read_wait'} |
instructions[131] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18320056, 'element_size': 2, 'op': 'memory_read'} |
instructions[130] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[131] = {6'd11, 8'd141, 8'd140, 32'd20};//{'dest': 141, 'src': 140, 'srcb': 20, 'signed': False, 'op': '+'} |
instructions[132] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[133] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[134] = {6'd3, 8'd29, 8'd148, 32'd0};//{'dest': 29, 'src': 148, 'op': 'move'} |
instructions[135] = {6'd3, 8'd149, 8'd28, 32'd0};//{'dest': 149, 'src': 28, 'op': 'move'} |
instructions[136] = {6'd3, 8'd150, 8'd27, 32'd0};//{'dest': 150, 'src': 27, 'op': 'move'} |
instructions[137] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[134] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20357776, 'op': 'memory_read_request'} |
instructions[135] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[136] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20357776, 'op': 'memory_read_wait'} |
instructions[137] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20357776, 'element_size': 2, 'op': 'memory_read'} |
instructions[138] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[139] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[140] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[141] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[142] = {6'd13, 8'd0, 8'd148, 32'd151};//{'src': 148, 'label': 151, 'op': 'jmp_if_false'} |
instructions[143] = {6'd3, 8'd149, 8'd29, 32'd0};//{'dest': 149, 'src': 29, 'op': 'move'} |
instructions[139] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[140] = {6'd3, 8'd23, 8'd139, 32'd0};//{'dest': 23, 'src': 139, 'op': 'move'} |
instructions[141] = {6'd3, 8'd140, 8'd22, 32'd0};//{'dest': 140, 'src': 22, 'op': 'move'} |
instructions[142] = {6'd3, 8'd141, 8'd21, 32'd0};//{'dest': 141, 'src': 21, 'op': 'move'} |
instructions[143] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[144] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[145] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[146] = {6'd14, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '+'} |
instructions[145] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[146] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[147] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[148] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[149] = {6'd3, 8'd29, 8'd148, 32'd0};//{'dest': 29, 'src': 148, 'op': 'move'} |
instructions[150] = {6'd15, 8'd0, 8'd0, 32'd151};//{'label': 151, 'op': 'goto'} |
instructions[151] = {6'd3, 8'd149, 8'd28, 32'd0};//{'dest': 149, 'src': 28, 'op': 'move'} |
instructions[152] = {6'd0, 8'd151, 8'd0, 32'd0};//{'dest': 151, 'literal': 0, 'op': 'literal'} |
instructions[148] = {6'd13, 8'd0, 8'd139, 32'd157};//{'src': 139, 'label': 157, 'op': 'jmp_if_false'} |
instructions[149] = {6'd3, 8'd140, 8'd23, 32'd0};//{'dest': 140, 'src': 23, 'op': 'move'} |
instructions[150] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[151] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[152] = {6'd14, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[153] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[154] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[155] = {6'd11, 8'd152, 8'd151, 32'd25};//{'dest': 152, 'src': 151, 'srcb': 25, 'signed': False, 'op': '+'} |
instructions[156] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[157] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[158] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18325448, 'op': 'memory_read_request'} |
instructions[155] = {6'd3, 8'd23, 8'd139, 32'd0};//{'dest': 23, 'src': 139, 'op': 'move'} |
instructions[156] = {6'd15, 8'd0, 8'd0, 32'd157};//{'label': 157, 'op': 'goto'} |
instructions[157] = {6'd3, 8'd140, 8'd22, 32'd0};//{'dest': 140, 'src': 22, 'op': 'move'} |
instructions[158] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[159] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[160] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18325448, 'op': 'memory_read_wait'} |
instructions[161] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 18325448, 'element_size': 2, 'op': 'memory_read'} |
instructions[160] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[161] = {6'd11, 8'd146, 8'd145, 32'd19};//{'dest': 146, 'src': 145, 'srcb': 19, 'signed': False, 'op': '+'} |
instructions[162] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[163] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[164] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[164] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20363168, 'op': 'memory_read_request'} |
instructions[165] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[166] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[167] = {6'd22, 8'd0, 8'd148, 32'd182};//{'src': 148, 'label': 182, 'op': 'jmp_if_true'} |
instructions[168] = {6'd3, 8'd149, 8'd29, 32'd0};//{'dest': 149, 'src': 29, 'op': 'move'} |
instructions[169] = {6'd0, 8'd151, 8'd0, 32'd1};//{'dest': 151, 'literal': 1, 'op': 'literal'} |
instructions[170] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[166] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20363168, 'op': 'memory_read_wait'} |
instructions[167] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20363168, 'element_size': 2, 'op': 'memory_read'} |
instructions[168] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[169] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[170] = {6'd21, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[171] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[172] = {6'd11, 8'd152, 8'd151, 32'd25};//{'dest': 152, 'src': 151, 'srcb': 25, 'signed': False, 'op': '+'} |
instructions[173] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[174] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[175] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18325800, 'op': 'memory_read_request'} |
instructions[172] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[173] = {6'd22, 8'd0, 8'd139, 32'd188};//{'src': 139, 'label': 188, 'op': 'jmp_if_true'} |
instructions[174] = {6'd3, 8'd140, 8'd23, 32'd0};//{'dest': 140, 'src': 23, 'op': 'move'} |
instructions[175] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[176] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[177] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18325800, 'op': 'memory_read_wait'} |
instructions[178] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 18325800, 'element_size': 2, 'op': 'memory_read'} |
instructions[177] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[178] = {6'd11, 8'd146, 8'd145, 32'd19};//{'dest': 146, 'src': 145, 'srcb': 19, 'signed': False, 'op': '+'} |
instructions[179] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[180] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[181] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[181] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20363456, 'op': 'memory_read_request'} |
instructions[182] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[183] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[184] = {6'd13, 8'd0, 8'd148, 32'd206};//{'src': 148, 'label': 206, 'op': 'jmp_if_false'} |
instructions[185] = {6'd3, 8'd148, 8'd28, 32'd0};//{'dest': 148, 'src': 28, 'op': 'move'} |
instructions[186] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[187] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[183] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20363456, 'op': 'memory_read_wait'} |
instructions[184] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20363456, 'element_size': 2, 'op': 'memory_read'} |
instructions[185] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[186] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[187] = {6'd21, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[188] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[189] = {6'd11, 8'd150, 8'd149, 32'd25};//{'dest': 150, 'src': 149, 'srcb': 25, 'signed': False, 'op': '+'} |
instructions[190] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[191] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[192] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[193] = {6'd3, 8'd148, 8'd29, 32'd0};//{'dest': 148, 'src': 29, 'op': 'move'} |
instructions[194] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[195] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[189] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[190] = {6'd13, 8'd0, 8'd139, 32'd212};//{'src': 139, 'label': 212, 'op': 'jmp_if_false'} |
instructions[191] = {6'd3, 8'd139, 8'd22, 32'd0};//{'dest': 139, 'src': 22, 'op': 'move'} |
instructions[192] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[193] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[194] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[195] = {6'd11, 8'd141, 8'd140, 32'd19};//{'dest': 141, 'src': 140, 'srcb': 19, 'signed': False, 'op': '+'} |
instructions[196] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[197] = {6'd11, 8'd150, 8'd149, 32'd25};//{'dest': 150, 'src': 149, 'srcb': 25, 'signed': False, 'op': '+'} |
instructions[198] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[199] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[200] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[201] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[197] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[198] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[199] = {6'd3, 8'd139, 8'd23, 32'd0};//{'dest': 139, 'src': 23, 'op': 'move'} |
instructions[200] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[201] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[202] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[203] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[204] = {6'd3, 8'd30, 8'd148, 32'd0};//{'dest': 30, 'src': 148, 'op': 'move'} |
instructions[205] = {6'd15, 8'd0, 8'd0, 32'd206};//{'label': 206, 'op': 'goto'} |
instructions[206] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[207] = {6'd3, 8'd24, 8'd30, 32'd0};//{'dest': 24, 'src': 30, 'op': 'move'} |
instructions[208] = {6'd6, 8'd0, 8'd23, 32'd0};//{'src': 23, 'op': 'jmp_to_reg'} |
instructions[209] = {6'd0, 8'd38, 8'd0, 32'd0};//{'dest': 38, 'literal': 0, 'op': 'literal'} |
instructions[210] = {6'd0, 8'd39, 8'd0, 32'd0};//{'dest': 39, 'literal': 0, 'op': 'literal'} |
instructions[211] = {6'd3, 8'd148, 8'd33, 32'd0};//{'dest': 148, 'src': 33, 'op': 'move'} |
instructions[203] = {6'd11, 8'd141, 8'd140, 32'd19};//{'dest': 141, 'src': 140, 'srcb': 19, 'signed': False, 'op': '+'} |
instructions[204] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[205] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[206] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[207] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[208] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[209] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[210] = {6'd3, 8'd24, 8'd139, 32'd0};//{'dest': 24, 'src': 139, 'op': 'move'} |
instructions[211] = {6'd15, 8'd0, 8'd0, 32'd212};//{'label': 212, 'op': 'goto'} |
instructions[212] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[213] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[214] = {6'd24, 8'd0, 8'd148, 32'd0};//{'src': 148, 'line': 107, 'signed': False, 'file': '/media/sdb1/Projects/Chips-Demo/source/server.h', 'op': 'report'} |
instructions[215] = {6'd3, 8'd148, 8'd34, 32'd0};//{'dest': 148, 'src': 34, 'op': 'move'} |
instructions[216] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[217] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[218] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[219] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[220] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[213] = {6'd3, 8'd139, 8'd24, 32'd0};//{'dest': 139, 'src': 24, 'op': 'move'} |
instructions[214] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[215] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[216] = {6'd3, 8'd18, 8'd139, 32'd0};//{'dest': 18, 'src': 139, 'op': 'move'} |
instructions[217] = {6'd6, 8'd0, 8'd17, 32'd0};//{'src': 17, 'op': 'jmp_to_reg'} |
instructions[218] = {6'd0, 8'd32, 8'd0, 32'd0};//{'dest': 32, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[219] = {6'd0, 8'd33, 8'd0, 32'd0};//{'dest': 33, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[220] = {6'd3, 8'd139, 8'd27, 32'd0};//{'dest': 139, 'src': 27, 'op': 'move'} |
instructions[221] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[222] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[223] = {6'd3, 8'd148, 8'd35, 32'd0};//{'dest': 148, 'src': 35, 'op': 'move'} |
instructions[224] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[225] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[222] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[223] = {6'd24, 8'd0, 8'd139, 32'd0};//{'src': 139, 'signed': False, 'file': '/media/sdb1/Projects/Chips-Demo/source/server.h', 'line': 107, 'type': 'int', 'op': 'report'} |
instructions[224] = {6'd3, 8'd139, 8'd28, 32'd0};//{'dest': 139, 'src': 28, 'op': 'move'} |
instructions[225] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[226] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[227] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[228] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[227] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[228] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[229] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[230] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[231] = {6'd3, 8'd148, 8'd36, 32'd0};//{'dest': 148, 'src': 36, 'op': 'move'} |
instructions[232] = {6'd0, 8'd149, 8'd0, 32'd2};//{'dest': 149, 'literal': 2, 'op': 'literal'} |
instructions[233] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[230] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[231] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[232] = {6'd3, 8'd139, 8'd29, 32'd0};//{'dest': 139, 'src': 29, 'op': 'move'} |
instructions[233] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[234] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[235] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[236] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[235] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[236] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[237] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[238] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[239] = {6'd3, 8'd148, 8'd10, 32'd0};//{'dest': 148, 'src': 10, 'op': 'move'} |
instructions[240] = {6'd0, 8'd149, 8'd0, 32'd3};//{'dest': 149, 'literal': 3, 'op': 'literal'} |
instructions[241] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[238] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[239] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[240] = {6'd3, 8'd139, 8'd30, 32'd0};//{'dest': 139, 'src': 30, 'op': 'move'} |
instructions[241] = {6'd0, 8'd140, 8'd0, 32'd2};//{'dest': 140, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[242] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[243] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[244] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[243] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[244] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[245] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[246] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[247] = {6'd3, 8'd148, 8'd11, 32'd0};//{'dest': 148, 'src': 11, 'op': 'move'} |
instructions[248] = {6'd0, 8'd149, 8'd0, 32'd4};//{'dest': 149, 'literal': 4, 'op': 'literal'} |
instructions[249] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[246] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[247] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[248] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[249] = {6'd0, 8'd140, 8'd0, 32'd3};//{'dest': 140, 'literal': 3, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[250] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[251] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[252] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[251] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[252] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[253] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[254] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[255] = {6'd3, 8'd148, 8'd12, 32'd0};//{'dest': 148, 'src': 12, 'op': 'move'} |
instructions[256] = {6'd0, 8'd149, 8'd0, 32'd5};//{'dest': 149, 'literal': 5, 'op': 'literal'} |
instructions[257] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[254] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[255] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[256] = {6'd0, 8'd139, 8'd0, 32'd515};//{'dest': 139, 'literal': 515, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[257] = {6'd0, 8'd140, 8'd0, 32'd4};//{'dest': 140, 'literal': 4, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[258] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[259] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[260] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[259] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[260] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[261] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[262] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[263] = {6'd3, 8'd148, 8'd37, 32'd0};//{'dest': 148, 'src': 37, 'op': 'move'} |
instructions[264] = {6'd0, 8'd149, 8'd0, 32'd6};//{'dest': 149, 'literal': 6, 'op': 'literal'} |
instructions[265] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[262] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[263] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[264] = {6'd0, 8'd139, 8'd0, 32'd1029};//{'dest': 139, 'literal': 1029, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[265] = {6'd0, 8'd140, 8'd0, 32'd5};//{'dest': 140, 'literal': 5, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[266] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[267] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[268] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[267] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[268] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[269] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[270] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[271] = {6'd3, 8'd1, 8'd33, 32'd0};//{'dest': 1, 'src': 33, 'op': 'move'} |
instructions[272] = {6'd1, 8'd0, 8'd0, 32'd40};//{'dest': 0, 'label': 40, 'op': 'jmp_and_link'} |
instructions[273] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[270] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[271] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[272] = {6'd3, 8'd139, 8'd31, 32'd0};//{'dest': 139, 'src': 31, 'op': 'move'} |
instructions[273] = {6'd0, 8'd140, 8'd0, 32'd6};//{'dest': 140, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[274] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[275] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[276] = {6'd3, 8'd39, 8'd148, 32'd0};//{'dest': 39, 'src': 148, 'op': 'move'} |
instructions[277] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[276] = {6'd11, 8'd141, 8'd140, 32'd26};//{'dest': 141, 'src': 140, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[277] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[278] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[279] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[280] = {6'd3, 8'd38, 8'd148, 32'd0};//{'dest': 38, 'src': 148, 'op': 'move'} |
instructions[279] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[280] = {6'd3, 8'd140, 8'd27, 32'd0};//{'dest': 140, 'src': 27, 'op': 'move'} |
instructions[281] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[282] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[283] = {6'd3, 8'd149, 8'd38, 32'd0};//{'dest': 149, 'src': 38, 'op': 'move'} |
instructions[284] = {6'd3, 8'd150, 8'd33, 32'd0};//{'dest': 150, 'src': 33, 'op': 'move'} |
instructions[285] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[283] = {6'd3, 8'd1, 8'd140, 32'd0};//{'dest': 1, 'src': 140, 'op': 'move'} |
instructions[284] = {6'd1, 8'd0, 8'd0, 32'd34};//{'dest': 0, 'label': 34, 'op': 'jmp_and_link'} |
instructions[285] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[286] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[287] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[288] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[289] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[290] = {6'd13, 8'd0, 8'd148, 32'd312};//{'src': 148, 'label': 312, 'op': 'jmp_if_false'} |
instructions[291] = {6'd3, 8'd149, 8'd39, 32'd0};//{'dest': 149, 'src': 39, 'op': 'move'} |
instructions[292] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[287] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[288] = {6'd3, 8'd33, 8'd139, 32'd0};//{'dest': 33, 'src': 139, 'op': 'move'} |
instructions[289] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[290] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[291] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[292] = {6'd3, 8'd32, 8'd139, 32'd0};//{'dest': 32, 'src': 139, 'op': 'move'} |
instructions[293] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[294] = {6'd11, 8'd150, 8'd149, 32'd32};//{'dest': 150, 'src': 149, 'srcb': 32, 'signed': False, 'op': '+'} |
instructions[295] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[296] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[297] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18332920, 'op': 'memory_read_request'} |
instructions[294] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[295] = {6'd3, 8'd140, 8'd32, 32'd0};//{'dest': 140, 'src': 32, 'op': 'move'} |
instructions[296] = {6'd3, 8'd141, 8'd27, 32'd0};//{'dest': 141, 'src': 27, 'op': 'move'} |
instructions[297] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[298] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[299] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18332920, 'op': 'memory_read_wait'} |
instructions[300] = {6'd19, 8'd1, 8'd150, 32'd0};//{'dest': 1, 'src': 150, 'sequence': 18332920, 'element_size': 2, 'op': 'memory_read'} |
instructions[301] = {6'd1, 8'd0, 8'd0, 32'd40};//{'dest': 0, 'label': 40, 'op': 'jmp_and_link'} |
instructions[302] = {6'd3, 8'd148, 8'd39, 32'd0};//{'dest': 148, 'src': 39, 'op': 'move'} |
instructions[303] = {6'd14, 8'd39, 8'd39, 32'd1};//{'dest': 39, 'src': 39, 'right': 1, 'signed': False, 'op': '+'} |
instructions[304] = {6'd3, 8'd149, 8'd38, 32'd0};//{'dest': 149, 'src': 38, 'op': 'move'} |
instructions[299] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[300] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[301] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[302] = {6'd13, 8'd0, 8'd139, 32'd327};//{'src': 139, 'label': 327, 'op': 'jmp_if_false'} |
instructions[303] = {6'd3, 8'd141, 8'd33, 32'd0};//{'dest': 141, 'src': 33, 'op': 'move'} |
instructions[304] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[305] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[306] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[307] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[306] = {6'd11, 8'd145, 8'd141, 32'd26};//{'dest': 145, 'src': 141, 'srcb': 26, 'signed': False, 'op': '+'} |
instructions[307] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[308] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[309] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[310] = {6'd3, 8'd38, 8'd148, 32'd0};//{'dest': 38, 'src': 148, 'op': 'move'} |
instructions[311] = {6'd15, 8'd0, 8'd0, 32'd281};//{'label': 281, 'op': 'goto'} |
instructions[312] = {6'd6, 8'd0, 8'd31, 32'd0};//{'src': 31, 'op': 'jmp_to_reg'} |
instructions[313] = {6'd0, 8'd43, 8'd0, 32'd0};//{'dest': 43, 'literal': 0, 'op': 'literal'} |
instructions[314] = {6'd0, 8'd44, 8'd0, 32'd0};//{'dest': 44, 'literal': 0, 'op': 'literal'} |
instructions[315] = {6'd0, 8'd45, 8'd0, 32'd0};//{'dest': 45, 'literal': 0, 'op': 'literal'} |
instructions[316] = {6'd1, 8'd6, 8'd0, 32'd52};//{'dest': 6, 'label': 52, 'op': 'jmp_and_link'} |
instructions[317] = {6'd3, 8'd149, 8'd7, 32'd0};//{'dest': 149, 'src': 7, 'op': 'move'} |
instructions[318] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[319] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[320] = {6'd25, 8'd148, 8'd149, 32'd0};//{'dest': 148, 'src': 149, 'right': 0, 'signed': False, 'op': '=='} |
instructions[309] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20371072, 'op': 'memory_read_request'} |
instructions[310] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[311] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20371072, 'op': 'memory_read_wait'} |
instructions[312] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20371072, 'element_size': 2, 'op': 'memory_read'} |
instructions[313] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[314] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[315] = {6'd3, 8'd1, 8'd140, 32'd0};//{'dest': 1, 'src': 140, 'op': 'move'} |
instructions[316] = {6'd1, 8'd0, 8'd0, 32'd34};//{'dest': 0, 'label': 34, 'op': 'jmp_and_link'} |
instructions[317] = {6'd3, 8'd139, 8'd33, 32'd0};//{'dest': 139, 'src': 33, 'op': 'move'} |
instructions[318] = {6'd14, 8'd33, 8'd33, 32'd1};//{'src': 33, 'right': 1, 'dest': 33, 'signed': False, 'op': '+', 'size': 2} |
instructions[319] = {6'd3, 8'd140, 8'd32, 32'd0};//{'dest': 140, 'src': 32, 'op': 'move'} |
instructions[320] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[321] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[322] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[323] = {6'd13, 8'd0, 8'd148, 32'd327};//{'src': 148, 'label': 327, 'op': 'jmp_if_false'} |
instructions[324] = {6'd0, 8'd41, 8'd0, 32'd0};//{'dest': 41, 'literal': 0, 'op': 'literal'} |
instructions[325] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[326] = {6'd15, 8'd0, 8'd0, 32'd327};//{'label': 327, 'op': 'goto'} |
instructions[327] = {6'd1, 8'd4, 8'd0, 32'd50};//{'dest': 4, 'label': 50, 'op': 'jmp_and_link'} |
instructions[328] = {6'd3, 8'd148, 8'd5, 32'd0};//{'dest': 148, 'src': 5, 'op': 'move'} |
instructions[329] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[330] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[331] = {6'd3, 8'd43, 8'd148, 32'd0};//{'dest': 43, 'src': 148, 'op': 'move'} |
instructions[332] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[322] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[323] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[324] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[325] = {6'd3, 8'd32, 8'd139, 32'd0};//{'dest': 32, 'src': 139, 'op': 'move'} |
instructions[326] = {6'd15, 8'd0, 8'd0, 32'd293};//{'label': 293, 'op': 'goto'} |
instructions[327] = {6'd6, 8'd0, 8'd25, 32'd0};//{'src': 25, 'op': 'jmp_to_reg'} |
instructions[328] = {6'd0, 8'd37, 8'd0, 32'd0};//{'dest': 37, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[329] = {6'd0, 8'd38, 8'd0, 32'd0};//{'dest': 38, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[330] = {6'd0, 8'd39, 8'd0, 32'd0};//{'dest': 39, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[331] = {6'd1, 8'd6, 8'd0, 32'd49};//{'dest': 6, 'label': 49, 'op': 'jmp_and_link'} |
instructions[332] = {6'd3, 8'd140, 8'd7, 32'd0};//{'dest': 140, 'src': 7, 'op': 'move'} |
instructions[333] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[334] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[335] = {6'd3, 8'd44, 8'd148, 32'd0};//{'dest': 44, 'src': 148, 'op': 'move'} |
instructions[336] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[335] = {6'd25, 8'd139, 8'd140, 32'd0};//{'src': 140, 'right': 0, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[336] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[337] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[338] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[339] = {6'd3, 8'd45, 8'd148, 32'd0};//{'dest': 45, 'src': 148, 'op': 'move'} |
instructions[338] = {6'd13, 8'd0, 8'd139, 32'd345};//{'src': 139, 'label': 345, 'op': 'jmp_if_false'} |
instructions[339] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[340] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[341] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[342] = {6'd3, 8'd149, 8'd45, 32'd0};//{'dest': 149, 'src': 45, 'op': 'move'} |
instructions[343] = {6'd3, 8'd150, 8'd43, 32'd0};//{'dest': 150, 'src': 43, 'op': 'move'} |
instructions[344] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[345] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[346] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[342] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[343] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[344] = {6'd15, 8'd0, 8'd0, 32'd345};//{'label': 345, 'op': 'goto'} |
instructions[345] = {6'd1, 8'd4, 8'd0, 32'd44};//{'dest': 4, 'label': 44, 'op': 'jmp_and_link'} |
instructions[346] = {6'd3, 8'd139, 8'd5, 32'd0};//{'dest': 139, 'src': 5, 'op': 'move'} |
instructions[347] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[348] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[349] = {6'd13, 8'd0, 8'd148, 32'd369};//{'src': 148, 'label': 369, 'op': 'jmp_if_false'} |
instructions[350] = {6'd1, 8'd4, 8'd0, 32'd50};//{'dest': 4, 'label': 50, 'op': 'jmp_and_link'} |
instructions[351] = {6'd3, 8'd148, 8'd5, 32'd0};//{'dest': 148, 'src': 5, 'op': 'move'} |
instructions[352] = {6'd3, 8'd149, 8'd44, 32'd0};//{'dest': 149, 'src': 44, 'op': 'move'} |
instructions[353] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[354] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[355] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[349] = {6'd3, 8'd37, 8'd139, 32'd0};//{'dest': 37, 'src': 139, 'op': 'move'} |
instructions[350] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[351] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[352] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[353] = {6'd3, 8'd38, 8'd139, 32'd0};//{'dest': 38, 'src': 139, 'op': 'move'} |
instructions[354] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[355] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[356] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[357] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[358] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[359] = {6'd3, 8'd148, 8'd44, 32'd0};//{'dest': 148, 'src': 44, 'op': 'move'} |
instructions[360] = {6'd14, 8'd44, 8'd44, 32'd1};//{'dest': 44, 'src': 44, 'right': 1, 'signed': False, 'op': '+'} |
instructions[361] = {6'd3, 8'd149, 8'd45, 32'd0};//{'dest': 149, 'src': 45, 'op': 'move'} |
instructions[357] = {6'd3, 8'd39, 8'd139, 32'd0};//{'dest': 39, 'src': 139, 'op': 'move'} |
instructions[358] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[359] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[360] = {6'd3, 8'd140, 8'd39, 32'd0};//{'dest': 140, 'src': 39, 'op': 'move'} |
instructions[361] = {6'd3, 8'd141, 8'd37, 32'd0};//{'dest': 141, 'src': 37, 'op': 'move'} |
instructions[362] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[363] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[364] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[364] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[365] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[366] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[367] = {6'd3, 8'd45, 8'd148, 32'd0};//{'dest': 45, 'src': 148, 'op': 'move'} |
instructions[368] = {6'd15, 8'd0, 8'd0, 32'd340};//{'label': 340, 'op': 'goto'} |
instructions[369] = {6'd0, 8'd150, 8'd0, 32'd0};//{'dest': 150, 'literal': 0, 'op': 'literal'} |
instructions[370] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[367] = {6'd13, 8'd0, 8'd139, 32'd387};//{'src': 139, 'label': 387, 'op': 'jmp_if_false'} |
instructions[368] = {6'd1, 8'd4, 8'd0, 32'd44};//{'dest': 4, 'label': 44, 'op': 'jmp_and_link'} |
instructions[369] = {6'd3, 8'd139, 8'd5, 32'd0};//{'dest': 139, 'src': 5, 'op': 'move'} |
instructions[370] = {6'd3, 8'd140, 8'd38, 32'd0};//{'dest': 140, 'src': 38, 'op': 'move'} |
instructions[371] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[372] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[373] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[372] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[373] = {6'd11, 8'd141, 8'd140, 32'd36};//{'dest': 141, 'src': 140, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[374] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[375] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18333640, 'op': 'memory_read_request'} |
instructions[376] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[377] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18333640, 'op': 'memory_read_wait'} |
instructions[378] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18333640, 'element_size': 2, 'op': 'memory_read'} |
instructions[379] = {6'd3, 8'd150, 8'd10, 32'd0};//{'dest': 150, 'src': 10, 'op': 'move'} |
instructions[375] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[376] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[377] = {6'd3, 8'd139, 8'd38, 32'd0};//{'dest': 139, 'src': 38, 'op': 'move'} |
instructions[378] = {6'd14, 8'd38, 8'd38, 32'd1};//{'src': 38, 'right': 1, 'dest': 38, 'signed': False, 'op': '+', 'size': 2} |
instructions[379] = {6'd3, 8'd140, 8'd39, 32'd0};//{'dest': 140, 'src': 39, 'op': 'move'} |
instructions[380] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[381] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[382] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[382] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[383] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[384] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[385] = {6'd13, 8'd0, 8'd148, 32'd399};//{'src': 148, 'label': 399, 'op': 'jmp_if_false'} |
instructions[386] = {6'd0, 8'd150, 8'd0, 32'd0};//{'dest': 150, 'literal': 0, 'op': 'literal'} |
instructions[387] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[385] = {6'd3, 8'd39, 8'd139, 32'd0};//{'dest': 39, 'src': 139, 'op': 'move'} |
instructions[386] = {6'd15, 8'd0, 8'd0, 32'd358};//{'label': 358, 'op': 'goto'} |
instructions[387] = {6'd0, 8'd141, 8'd0, 32'd0};//{'dest': 141, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[388] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[389] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[390] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[389] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[390] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[391] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[392] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18333992, 'op': 'memory_read_request'} |
instructions[393] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[394] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18333992, 'op': 'memory_read_wait'} |
instructions[395] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18333992, 'element_size': 2, 'op': 'memory_read'} |
instructions[396] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[392] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[393] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372080, 'op': 'memory_read_request'} |
instructions[394] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[395] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372080, 'op': 'memory_read_wait'} |
instructions[396] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20372080, 'element_size': 2, 'op': 'memory_read'} |
instructions[397] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[398] = {6'd26, 8'd148, 8'd149, 32'd65535};//{'dest': 148, 'src': 149, 'right': 65535, 'signed': False, 'op': '!='} |
instructions[399] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[398] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[399] = {6'd26, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[400] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[401] = {6'd13, 8'd0, 8'd148, 32'd405};//{'src': 148, 'label': 405, 'op': 'jmp_if_false'} |
instructions[402] = {6'd0, 8'd41, 8'd0, 32'd0};//{'dest': 41, 'literal': 0, 'op': 'literal'} |
instructions[403] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[404] = {6'd15, 8'd0, 8'd0, 32'd405};//{'label': 405, 'op': 'goto'} |
instructions[405] = {6'd0, 8'd150, 8'd0, 32'd1};//{'dest': 150, 'literal': 1, 'op': 'literal'} |
instructions[406] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[401] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[402] = {6'd13, 8'd0, 8'd139, 32'd416};//{'src': 139, 'label': 416, 'op': 'jmp_if_false'} |
instructions[403] = {6'd0, 8'd141, 8'd0, 32'd0};//{'dest': 141, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[404] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[405] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[406] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[407] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[408] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[409] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[408] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[409] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372368, 'op': 'memory_read_request'} |
instructions[410] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[411] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18334568, 'op': 'memory_read_request'} |
instructions[412] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[413] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18334568, 'op': 'memory_read_wait'} |
instructions[414] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18334568, 'element_size': 2, 'op': 'memory_read'} |
instructions[415] = {6'd3, 8'd150, 8'd11, 32'd0};//{'dest': 150, 'src': 11, 'op': 'move'} |
instructions[411] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372368, 'op': 'memory_read_wait'} |
instructions[412] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20372368, 'element_size': 2, 'op': 'memory_read'} |
instructions[413] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[414] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[415] = {6'd26, 8'd139, 8'd140, 32'd65535};//{'src': 140, 'right': 65535, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[416] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[417] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[418] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[419] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[418] = {6'd13, 8'd0, 8'd139, 32'd425};//{'src': 139, 'label': 425, 'op': 'jmp_if_false'} |
instructions[419] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[420] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[421] = {6'd13, 8'd0, 8'd148, 32'd435};//{'src': 148, 'label': 435, 'op': 'jmp_if_false'} |
instructions[422] = {6'd0, 8'd150, 8'd0, 32'd1};//{'dest': 150, 'literal': 1, 'op': 'literal'} |
instructions[423] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[424] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[425] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[421] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[422] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[423] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[424] = {6'd15, 8'd0, 8'd0, 32'd425};//{'label': 425, 'op': 'goto'} |
instructions[425] = {6'd0, 8'd141, 8'd0, 32'd1};//{'dest': 141, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[426] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[427] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[428] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18334856, 'op': 'memory_read_request'} |
instructions[428] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[429] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[430] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18334856, 'op': 'memory_read_wait'} |
instructions[431] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18334856, 'element_size': 2, 'op': 'memory_read'} |
instructions[430] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[431] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372944, 'op': 'memory_read_request'} |
instructions[432] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[433] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[434] = {6'd26, 8'd148, 8'd149, 32'd65535};//{'dest': 148, 'src': 149, 'right': 65535, 'signed': False, 'op': '!='} |
instructions[433] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20372944, 'op': 'memory_read_wait'} |
instructions[434] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20372944, 'element_size': 2, 'op': 'memory_read'} |
instructions[435] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[436] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[437] = {6'd13, 8'd0, 8'd148, 32'd441};//{'src': 148, 'label': 441, 'op': 'jmp_if_false'} |
instructions[438] = {6'd0, 8'd41, 8'd0, 32'd0};//{'dest': 41, 'literal': 0, 'op': 'literal'} |
instructions[439] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[440] = {6'd15, 8'd0, 8'd0, 32'd441};//{'label': 441, 'op': 'goto'} |
instructions[441] = {6'd0, 8'd150, 8'd0, 32'd2};//{'dest': 150, 'literal': 2, 'op': 'literal'} |
instructions[437] = {6'd26, 8'd139, 8'd140, 32'd515};//{'src': 140, 'right': 515, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[438] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[439] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[440] = {6'd13, 8'd0, 8'd139, 32'd454};//{'src': 139, 'label': 454, 'op': 'jmp_if_false'} |
instructions[441] = {6'd0, 8'd141, 8'd0, 32'd1};//{'dest': 141, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[442] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[443] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[444] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[444] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[445] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[446] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[447] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18335432, 'op': 'memory_read_request'} |
instructions[447] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20373232, 'op': 'memory_read_request'} |
instructions[448] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[449] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18335432, 'op': 'memory_read_wait'} |
instructions[450] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18335432, 'element_size': 2, 'op': 'memory_read'} |
instructions[451] = {6'd3, 8'd150, 8'd12, 32'd0};//{'dest': 150, 'src': 12, 'op': 'move'} |
instructions[449] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20373232, 'op': 'memory_read_wait'} |
instructions[450] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20373232, 'element_size': 2, 'op': 'memory_read'} |
instructions[451] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[452] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[453] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[454] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[453] = {6'd26, 8'd139, 8'd140, 32'd65535};//{'src': 140, 'right': 65535, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[454] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[455] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[456] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[457] = {6'd13, 8'd0, 8'd148, 32'd471};//{'src': 148, 'label': 471, 'op': 'jmp_if_false'} |
instructions[458] = {6'd0, 8'd150, 8'd0, 32'd2};//{'dest': 150, 'literal': 2, 'op': 'literal'} |
instructions[456] = {6'd13, 8'd0, 8'd139, 32'd463};//{'src': 139, 'label': 463, 'op': 'jmp_if_false'} |
instructions[457] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[458] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[459] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[460] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[461] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[462] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[463] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[464] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18335720, 'op': 'memory_read_request'} |
instructions[460] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[461] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[462] = {6'd15, 8'd0, 8'd0, 32'd463};//{'label': 463, 'op': 'goto'} |
instructions[463] = {6'd0, 8'd141, 8'd0, 32'd2};//{'dest': 141, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[464] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[465] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[466] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18335720, 'op': 'memory_read_wait'} |
instructions[467] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18335720, 'element_size': 2, 'op': 'memory_read'} |
instructions[466] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[467] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[468] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[469] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[470] = {6'd26, 8'd148, 8'd149, 32'd65535};//{'dest': 148, 'src': 149, 'right': 65535, 'signed': False, 'op': '!='} |
instructions[471] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[472] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[473] = {6'd13, 8'd0, 8'd148, 32'd477};//{'src': 148, 'label': 477, 'op': 'jmp_if_false'} |
instructions[474] = {6'd0, 8'd41, 8'd0, 32'd0};//{'dest': 41, 'literal': 0, 'op': 'literal'} |
instructions[475] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[476] = {6'd15, 8'd0, 8'd0, 32'd477};//{'label': 477, 'op': 'goto'} |
instructions[477] = {6'd0, 8'd150, 8'd0, 32'd6};//{'dest': 150, 'literal': 6, 'op': 'literal'} |
instructions[478] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[479] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[480] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[469] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20373872, 'op': 'memory_read_request'} |
instructions[470] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[471] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20373872, 'op': 'memory_read_wait'} |
instructions[472] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20373872, 'element_size': 2, 'op': 'memory_read'} |
instructions[473] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[474] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[475] = {6'd26, 8'd139, 8'd140, 32'd1029};//{'src': 140, 'right': 1029, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[476] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[477] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[478] = {6'd13, 8'd0, 8'd139, 32'd492};//{'src': 139, 'label': 492, 'op': 'jmp_if_false'} |
instructions[479] = {6'd0, 8'd141, 8'd0, 32'd2};//{'dest': 141, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[480] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[481] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[482] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[483] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18336296, 'op': 'memory_read_request'} |
instructions[482] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[483] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[484] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[485] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18336296, 'op': 'memory_read_wait'} |
instructions[486] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18336296, 'element_size': 2, 'op': 'memory_read'} |
instructions[487] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[488] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[489] = {6'd25, 8'd148, 8'd149, 32'd2054};//{'dest': 148, 'src': 149, 'right': 2054, 'signed': False, 'op': '=='} |
instructions[485] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20374160, 'op': 'memory_read_request'} |
instructions[486] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[487] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20374160, 'op': 'memory_read_wait'} |
instructions[488] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20374160, 'element_size': 2, 'op': 'memory_read'} |
instructions[489] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[490] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[491] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[492] = {6'd13, 8'd0, 8'd148, 32'd704};//{'src': 148, 'label': 704, 'op': 'jmp_if_false'} |
instructions[493] = {6'd0, 8'd150, 8'd0, 32'd10};//{'dest': 150, 'literal': 10, 'op': 'literal'} |
instructions[494] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[495] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[496] = {6'd11, 8'd151, 8'd150, 32'd42};//{'dest': 151, 'src': 150, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[491] = {6'd26, 8'd139, 8'd140, 32'd65535};//{'src': 140, 'right': 65535, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[492] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[493] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[494] = {6'd13, 8'd0, 8'd139, 32'd501};//{'src': 139, 'label': 501, 'op': 'jmp_if_false'} |
instructions[495] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[496] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[497] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[498] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[499] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18336800, 'op': 'memory_read_request'} |
instructions[500] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[501] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18336800, 'op': 'memory_read_wait'} |
instructions[502] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18336800, 'element_size': 2, 'op': 'memory_read'} |
instructions[498] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[499] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[500] = {6'd15, 8'd0, 8'd0, 32'd501};//{'label': 501, 'op': 'goto'} |
instructions[501] = {6'd0, 8'd141, 8'd0, 32'd6};//{'dest': 141, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[502] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[503] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[504] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[505] = {6'd25, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '=='} |
instructions[504] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[505] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[506] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[507] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[508] = {6'd13, 8'd0, 8'd148, 32'd701};//{'src': 148, 'label': 701, 'op': 'jmp_if_false'} |
instructions[509] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[510] = {6'd0, 8'd149, 8'd0, 32'd7};//{'dest': 149, 'literal': 7, 'op': 'literal'} |
instructions[507] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20374736, 'op': 'memory_read_request'} |
instructions[508] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[509] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20374736, 'op': 'memory_read_wait'} |
instructions[510] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20374736, 'element_size': 2, 'op': 'memory_read'} |
instructions[511] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[512] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[513] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[513] = {6'd25, 8'd139, 8'd140, 32'd2054};//{'src': 140, 'right': 2054, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[514] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[515] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[516] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[517] = {6'd0, 8'd148, 8'd0, 32'd2048};//{'dest': 148, 'literal': 2048, 'op': 'literal'} |
instructions[518] = {6'd0, 8'd149, 8'd0, 32'd8};//{'dest': 149, 'literal': 8, 'op': 'literal'} |
instructions[516] = {6'd13, 8'd0, 8'd139, 32'd749};//{'src': 139, 'label': 749, 'op': 'jmp_if_false'} |
instructions[517] = {6'd0, 8'd141, 8'd0, 32'd10};//{'dest': 141, 'literal': 10, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[518] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[519] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[520] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[521] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[520] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[521] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[522] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[523] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[524] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[525] = {6'd0, 8'd148, 8'd0, 32'd1540};//{'dest': 148, 'literal': 1540, 'op': 'literal'} |
instructions[526] = {6'd0, 8'd149, 8'd0, 32'd9};//{'dest': 149, 'literal': 9, 'op': 'literal'} |
instructions[523] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20375240, 'op': 'memory_read_request'} |
instructions[524] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[525] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20375240, 'op': 'memory_read_wait'} |
instructions[526] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20375240, 'element_size': 2, 'op': 'memory_read'} |
instructions[527] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[528] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[529] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[529] = {6'd25, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[530] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[531] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[532] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[533] = {6'd0, 8'd148, 8'd0, 32'd2};//{'dest': 148, 'literal': 2, 'op': 'literal'} |
instructions[534] = {6'd0, 8'd149, 8'd0, 32'd10};//{'dest': 149, 'literal': 10, 'op': 'literal'} |
instructions[532] = {6'd13, 8'd0, 8'd139, 32'd743};//{'src': 139, 'label': 743, 'op': 'jmp_if_false'} |
instructions[533] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[534] = {6'd0, 8'd140, 8'd0, 32'd7};//{'dest': 140, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[535] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[536] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[537] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[537] = {6'd27, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': True, 'op': '+'} |
instructions[538] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[539] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[540] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[541] = {6'd3, 8'd148, 8'd10, 32'd0};//{'dest': 148, 'src': 10, 'op': 'move'} |
instructions[542] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[540] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[541] = {6'd0, 8'd139, 8'd0, 32'd2048};//{'dest': 139, 'literal': 2048, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[542] = {6'd0, 8'd140, 8'd0, 32'd8};//{'dest': 140, 'literal': 8, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[543] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[544] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[545] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[545] = {6'd27, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': True, 'op': '+'} |
instructions[546] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[547] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[548] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[549] = {6'd3, 8'd148, 8'd11, 32'd0};//{'dest': 148, 'src': 11, 'op': 'move'} |
instructions[550] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[548] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[549] = {6'd0, 8'd139, 8'd0, 32'd1540};//{'dest': 139, 'literal': 1540, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[550] = {6'd0, 8'd140, 8'd0, 32'd9};//{'dest': 140, 'literal': 9, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[551] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[552] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[553] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[553] = {6'd27, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': True, 'op': '+'} |
instructions[554] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[555] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[556] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[557] = {6'd3, 8'd148, 8'd12, 32'd0};//{'dest': 148, 'src': 12, 'op': 'move'} |
instructions[558] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[556] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[557] = {6'd0, 8'd139, 8'd0, 32'd2};//{'dest': 139, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[558] = {6'd0, 8'd140, 8'd0, 32'd10};//{'dest': 140, 'literal': 10, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[559] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[560] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[561] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[561] = {6'd27, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': True, 'op': '+'} |
instructions[562] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[563] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[564] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[565] = {6'd3, 8'd148, 8'd13, 32'd0};//{'dest': 148, 'src': 13, 'op': 'move'} |
instructions[566] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[564] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[565] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[566] = {6'd0, 8'd140, 8'd0, 32'd11};//{'dest': 140, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[567] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[568] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[569] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[569] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[570] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[571] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[572] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[573] = {6'd3, 8'd148, 8'd14, 32'd0};//{'dest': 148, 'src': 14, 'op': 'move'} |
instructions[574] = {6'd0, 8'd149, 8'd0, 32'd15};//{'dest': 149, 'literal': 15, 'op': 'literal'} |
instructions[572] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[573] = {6'd0, 8'd139, 8'd0, 32'd515};//{'dest': 139, 'literal': 515, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[574] = {6'd0, 8'd140, 8'd0, 32'd12};//{'dest': 140, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[575] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[576] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[577] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[577] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[578] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[579] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[580] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[581] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[582] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[580] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[581] = {6'd0, 8'd139, 8'd0, 32'd1029};//{'dest': 139, 'literal': 1029, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[582] = {6'd0, 8'd140, 8'd0, 32'd13};//{'dest': 140, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[583] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[584] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[585] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[584] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[585] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[586] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[587] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18340680, 'op': 'memory_read_request'} |
instructions[588] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[589] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18340680, 'op': 'memory_read_wait'} |
instructions[590] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18340680, 'element_size': 2, 'op': 'memory_read'} |
instructions[591] = {6'd0, 8'd149, 8'd0, 32'd16};//{'dest': 149, 'literal': 16, 'op': 'literal'} |
instructions[587] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[588] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[589] = {6'd0, 8'd139, 8'd0, 32'd49320};//{'dest': 139, 'literal': 49320, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[590] = {6'd0, 8'd140, 8'd0, 32'd14};//{'dest': 140, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[591] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[592] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[593] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[594] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[593] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[594] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[595] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[596] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[597] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[598] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[596] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[597] = {6'd0, 8'd139, 8'd0, 32'd257};//{'dest': 139, 'literal': 257, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[598] = {6'd0, 8'd140, 8'd0, 32'd15};//{'dest': 140, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[599] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[600] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[601] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[601] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[602] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[603] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[604] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18341112, 'op': 'memory_read_request'} |
instructions[605] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[606] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18341112, 'op': 'memory_read_wait'} |
instructions[607] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18341112, 'element_size': 2, 'op': 'memory_read'} |
instructions[608] = {6'd0, 8'd149, 8'd0, 32'd17};//{'dest': 149, 'literal': 17, 'op': 'literal'} |
instructions[604] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[605] = {6'd0, 8'd145, 8'd0, 32'd11};//{'dest': 145, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[606] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[607] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[608] = {6'd11, 8'd146, 8'd145, 32'd36};//{'dest': 146, 'src': 145, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[609] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[610] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[611] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[611] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379120, 'op': 'memory_read_request'} |
instructions[612] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[613] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[614] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[615] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[613] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379120, 'op': 'memory_read_wait'} |
instructions[614] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20379120, 'element_size': 2, 'op': 'memory_read'} |
instructions[615] = {6'd0, 8'd140, 8'd0, 32'd16};//{'dest': 140, 'literal': 16, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[616] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[617] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[618] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[618] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[619] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[620] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[621] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18341544, 'op': 'memory_read_request'} |
instructions[622] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[623] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18341544, 'op': 'memory_read_wait'} |
instructions[624] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18341544, 'element_size': 2, 'op': 'memory_read'} |
instructions[625] = {6'd0, 8'd149, 8'd0, 32'd18};//{'dest': 149, 'literal': 18, 'op': 'literal'} |
instructions[621] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[622] = {6'd0, 8'd145, 8'd0, 32'd12};//{'dest': 145, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[623] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[624] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[625] = {6'd11, 8'd146, 8'd145, 32'd36};//{'dest': 146, 'src': 145, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[626] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[627] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[628] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[628] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379552, 'op': 'memory_read_request'} |
instructions[629] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[630] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[631] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[632] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[630] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379552, 'op': 'memory_read_wait'} |
instructions[631] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20379552, 'element_size': 2, 'op': 'memory_read'} |
instructions[632] = {6'd0, 8'd140, 8'd0, 32'd17};//{'dest': 140, 'literal': 17, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[633] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[634] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[635] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[635] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[636] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[637] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[638] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18342040, 'op': 'memory_read_request'} |
instructions[639] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[640] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18342040, 'op': 'memory_read_wait'} |
instructions[641] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18342040, 'element_size': 2, 'op': 'memory_read'} |
instructions[642] = {6'd0, 8'd149, 8'd0, 32'd19};//{'dest': 149, 'literal': 19, 'op': 'literal'} |
instructions[638] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[639] = {6'd0, 8'd145, 8'd0, 32'd13};//{'dest': 145, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[640] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[641] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[642] = {6'd11, 8'd146, 8'd145, 32'd36};//{'dest': 146, 'src': 145, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[643] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[644] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[645] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[645] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379984, 'op': 'memory_read_request'} |
instructions[646] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[647] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[648] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[649] = {6'd0, 8'd149, 8'd0, 32'd15};//{'dest': 149, 'literal': 15, 'op': 'literal'} |
instructions[647] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20379984, 'op': 'memory_read_wait'} |
instructions[648] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20379984, 'element_size': 2, 'op': 'memory_read'} |
instructions[649] = {6'd0, 8'd140, 8'd0, 32'd18};//{'dest': 140, 'literal': 18, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[650] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[651] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[652] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[652] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[653] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[654] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[655] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18342472, 'op': 'memory_read_request'} |
instructions[656] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[657] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18342472, 'op': 'memory_read_wait'} |
instructions[658] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18342472, 'element_size': 2, 'op': 'memory_read'} |
instructions[659] = {6'd0, 8'd149, 8'd0, 32'd20};//{'dest': 149, 'literal': 20, 'op': 'literal'} |
instructions[655] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[656] = {6'd0, 8'd145, 8'd0, 32'd14};//{'dest': 145, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[657] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[658] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[659] = {6'd11, 8'd146, 8'd145, 32'd36};//{'dest': 146, 'src': 145, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[660] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[661] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[662] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[662] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20380416, 'op': 'memory_read_request'} |
instructions[663] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[664] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[665] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[666] = {6'd3, 8'd32, 8'd16, 32'd0};//{'dest': 32, 'src': 16, 'op': 'move'} |
instructions[667] = {6'd0, 8'd33, 8'd0, 32'd64};//{'dest': 33, 'literal': 64, 'op': 'literal'} |
instructions[668] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[669] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[664] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20380416, 'op': 'memory_read_wait'} |
instructions[665] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20380416, 'element_size': 2, 'op': 'memory_read'} |
instructions[666] = {6'd0, 8'd140, 8'd0, 32'd19};//{'dest': 140, 'literal': 19, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[667] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[668] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[669] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[670] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[671] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[672] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[673] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[674] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347360, 'op': 'memory_read_request'} |
instructions[671] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[672] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[673] = {6'd0, 8'd145, 8'd0, 32'd15};//{'dest': 145, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[674] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[675] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[676] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347360, 'op': 'memory_read_wait'} |
instructions[677] = {6'd19, 8'd34, 8'd150, 32'd0};//{'dest': 34, 'src': 150, 'sequence': 18347360, 'element_size': 2, 'op': 'memory_read'} |
instructions[678] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[679] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[676] = {6'd11, 8'd146, 8'd145, 32'd36};//{'dest': 146, 'src': 145, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[677] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[678] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[679] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20380848, 'op': 'memory_read_request'} |
instructions[680] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[681] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[682] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[683] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[684] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347504, 'op': 'memory_read_request'} |
instructions[681] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20380848, 'op': 'memory_read_wait'} |
instructions[682] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20380848, 'element_size': 2, 'op': 'memory_read'} |
instructions[683] = {6'd0, 8'd140, 8'd0, 32'd20};//{'dest': 140, 'literal': 20, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[684] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[685] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[686] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347504, 'op': 'memory_read_wait'} |
instructions[687] = {6'd19, 8'd35, 8'd150, 32'd0};//{'dest': 35, 'src': 150, 'sequence': 18347504, 'element_size': 2, 'op': 'memory_read'} |
instructions[688] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[689] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[690] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[691] = {6'd11, 8'd150, 8'd149, 32'd42};//{'dest': 150, 'src': 149, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[686] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[687] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[688] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[689] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[690] = {6'd3, 8'd147, 8'd10, 32'd0};//{'dest': 147, 'src': 10, 'op': 'move'} |
instructions[691] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[692] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[693] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[694] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347648, 'op': 'memory_read_request'} |
instructions[693] = {6'd3, 8'd26, 8'd147, 32'd0};//{'dest': 26, 'src': 147, 'op': 'move'} |
instructions[694] = {6'd0, 8'd140, 8'd0, 32'd64};//{'dest': 140, 'literal': 64, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[695] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[696] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18347648, 'op': 'memory_read_wait'} |
instructions[697] = {6'd19, 8'd36, 8'd150, 32'd0};//{'dest': 36, 'src': 150, 'sequence': 18347648, 'element_size': 2, 'op': 'memory_read'} |
instructions[698] = {6'd0, 8'd37, 8'd0, 32'd2054};//{'dest': 37, 'literal': 2054, 'op': 'literal'} |
instructions[699] = {6'd1, 8'd31, 8'd0, 32'd209};//{'dest': 31, 'label': 209, 'op': 'jmp_and_link'} |
instructions[700] = {6'd15, 8'd0, 8'd0, 32'd701};//{'label': 701, 'op': 'goto'} |
instructions[701] = {6'd0, 8'd41, 8'd0, 32'd0};//{'dest': 41, 'literal': 0, 'op': 'literal'} |
instructions[702] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[703] = {6'd15, 8'd0, 8'd0, 32'd704};//{'label': 704, 'op': 'goto'} |
instructions[704] = {6'd3, 8'd41, 8'd43, 32'd0};//{'dest': 41, 'src': 43, 'op': 'move'} |
instructions[705] = {6'd6, 8'd0, 8'd40, 32'd0};//{'src': 40, 'op': 'jmp_to_reg'} |
instructions[706] = {6'd0, 8'd56, 8'd0, 32'd0};//{'dest': 56, 'literal': 0, 'op': 'literal'} |
instructions[707] = {6'd0, 8'd57, 8'd0, 32'd0};//{'dest': 57, 'literal': 0, 'op': 'literal'} |
instructions[708] = {6'd0, 8'd58, 8'd0, 32'd592};//{'dest': 58, 'literal': 592, 'op': 'literal'} |
instructions[709] = {6'd0, 8'd59, 8'd0, 32'd0};//{'dest': 59, 'literal': 0, 'op': 'literal'} |
instructions[710] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[711] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[696] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[697] = {6'd3, 8'd27, 8'd140, 32'd0};//{'dest': 27, 'src': 140, 'op': 'move'} |
instructions[698] = {6'd0, 8'd141, 8'd0, 32'd11};//{'dest': 141, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[699] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[700] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[701] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[702] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[703] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[704] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20385736, 'op': 'memory_read_request'} |
instructions[705] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[706] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20385736, 'op': 'memory_read_wait'} |
instructions[707] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20385736, 'element_size': 2, 'op': 'memory_read'} |
instructions[708] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[709] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[710] = {6'd3, 8'd28, 8'd140, 32'd0};//{'dest': 28, 'src': 140, 'op': 'move'} |
instructions[711] = {6'd0, 8'd141, 8'd0, 32'd12};//{'dest': 141, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[712] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[713] = {6'd3, 8'd59, 8'd148, 32'd0};//{'dest': 59, 'src': 148, 'op': 'move'} |
instructions[714] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[713] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[714] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[715] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[716] = {6'd3, 8'd149, 8'd59, 32'd0};//{'dest': 149, 'src': 59, 'op': 'move'} |
instructions[717] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[716] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[717] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20385944, 'op': 'memory_read_request'} |
instructions[718] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[719] = {6'd27, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '<'} |
instructions[720] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[719] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20385944, 'op': 'memory_read_wait'} |
instructions[720] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20385944, 'element_size': 2, 'op': 'memory_read'} |
instructions[721] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[722] = {6'd13, 8'd0, 8'd148, 32'd763};//{'src': 148, 'label': 763, 'op': 'jmp_if_false'} |
instructions[723] = {6'd3, 8'd150, 8'd59, 32'd0};//{'dest': 150, 'src': 59, 'op': 'move'} |
instructions[724] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[722] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[723] = {6'd3, 8'd29, 8'd140, 32'd0};//{'dest': 29, 'src': 140, 'op': 'move'} |
instructions[724] = {6'd0, 8'd141, 8'd0, 32'd13};//{'dest': 141, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[725] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[726] = {6'd11, 8'd151, 8'd150, 32'd46};//{'dest': 151, 'src': 150, 'srcb': 46, 'signed': False, 'op': '+'} |
instructions[727] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[726] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[727] = {6'd11, 8'd145, 8'd141, 32'd36};//{'dest': 145, 'src': 141, 'srcb': 36, 'signed': False, 'op': '+'} |
instructions[728] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[729] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18347288, 'op': 'memory_read_request'} |
instructions[730] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[731] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18347288, 'op': 'memory_read_wait'} |
instructions[732] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18347288, 'element_size': 2, 'op': 'memory_read'} |
instructions[733] = {6'd3, 8'd150, 8'd54, 32'd0};//{'dest': 150, 'src': 54, 'op': 'move'} |
instructions[729] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[730] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386088, 'op': 'memory_read_request'} |
instructions[731] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[732] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386088, 'op': 'memory_read_wait'} |
instructions[733] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20386088, 'element_size': 2, 'op': 'memory_read'} |
instructions[734] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[735] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[736] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[737] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[736] = {6'd3, 8'd30, 8'd140, 32'd0};//{'dest': 30, 'src': 140, 'op': 'move'} |
instructions[737] = {6'd0, 8'd140, 8'd0, 32'd2054};//{'dest': 140, 'literal': 2054, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[738] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[739] = {6'd13, 8'd0, 8'd148, 32'd754};//{'src': 148, 'label': 754, 'op': 'jmp_if_false'} |
instructions[740] = {6'd3, 8'd150, 8'd59, 32'd0};//{'dest': 150, 'src': 59, 'op': 'move'} |
instructions[741] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[742] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[743] = {6'd11, 8'd151, 8'd150, 32'd47};//{'dest': 151, 'src': 150, 'srcb': 47, 'signed': False, 'op': '+'} |
instructions[739] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[740] = {6'd3, 8'd31, 8'd140, 32'd0};//{'dest': 31, 'src': 140, 'op': 'move'} |
instructions[741] = {6'd1, 8'd25, 8'd0, 32'd218};//{'dest': 25, 'label': 218, 'op': 'jmp_and_link'} |
instructions[742] = {6'd15, 8'd0, 8'd0, 32'd743};//{'label': 743, 'op': 'goto'} |
instructions[743] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[744] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[745] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[746] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18348008, 'op': 'memory_read_request'} |
instructions[747] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[748] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18348008, 'op': 'memory_read_wait'} |
instructions[749] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18348008, 'element_size': 2, 'op': 'memory_read'} |
instructions[750] = {6'd3, 8'd150, 8'd55, 32'd0};//{'dest': 150, 'src': 55, 'op': 'move'} |
instructions[746] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[747] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[748] = {6'd15, 8'd0, 8'd0, 32'd749};//{'label': 749, 'op': 'goto'} |
instructions[749] = {6'd3, 8'd139, 8'd37, 32'd0};//{'dest': 139, 'src': 37, 'op': 'move'} |
instructions[750] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[751] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[752] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[753] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[754] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[755] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[756] = {6'd13, 8'd0, 8'd148, 32'd760};//{'src': 148, 'label': 760, 'op': 'jmp_if_false'} |
instructions[757] = {6'd3, 8'd53, 8'd59, 32'd0};//{'dest': 53, 'src': 59, 'op': 'move'} |
instructions[758] = {6'd6, 8'd0, 8'd52, 32'd0};//{'src': 52, 'op': 'jmp_to_reg'} |
instructions[759] = {6'd15, 8'd0, 8'd0, 32'd760};//{'label': 760, 'op': 'goto'} |
instructions[760] = {6'd3, 8'd148, 8'd59, 32'd0};//{'dest': 148, 'src': 59, 'op': 'move'} |
instructions[761] = {6'd14, 8'd59, 8'd59, 32'd1};//{'dest': 59, 'src': 59, 'right': 1, 'signed': False, 'op': '+'} |
instructions[762] = {6'd15, 8'd0, 8'd0, 32'd714};//{'label': 714, 'op': 'goto'} |
instructions[763] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[764] = {6'd0, 8'd149, 8'd0, 32'd7};//{'dest': 149, 'literal': 7, 'op': 'literal'} |
instructions[752] = {6'd3, 8'd35, 8'd139, 32'd0};//{'dest': 35, 'src': 139, 'op': 'move'} |
instructions[753] = {6'd6, 8'd0, 8'd34, 32'd0};//{'src': 34, 'op': 'jmp_to_reg'} |
instructions[754] = {6'd0, 8'd50, 8'd0, 32'd0};//{'dest': 50, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[755] = {6'd0, 8'd51, 8'd0, 32'd0};//{'dest': 51, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[756] = {6'd0, 8'd52, 8'd0, 32'd600};//{'dest': 52, 'literal': 600, 'op': 'literal'} |
instructions[757] = {6'd0, 8'd53, 8'd0, 32'd0};//{'dest': 53, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[758] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[759] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[760] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[761] = {6'd3, 8'd53, 8'd139, 32'd0};//{'dest': 53, 'src': 139, 'op': 'move'} |
instructions[762] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[763] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[764] = {6'd3, 8'd140, 8'd53, 32'd0};//{'dest': 140, 'src': 53, 'op': 'move'} |
instructions[765] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[766] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[767] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[767] = {6'd28, 8'd139, 8'd140, 32'd16};//{'src': 140, 'right': 16, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[768] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[769] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[770] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[771] = {6'd0, 8'd148, 8'd0, 32'd2048};//{'dest': 148, 'literal': 2048, 'op': 'literal'} |
instructions[772] = {6'd0, 8'd149, 8'd0, 32'd8};//{'dest': 149, 'literal': 8, 'op': 'literal'} |
instructions[770] = {6'd13, 8'd0, 8'd139, 32'd814};//{'src': 139, 'label': 814, 'op': 'jmp_if_false'} |
instructions[771] = {6'd3, 8'd141, 8'd53, 32'd0};//{'dest': 141, 'src': 53, 'op': 'move'} |
instructions[772] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[773] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[774] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[775] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[774] = {6'd11, 8'd145, 8'd141, 32'd40};//{'dest': 145, 'src': 141, 'srcb': 40, 'signed': False, 'op': '+'} |
instructions[775] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[776] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[777] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[778] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[779] = {6'd0, 8'd148, 8'd0, 32'd1540};//{'dest': 148, 'literal': 1540, 'op': 'literal'} |
instructions[780] = {6'd0, 8'd149, 8'd0, 32'd9};//{'dest': 149, 'literal': 9, 'op': 'literal'} |
instructions[781] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[777] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386448, 'op': 'memory_read_request'} |
instructions[778] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[779] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386448, 'op': 'memory_read_wait'} |
instructions[780] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20386448, 'element_size': 2, 'op': 'memory_read'} |
instructions[781] = {6'd3, 8'd141, 8'd48, 32'd0};//{'dest': 141, 'src': 48, 'op': 'move'} |
instructions[782] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[783] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[784] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[783] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[784] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[785] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[786] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[787] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[788] = {6'd0, 8'd149, 8'd0, 32'd10};//{'dest': 149, 'literal': 10, 'op': 'literal'} |
instructions[786] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[787] = {6'd13, 8'd0, 8'd139, 32'd802};//{'src': 139, 'label': 802, 'op': 'jmp_if_false'} |
instructions[788] = {6'd3, 8'd141, 8'd53, 32'd0};//{'dest': 141, 'src': 53, 'op': 'move'} |
instructions[789] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[790] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[791] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[791] = {6'd11, 8'd145, 8'd141, 32'd41};//{'dest': 145, 'src': 141, 'srcb': 41, 'signed': False, 'op': '+'} |
instructions[792] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[793] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[794] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[795] = {6'd3, 8'd148, 8'd10, 32'd0};//{'dest': 148, 'src': 10, 'op': 'move'} |
instructions[796] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[797] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[798] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[799] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[794] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386736, 'op': 'memory_read_request'} |
instructions[795] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[796] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20386736, 'op': 'memory_read_wait'} |
instructions[797] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20386736, 'element_size': 2, 'op': 'memory_read'} |
instructions[798] = {6'd3, 8'd141, 8'd49, 32'd0};//{'dest': 141, 'src': 49, 'op': 'move'} |
instructions[799] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[800] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[801] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[802] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[803] = {6'd3, 8'd148, 8'd11, 32'd0};//{'dest': 148, 'src': 11, 'op': 'move'} |
instructions[804] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[805] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[801] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[802] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[803] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[804] = {6'd13, 8'd0, 8'd139, 32'd811};//{'src': 139, 'label': 811, 'op': 'jmp_if_false'} |
instructions[805] = {6'd3, 8'd139, 8'd53, 32'd0};//{'dest': 139, 'src': 53, 'op': 'move'} |
instructions[806] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[807] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[808] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[809] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[810] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[811] = {6'd3, 8'd148, 8'd12, 32'd0};//{'dest': 148, 'src': 12, 'op': 'move'} |
instructions[812] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[813] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[814] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[815] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[807] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[808] = {6'd3, 8'd47, 8'd139, 32'd0};//{'dest': 47, 'src': 139, 'op': 'move'} |
instructions[809] = {6'd6, 8'd0, 8'd46, 32'd0};//{'src': 46, 'op': 'jmp_to_reg'} |
instructions[810] = {6'd15, 8'd0, 8'd0, 32'd811};//{'label': 811, 'op': 'goto'} |
instructions[811] = {6'd3, 8'd139, 8'd53, 32'd0};//{'dest': 139, 'src': 53, 'op': 'move'} |
instructions[812] = {6'd14, 8'd53, 8'd53, 32'd1};//{'src': 53, 'right': 1, 'dest': 53, 'signed': False, 'op': '+', 'size': 2} |
instructions[813] = {6'd15, 8'd0, 8'd0, 32'd762};//{'label': 762, 'op': 'goto'} |
instructions[814] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[815] = {6'd0, 8'd140, 8'd0, 32'd7};//{'dest': 140, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[816] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[817] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[818] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[819] = {6'd3, 8'd148, 8'd13, 32'd0};//{'dest': 148, 'src': 13, 'op': 'move'} |
instructions[820] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[821] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[822] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[823] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[818] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[819] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[820] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[821] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[822] = {6'd0, 8'd139, 8'd0, 32'd2048};//{'dest': 139, 'literal': 2048, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[823] = {6'd0, 8'd140, 8'd0, 32'd8};//{'dest': 140, 'literal': 8, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[824] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[825] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[826] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[827] = {6'd3, 8'd148, 8'd14, 32'd0};//{'dest': 148, 'src': 14, 'op': 'move'} |
instructions[828] = {6'd0, 8'd149, 8'd0, 32'd15};//{'dest': 149, 'literal': 15, 'op': 'literal'} |
instructions[829] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[830] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[831] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[826] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[827] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[828] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[829] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[830] = {6'd0, 8'd139, 8'd0, 32'd1540};//{'dest': 139, 'literal': 1540, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[831] = {6'd0, 8'd140, 8'd0, 32'd9};//{'dest': 140, 'literal': 9, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[832] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[833] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[834] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[835] = {6'd3, 8'd148, 8'd54, 32'd0};//{'dest': 148, 'src': 54, 'op': 'move'} |
instructions[836] = {6'd0, 8'd149, 8'd0, 32'd19};//{'dest': 149, 'literal': 19, 'op': 'literal'} |
instructions[837] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[838] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[839] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[834] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[835] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[836] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[837] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[838] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[839] = {6'd0, 8'd140, 8'd0, 32'd10};//{'dest': 140, 'literal': 10, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[840] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[841] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[842] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[843] = {6'd3, 8'd148, 8'd55, 32'd0};//{'dest': 148, 'src': 55, 'op': 'move'} |
instructions[844] = {6'd0, 8'd149, 8'd0, 32'd20};//{'dest': 149, 'literal': 20, 'op': 'literal'} |
instructions[845] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[846] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[847] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[842] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[843] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[844] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[845] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[846] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[847] = {6'd0, 8'd140, 8'd0, 32'd11};//{'dest': 140, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[848] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[849] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[850] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[851] = {6'd3, 8'd32, 8'd16, 32'd0};//{'dest': 32, 'src': 16, 'op': 'move'} |
instructions[852] = {6'd0, 8'd33, 8'd0, 32'd64};//{'dest': 33, 'literal': 64, 'op': 'literal'} |
instructions[853] = {6'd0, 8'd34, 8'd0, 32'd65535};//{'dest': 34, 'literal': 65535, 'op': 'literal'} |
instructions[854] = {6'd0, 8'd35, 8'd0, 32'd65535};//{'dest': 35, 'literal': 65535, 'op': 'literal'} |
instructions[855] = {6'd0, 8'd36, 8'd0, 32'd65535};//{'dest': 36, 'literal': 65535, 'op': 'literal'} |
instructions[856] = {6'd0, 8'd37, 8'd0, 32'd2054};//{'dest': 37, 'literal': 2054, 'op': 'literal'} |
instructions[857] = {6'd1, 8'd31, 8'd0, 32'd209};//{'dest': 31, 'label': 209, 'op': 'jmp_and_link'} |
instructions[858] = {6'd1, 8'd4, 8'd0, 32'd50};//{'dest': 4, 'label': 50, 'op': 'jmp_and_link'} |
instructions[859] = {6'd3, 8'd148, 8'd5, 32'd0};//{'dest': 148, 'src': 5, 'op': 'move'} |
instructions[850] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[851] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[852] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[853] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[854] = {6'd0, 8'd139, 8'd0, 32'd515};//{'dest': 139, 'literal': 515, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[855] = {6'd0, 8'd140, 8'd0, 32'd12};//{'dest': 140, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[856] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[857] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[858] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[859] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[860] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[861] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[862] = {6'd3, 8'd56, 8'd148, 32'd0};//{'dest': 56, 'src': 148, 'op': 'move'} |
instructions[863] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[861] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[862] = {6'd0, 8'd139, 8'd0, 32'd1029};//{'dest': 139, 'literal': 1029, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[863] = {6'd0, 8'd140, 8'd0, 32'd13};//{'dest': 140, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[864] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[865] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[866] = {6'd3, 8'd59, 8'd148, 32'd0};//{'dest': 59, 'src': 148, 'op': 'move'} |
instructions[867] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[866] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[867] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[868] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[869] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[870] = {6'd3, 8'd57, 8'd148, 32'd0};//{'dest': 57, 'src': 148, 'op': 'move'} |
instructions[871] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[869] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[870] = {6'd0, 8'd139, 8'd0, 32'd49320};//{'dest': 139, 'literal': 49320, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[871] = {6'd0, 8'd140, 8'd0, 32'd14};//{'dest': 140, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[872] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[873] = {6'd3, 8'd149, 8'd57, 32'd0};//{'dest': 149, 'src': 57, 'op': 'move'} |
instructions[874] = {6'd3, 8'd150, 8'd56, 32'd0};//{'dest': 150, 'src': 56, 'op': 'move'} |
instructions[873] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[874] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[875] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[876] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[877] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[878] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[879] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[880] = {6'd13, 8'd0, 8'd148, 32'd910};//{'src': 148, 'label': 910, 'op': 'jmp_if_false'} |
instructions[881] = {6'd3, 8'd149, 8'd59, 32'd0};//{'dest': 149, 'src': 59, 'op': 'move'} |
instructions[882] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[877] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[878] = {6'd0, 8'd139, 8'd0, 32'd257};//{'dest': 139, 'literal': 257, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[879] = {6'd0, 8'd140, 8'd0, 32'd15};//{'dest': 140, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[880] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[881] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[882] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[883] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[884] = {6'd27, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '<'} |
instructions[885] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[886] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[887] = {6'd13, 8'd0, 8'd148, 32'd898};//{'src': 148, 'label': 898, 'op': 'jmp_if_false'} |
instructions[888] = {6'd1, 8'd4, 8'd0, 32'd50};//{'dest': 4, 'label': 50, 'op': 'jmp_and_link'} |
instructions[889] = {6'd3, 8'd148, 8'd5, 32'd0};//{'dest': 148, 'src': 5, 'op': 'move'} |
instructions[890] = {6'd3, 8'd149, 8'd59, 32'd0};//{'dest': 149, 'src': 59, 'op': 'move'} |
instructions[884] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[885] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[886] = {6'd3, 8'd139, 8'd48, 32'd0};//{'dest': 139, 'src': 48, 'op': 'move'} |
instructions[887] = {6'd0, 8'd140, 8'd0, 32'd19};//{'dest': 140, 'literal': 19, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[888] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[889] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[890] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[891] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[892] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[893] = {6'd11, 8'd150, 8'd149, 32'd58};//{'dest': 150, 'src': 149, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[894] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[895] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[896] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[897] = {6'd15, 8'd0, 8'd0, 32'd900};//{'label': 900, 'op': 'goto'} |
instructions[898] = {6'd1, 8'd4, 8'd0, 32'd50};//{'dest': 4, 'label': 50, 'op': 'jmp_and_link'} |
instructions[899] = {6'd3, 8'd148, 8'd5, 32'd0};//{'dest': 148, 'src': 5, 'op': 'move'} |
instructions[900] = {6'd3, 8'd148, 8'd59, 32'd0};//{'dest': 148, 'src': 59, 'op': 'move'} |
instructions[901] = {6'd14, 8'd59, 8'd59, 32'd1};//{'dest': 59, 'src': 59, 'right': 1, 'signed': False, 'op': '+'} |
instructions[902] = {6'd3, 8'd149, 8'd57, 32'd0};//{'dest': 149, 'src': 57, 'op': 'move'} |
instructions[893] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[894] = {6'd3, 8'd139, 8'd49, 32'd0};//{'dest': 139, 'src': 49, 'op': 'move'} |
instructions[895] = {6'd0, 8'd140, 8'd0, 32'd20};//{'dest': 140, 'literal': 20, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[896] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[897] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[898] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[899] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[900] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[901] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[902] = {6'd3, 8'd147, 8'd10, 32'd0};//{'dest': 147, 'src': 10, 'op': 'move'} |
instructions[903] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[904] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[905] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[906] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[905] = {6'd3, 8'd26, 8'd147, 32'd0};//{'dest': 26, 'src': 147, 'op': 'move'} |
instructions[906] = {6'd0, 8'd140, 8'd0, 32'd64};//{'dest': 140, 'literal': 64, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[907] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[908] = {6'd3, 8'd57, 8'd148, 32'd0};//{'dest': 57, 'src': 148, 'op': 'move'} |
instructions[909] = {6'd15, 8'd0, 8'd0, 32'd871};//{'label': 871, 'op': 'goto'} |
instructions[910] = {6'd0, 8'd150, 8'd0, 32'd6};//{'dest': 150, 'literal': 6, 'op': 'literal'} |
instructions[908] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[909] = {6'd3, 8'd27, 8'd140, 32'd0};//{'dest': 27, 'src': 140, 'op': 'move'} |
instructions[910] = {6'd0, 8'd140, 8'd0, 32'd65535};//{'dest': 140, 'literal': 65535, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[911] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[912] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[913] = {6'd11, 8'd151, 8'd150, 32'd58};//{'dest': 151, 'src': 150, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[914] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[913] = {6'd3, 8'd28, 8'd140, 32'd0};//{'dest': 28, 'src': 140, 'op': 'move'} |
instructions[914] = {6'd0, 8'd140, 8'd0, 32'd65535};//{'dest': 140, 'literal': 65535, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[915] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[916] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18357208, 'op': 'memory_read_request'} |
instructions[917] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[918] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18357208, 'op': 'memory_read_wait'} |
instructions[919] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18357208, 'element_size': 2, 'op': 'memory_read'} |
instructions[916] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[917] = {6'd3, 8'd29, 8'd140, 32'd0};//{'dest': 29, 'src': 140, 'op': 'move'} |
instructions[918] = {6'd0, 8'd140, 8'd0, 32'd65535};//{'dest': 140, 'literal': 65535, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[919] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[920] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[921] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[922] = {6'd25, 8'd148, 8'd149, 32'd2054};//{'dest': 148, 'src': 149, 'right': 2054, 'signed': False, 'op': '=='} |
instructions[921] = {6'd3, 8'd30, 8'd140, 32'd0};//{'dest': 30, 'src': 140, 'op': 'move'} |
instructions[922] = {6'd0, 8'd140, 8'd0, 32'd2054};//{'dest': 140, 'literal': 2054, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[923] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[924] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[925] = {6'd13, 8'd0, 8'd148, 32'd939};//{'src': 148, 'label': 939, 'op': 'jmp_if_false'} |
instructions[926] = {6'd0, 8'd150, 8'd0, 32'd10};//{'dest': 150, 'literal': 10, 'op': 'literal'} |
instructions[927] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[928] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[929] = {6'd11, 8'd151, 8'd150, 32'd58};//{'dest': 151, 'src': 150, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[925] = {6'd3, 8'd31, 8'd140, 32'd0};//{'dest': 31, 'src': 140, 'op': 'move'} |
instructions[926] = {6'd1, 8'd25, 8'd0, 32'd218};//{'dest': 25, 'label': 218, 'op': 'jmp_and_link'} |
instructions[927] = {6'd1, 8'd4, 8'd0, 32'd44};//{'dest': 4, 'label': 44, 'op': 'jmp_and_link'} |
instructions[928] = {6'd3, 8'd139, 8'd5, 32'd0};//{'dest': 139, 'src': 5, 'op': 'move'} |
instructions[929] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[930] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[931] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[932] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18357496, 'op': 'memory_read_request'} |
instructions[931] = {6'd3, 8'd50, 8'd139, 32'd0};//{'dest': 50, 'src': 139, 'op': 'move'} |
instructions[932] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[933] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[934] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18357496, 'op': 'memory_read_wait'} |
instructions[935] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18357496, 'element_size': 2, 'op': 'memory_read'} |
instructions[936] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[934] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[935] = {6'd3, 8'd53, 8'd139, 32'd0};//{'dest': 53, 'src': 139, 'op': 'move'} |
instructions[936] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[937] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[938] = {6'd25, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '=='} |
instructions[939] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[938] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[939] = {6'd3, 8'd51, 8'd139, 32'd0};//{'dest': 51, 'src': 139, 'op': 'move'} |
instructions[940] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[941] = {6'd13, 8'd0, 8'd148, 32'd1067};//{'src': 148, 'label': 1067, 'op': 'jmp_if_false'} |
instructions[942] = {6'd0, 8'd150, 8'd0, 32'd14};//{'dest': 150, 'literal': 14, 'op': 'literal'} |
instructions[943] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[941] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[942] = {6'd3, 8'd140, 8'd51, 32'd0};//{'dest': 140, 'src': 51, 'op': 'move'} |
instructions[943] = {6'd3, 8'd141, 8'd50, 32'd0};//{'dest': 141, 'src': 50, 'op': 'move'} |
instructions[944] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[945] = {6'd11, 8'd151, 8'd150, 32'd58};//{'dest': 151, 'src': 150, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[946] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[945] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[946] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[947] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[948] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18358072, 'op': 'memory_read_request'} |
instructions[949] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[950] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18358072, 'op': 'memory_read_wait'} |
instructions[951] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18358072, 'element_size': 2, 'op': 'memory_read'} |
instructions[952] = {6'd3, 8'd150, 8'd54, 32'd0};//{'dest': 150, 'src': 54, 'op': 'move'} |
instructions[953] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[948] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[949] = {6'd13, 8'd0, 8'd139, 32'd979};//{'src': 139, 'label': 979, 'op': 'jmp_if_false'} |
instructions[950] = {6'd3, 8'd140, 8'd53, 32'd0};//{'dest': 140, 'src': 53, 'op': 'move'} |
instructions[951] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[952] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[953] = {6'd28, 8'd139, 8'd140, 32'd16};//{'src': 140, 'right': 16, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[954] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[955] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[956] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[957] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[958] = {6'd13, 8'd0, 8'd148, 32'd973};//{'src': 148, 'label': 973, 'op': 'jmp_if_false'} |
instructions[959] = {6'd0, 8'd150, 8'd0, 32'd15};//{'dest': 150, 'literal': 15, 'op': 'literal'} |
instructions[955] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[956] = {6'd13, 8'd0, 8'd139, 32'd967};//{'src': 139, 'label': 967, 'op': 'jmp_if_false'} |
instructions[957] = {6'd1, 8'd4, 8'd0, 32'd44};//{'dest': 4, 'label': 44, 'op': 'jmp_and_link'} |
instructions[958] = {6'd3, 8'd139, 8'd5, 32'd0};//{'dest': 139, 'src': 5, 'op': 'move'} |
instructions[959] = {6'd3, 8'd140, 8'd53, 32'd0};//{'dest': 140, 'src': 53, 'op': 'move'} |
instructions[960] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[961] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[962] = {6'd11, 8'd151, 8'd150, 32'd58};//{'dest': 151, 'src': 150, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[962] = {6'd11, 8'd141, 8'd140, 32'd52};//{'dest': 141, 'src': 140, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[963] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[964] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[965] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18358424, 'op': 'memory_read_request'} |
instructions[966] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[967] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18358424, 'op': 'memory_read_wait'} |
instructions[968] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18358424, 'element_size': 2, 'op': 'memory_read'} |
instructions[969] = {6'd3, 8'd150, 8'd55, 32'd0};//{'dest': 150, 'src': 55, 'op': 'move'} |
instructions[970] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[971] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[972] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[965] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[966] = {6'd15, 8'd0, 8'd0, 32'd969};//{'label': 969, 'op': 'goto'} |
instructions[967] = {6'd1, 8'd4, 8'd0, 32'd44};//{'dest': 4, 'label': 44, 'op': 'jmp_and_link'} |
instructions[968] = {6'd3, 8'd139, 8'd5, 32'd0};//{'dest': 139, 'src': 5, 'op': 'move'} |
instructions[969] = {6'd3, 8'd139, 8'd53, 32'd0};//{'dest': 139, 'src': 53, 'op': 'move'} |
instructions[970] = {6'd14, 8'd53, 8'd53, 32'd1};//{'src': 53, 'right': 1, 'dest': 53, 'signed': False, 'op': '+', 'size': 2} |
instructions[971] = {6'd3, 8'd140, 8'd51, 32'd0};//{'dest': 140, 'src': 51, 'op': 'move'} |
instructions[972] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[973] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[974] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[975] = {6'd13, 8'd0, 8'd148, 32'd1066};//{'src': 148, 'label': 1066, 'op': 'jmp_if_false'} |
instructions[976] = {6'd3, 8'd148, 8'd54, 32'd0};//{'dest': 148, 'src': 54, 'op': 'move'} |
instructions[977] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[978] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[979] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[980] = {6'd11, 8'd150, 8'd149, 32'd46};//{'dest': 150, 'src': 149, 'srcb': 46, 'signed': False, 'op': '+'} |
instructions[974] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[975] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[976] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[977] = {6'd3, 8'd51, 8'd139, 32'd0};//{'dest': 51, 'src': 139, 'op': 'move'} |
instructions[978] = {6'd15, 8'd0, 8'd0, 32'd940};//{'label': 940, 'op': 'goto'} |
instructions[979] = {6'd0, 8'd141, 8'd0, 32'd6};//{'dest': 141, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[980] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[981] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[982] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[983] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[984] = {6'd3, 8'd148, 8'd55, 32'd0};//{'dest': 148, 'src': 55, 'op': 'move'} |
instructions[985] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[982] = {6'd11, 8'd145, 8'd141, 32'd52};//{'dest': 145, 'src': 141, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[983] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[984] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[985] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20395936, 'op': 'memory_read_request'} |
instructions[986] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[987] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[988] = {6'd11, 8'd150, 8'd149, 32'd47};//{'dest': 150, 'src': 149, 'srcb': 47, 'signed': False, 'op': '+'} |
instructions[987] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20395936, 'op': 'memory_read_wait'} |
instructions[988] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20395936, 'element_size': 2, 'op': 'memory_read'} |
instructions[989] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[990] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[991] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[992] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[991] = {6'd25, 8'd139, 8'd140, 32'd2054};//{'src': 140, 'right': 2054, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[992] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[993] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[994] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[995] = {6'd11, 8'd150, 8'd149, 32'd58};//{'dest': 150, 'src': 149, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[994] = {6'd13, 8'd0, 8'd139, 32'd1008};//{'src': 139, 'label': 1008, 'op': 'jmp_if_false'} |
instructions[995] = {6'd0, 8'd141, 8'd0, 32'd10};//{'dest': 141, 'literal': 10, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[996] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[997] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[998] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18359792, 'op': 'memory_read_request'} |
instructions[998] = {6'd11, 8'd145, 8'd141, 32'd52};//{'dest': 145, 'src': 141, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[999] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1000] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18359792, 'op': 'memory_read_wait'} |
instructions[1001] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18359792, 'element_size': 2, 'op': 'memory_read'} |
instructions[1002] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[1003] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1004] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1005] = {6'd11, 8'd150, 8'd149, 32'd48};//{'dest': 150, 'src': 149, 'srcb': 48, 'signed': False, 'op': '+'} |
instructions[1000] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1001] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20396224, 'op': 'memory_read_request'} |
instructions[1002] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1003] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20396224, 'op': 'memory_read_wait'} |
instructions[1004] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20396224, 'element_size': 2, 'op': 'memory_read'} |
instructions[1005] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1006] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1007] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1008] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1009] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[1010] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1011] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1012] = {6'd11, 8'd150, 8'd149, 32'd58};//{'dest': 150, 'src': 149, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[1007] = {6'd25, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1008] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1009] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1010] = {6'd13, 8'd0, 8'd139, 32'd1139};//{'src': 139, 'label': 1139, 'op': 'jmp_if_false'} |
instructions[1011] = {6'd0, 8'd141, 8'd0, 32'd14};//{'dest': 141, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1012] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1013] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1014] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1015] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18360224, 'op': 'memory_read_request'} |
instructions[1014] = {6'd11, 8'd145, 8'd141, 32'd52};//{'dest': 145, 'src': 141, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[1015] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1016] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1017] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18360224, 'op': 'memory_read_wait'} |
instructions[1018] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18360224, 'element_size': 2, 'op': 'memory_read'} |
instructions[1019] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[1020] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1021] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1022] = {6'd11, 8'd150, 8'd149, 32'd49};//{'dest': 150, 'src': 149, 'srcb': 49, 'signed': False, 'op': '+'} |
instructions[1017] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20396800, 'op': 'memory_read_request'} |
instructions[1018] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1019] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20396800, 'op': 'memory_read_wait'} |
instructions[1020] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20396800, 'element_size': 2, 'op': 'memory_read'} |
instructions[1021] = {6'd3, 8'd141, 8'd48, 32'd0};//{'dest': 141, 'src': 48, 'op': 'move'} |
instructions[1022] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1023] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1024] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1025] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1026] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[1027] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1028] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1029] = {6'd11, 8'd150, 8'd149, 32'd58};//{'dest': 150, 'src': 149, 'srcb': 58, 'signed': False, 'op': '+'} |
instructions[1024] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1025] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1026] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1027] = {6'd13, 8'd0, 8'd139, 32'd1042};//{'src': 139, 'label': 1042, 'op': 'jmp_if_false'} |
instructions[1028] = {6'd0, 8'd141, 8'd0, 32'd15};//{'dest': 141, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1029] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1030] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1031] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1032] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18360656, 'op': 'memory_read_request'} |
instructions[1031] = {6'd11, 8'd145, 8'd141, 32'd52};//{'dest': 145, 'src': 141, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[1032] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1033] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1034] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18360656, 'op': 'memory_read_wait'} |
instructions[1035] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18360656, 'element_size': 2, 'op': 'memory_read'} |
instructions[1036] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[1037] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1038] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1039] = {6'd11, 8'd150, 8'd149, 32'd50};//{'dest': 150, 'src': 149, 'srcb': 50, 'signed': False, 'op': '+'} |
instructions[1034] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20397088, 'op': 'memory_read_request'} |
instructions[1035] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1036] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20397088, 'op': 'memory_read_wait'} |
instructions[1037] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20397088, 'element_size': 2, 'op': 'memory_read'} |
instructions[1038] = {6'd3, 8'd141, 8'd49, 32'd0};//{'dest': 141, 'src': 49, 'op': 'move'} |
instructions[1039] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1040] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1041] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1042] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1043] = {6'd3, 8'd148, 8'd51, 32'd0};//{'dest': 148, 'src': 51, 'op': 'move'} |
instructions[1044] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1045] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1046] = {6'd3, 8'd59, 8'd148, 32'd0};//{'dest': 59, 'src': 148, 'op': 'move'} |
instructions[1047] = {6'd3, 8'd148, 8'd51, 32'd0};//{'dest': 148, 'src': 51, 'op': 'move'} |
instructions[1048] = {6'd14, 8'd51, 8'd51, 32'd1};//{'dest': 51, 'src': 51, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1049] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1041] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1042] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1043] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1044] = {6'd13, 8'd0, 8'd139, 32'd1138};//{'src': 139, 'label': 1138, 'op': 'jmp_if_false'} |
instructions[1045] = {6'd3, 8'd139, 8'd48, 32'd0};//{'dest': 139, 'src': 48, 'op': 'move'} |
instructions[1046] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1047] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1048] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1049] = {6'd11, 8'd141, 8'd140, 32'd40};//{'dest': 141, 'src': 140, 'srcb': 40, 'signed': False, 'op': '+'} |
instructions[1050] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1051] = {6'd3, 8'd149, 8'd51, 32'd0};//{'dest': 149, 'src': 51, 'op': 'move'} |
instructions[1052] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1053] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1054] = {6'd25, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '=='} |
instructions[1051] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1052] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1053] = {6'd3, 8'd139, 8'd49, 32'd0};//{'dest': 139, 'src': 49, 'op': 'move'} |
instructions[1054] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1055] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1056] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1057] = {6'd13, 8'd0, 8'd148, 32'd1063};//{'src': 148, 'label': 1063, 'op': 'jmp_if_false'} |
instructions[1058] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1057] = {6'd11, 8'd141, 8'd140, 32'd41};//{'dest': 141, 'src': 140, 'srcb': 41, 'signed': False, 'op': '+'} |
instructions[1058] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1059] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1060] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1061] = {6'd3, 8'd51, 8'd148, 32'd0};//{'dest': 51, 'src': 148, 'op': 'move'} |
instructions[1062] = {6'd15, 8'd0, 8'd0, 32'd1063};//{'label': 1063, 'op': 'goto'} |
instructions[1063] = {6'd3, 8'd53, 8'd59, 32'd0};//{'dest': 53, 'src': 59, 'op': 'move'} |
instructions[1064] = {6'd6, 8'd0, 8'd52, 32'd0};//{'src': 52, 'op': 'jmp_to_reg'} |
instructions[1065] = {6'd15, 8'd0, 8'd0, 32'd1066};//{'label': 1066, 'op': 'goto'} |
instructions[1066] = {6'd15, 8'd0, 8'd0, 32'd1067};//{'label': 1067, 'op': 'goto'} |
instructions[1067] = {6'd15, 8'd0, 8'd0, 32'd858};//{'label': 858, 'op': 'goto'} |
instructions[1068] = {6'd0, 8'd66, 8'd0, 32'd0};//{'dest': 66, 'literal': 0, 'op': 'literal'} |
instructions[1069] = {6'd0, 8'd67, 8'd0, 32'd0};//{'dest': 67, 'literal': 0, 'op': 'literal'} |
instructions[1070] = {6'd0, 8'd68, 8'd0, 32'd0};//{'dest': 68, 'literal': 0, 'op': 'literal'} |
instructions[1071] = {6'd3, 8'd54, 8'd64, 32'd0};//{'dest': 54, 'src': 64, 'op': 'move'} |
instructions[1072] = {6'd3, 8'd55, 8'd65, 32'd0};//{'dest': 55, 'src': 65, 'op': 'move'} |
instructions[1073] = {6'd1, 8'd52, 8'd0, 32'd706};//{'dest': 52, 'label': 706, 'op': 'jmp_and_link'} |
instructions[1074] = {6'd3, 8'd148, 8'd53, 32'd0};//{'dest': 148, 'src': 53, 'op': 'move'} |
instructions[1060] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1061] = {6'd0, 8'd145, 8'd0, 32'd11};//{'dest': 145, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1062] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1063] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1064] = {6'd11, 8'd146, 8'd145, 32'd52};//{'dest': 146, 'src': 145, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[1065] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1066] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1067] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20398520, 'op': 'memory_read_request'} |
instructions[1068] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1069] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20398520, 'op': 'memory_read_wait'} |
instructions[1070] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20398520, 'element_size': 2, 'op': 'memory_read'} |
instructions[1071] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1072] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1073] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1074] = {6'd11, 8'd141, 8'd140, 32'd42};//{'dest': 141, 'src': 140, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[1075] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1076] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1077] = {6'd3, 8'd68, 8'd148, 32'd0};//{'dest': 68, 'src': 148, 'op': 'move'} |
instructions[1078] = {6'd0, 8'd148, 8'd0, 32'd17664};//{'dest': 148, 'literal': 17664, 'op': 'literal'} |
instructions[1079] = {6'd0, 8'd149, 8'd0, 32'd7};//{'dest': 149, 'literal': 7, 'op': 'literal'} |
instructions[1077] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1078] = {6'd0, 8'd145, 8'd0, 32'd12};//{'dest': 145, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1079] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1080] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1081] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1082] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1081] = {6'd11, 8'd146, 8'd145, 32'd52};//{'dest': 146, 'src': 145, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[1082] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1083] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1084] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1085] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1086] = {6'd3, 8'd148, 8'd62, 32'd0};//{'dest': 148, 'src': 62, 'op': 'move'} |
instructions[1087] = {6'd0, 8'd149, 8'd0, 32'd8};//{'dest': 149, 'literal': 8, 'op': 'literal'} |
instructions[1088] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1084] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20398952, 'op': 'memory_read_request'} |
instructions[1085] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1086] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20398952, 'op': 'memory_read_wait'} |
instructions[1087] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20398952, 'element_size': 2, 'op': 'memory_read'} |
instructions[1088] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1089] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1090] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1091] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1090] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1091] = {6'd11, 8'd141, 8'd140, 32'd43};//{'dest': 141, 'src': 140, 'srcb': 43, 'signed': False, 'op': '+'} |
instructions[1092] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1093] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1094] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1095] = {6'd0, 8'd149, 8'd0, 32'd9};//{'dest': 149, 'literal': 9, 'op': 'literal'} |
instructions[1093] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1094] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1095] = {6'd0, 8'd145, 8'd0, 32'd13};//{'dest': 145, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1096] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1097] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1098] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1098] = {6'd11, 8'd146, 8'd145, 32'd52};//{'dest': 146, 'src': 145, 'srcb': 52, 'signed': False, 'op': '+'} |
instructions[1099] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1100] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1101] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1102] = {6'd0, 8'd148, 8'd0, 32'd16384};//{'dest': 148, 'literal': 16384, 'op': 'literal'} |
instructions[1103] = {6'd0, 8'd149, 8'd0, 32'd10};//{'dest': 149, 'literal': 10, 'op': 'literal'} |
instructions[1104] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1105] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1106] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1101] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20399384, 'op': 'memory_read_request'} |
instructions[1102] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1103] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20399384, 'op': 'memory_read_wait'} |
instructions[1104] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20399384, 'element_size': 2, 'op': 'memory_read'} |
instructions[1105] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1106] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1107] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1108] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1109] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1110] = {6'd3, 8'd149, 8'd63, 32'd0};//{'dest': 149, 'src': 63, 'op': 'move'} |
instructions[1111] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1112] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1113] = {6'd29, 8'd148, 8'd149, 32'd65280};//{'dest': 148, 'src': 149, 'left': 65280, 'signed': False, 'op': '|'} |
instructions[1114] = {6'd0, 8'd149, 8'd0, 32'd11};//{'dest': 149, 'literal': 11, 'op': 'literal'} |
instructions[1115] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1116] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1117] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1108] = {6'd11, 8'd141, 8'd140, 32'd44};//{'dest': 141, 'src': 140, 'srcb': 44, 'signed': False, 'op': '+'} |
instructions[1109] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1110] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1111] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1112] = {6'd3, 8'd139, 8'd45, 32'd0};//{'dest': 139, 'src': 45, 'op': 'move'} |
instructions[1113] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1114] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1115] = {6'd3, 8'd53, 8'd139, 32'd0};//{'dest': 53, 'src': 139, 'op': 'move'} |
instructions[1116] = {6'd3, 8'd139, 8'd45, 32'd0};//{'dest': 139, 'src': 45, 'op': 'move'} |
instructions[1117] = {6'd14, 8'd45, 8'd45, 32'd1};//{'src': 45, 'right': 1, 'dest': 45, 'signed': False, 'op': '+', 'size': 2} |
instructions[1118] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1119] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1120] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1121] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1122] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[1123] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1120] = {6'd3, 8'd140, 8'd45, 32'd0};//{'dest': 140, 'src': 45, 'op': 'move'} |
instructions[1121] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1122] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1123] = {6'd25, 8'd139, 8'd140, 32'd16};//{'src': 140, 'right': 16, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1124] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1125] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1126] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1127] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1128] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1129] = {6'd3, 8'd148, 8'd13, 32'd0};//{'dest': 148, 'src': 13, 'op': 'move'} |
instructions[1130] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[1131] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1132] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1133] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1125] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1126] = {6'd13, 8'd0, 8'd139, 32'd1132};//{'src': 139, 'label': 1132, 'op': 'jmp_if_false'} |
instructions[1127] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1128] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1129] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1130] = {6'd3, 8'd45, 8'd139, 32'd0};//{'dest': 45, 'src': 139, 'op': 'move'} |
instructions[1131] = {6'd15, 8'd0, 8'd0, 32'd1132};//{'label': 1132, 'op': 'goto'} |
instructions[1132] = {6'd3, 8'd139, 8'd53, 32'd0};//{'dest': 139, 'src': 53, 'op': 'move'} |
instructions[1133] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1134] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1135] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1136] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1137] = {6'd3, 8'd148, 8'd14, 32'd0};//{'dest': 148, 'src': 14, 'op': 'move'} |
instructions[1138] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[1139] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1140] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1141] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1142] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1143] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1144] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1145] = {6'd3, 8'd148, 8'd64, 32'd0};//{'dest': 148, 'src': 64, 'op': 'move'} |
instructions[1146] = {6'd0, 8'd149, 8'd0, 32'd15};//{'dest': 149, 'literal': 15, 'op': 'literal'} |
instructions[1147] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1135] = {6'd3, 8'd47, 8'd139, 32'd0};//{'dest': 47, 'src': 139, 'op': 'move'} |
instructions[1136] = {6'd6, 8'd0, 8'd46, 32'd0};//{'src': 46, 'op': 'jmp_to_reg'} |
instructions[1137] = {6'd15, 8'd0, 8'd0, 32'd1138};//{'label': 1138, 'op': 'goto'} |
instructions[1138] = {6'd15, 8'd0, 8'd0, 32'd1139};//{'label': 1139, 'op': 'goto'} |
instructions[1139] = {6'd15, 8'd0, 8'd0, 32'd927};//{'label': 927, 'op': 'goto'} |
instructions[1140] = {6'd0, 8'd60, 8'd0, 32'd0};//{'dest': 60, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1141] = {6'd0, 8'd61, 8'd0, 32'd0};//{'dest': 61, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1142] = {6'd0, 8'd62, 8'd0, 32'd0};//{'dest': 62, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1143] = {6'd3, 8'd140, 8'd58, 32'd0};//{'dest': 140, 'src': 58, 'op': 'move'} |
instructions[1144] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1145] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1146] = {6'd3, 8'd48, 8'd140, 32'd0};//{'dest': 48, 'src': 140, 'op': 'move'} |
instructions[1147] = {6'd3, 8'd140, 8'd59, 32'd0};//{'dest': 140, 'src': 59, 'op': 'move'} |
instructions[1148] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1149] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1150] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1151] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1152] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1153] = {6'd3, 8'd148, 8'd65, 32'd0};//{'dest': 148, 'src': 65, 'op': 'move'} |
instructions[1154] = {6'd0, 8'd149, 8'd0, 32'd16};//{'dest': 149, 'literal': 16, 'op': 'literal'} |
instructions[1155] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1156] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1157] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1149] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1150] = {6'd3, 8'd49, 8'd140, 32'd0};//{'dest': 49, 'src': 140, 'op': 'move'} |
instructions[1151] = {6'd1, 8'd46, 8'd0, 32'd754};//{'dest': 46, 'label': 754, 'op': 'jmp_and_link'} |
instructions[1152] = {6'd3, 8'd139, 8'd47, 32'd0};//{'dest': 139, 'src': 47, 'op': 'move'} |
instructions[1153] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1154] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1155] = {6'd3, 8'd62, 8'd139, 32'd0};//{'dest': 62, 'src': 139, 'op': 'move'} |
instructions[1156] = {6'd0, 8'd139, 8'd0, 32'd17664};//{'dest': 139, 'literal': 17664, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1157] = {6'd0, 8'd140, 8'd0, 32'd7};//{'dest': 140, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1158] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1159] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1160] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1161] = {6'd3, 8'd149, 8'd62, 32'd0};//{'dest': 149, 'src': 62, 'op': 'move'} |
instructions[1160] = {6'd27, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': True, 'op': '+'} |
instructions[1161] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1162] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1163] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1164] = {6'd14, 8'd148, 8'd149, 32'd14};//{'dest': 148, 'src': 149, 'right': 14, 'signed': False, 'op': '+'} |
instructions[1165] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1163] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1164] = {6'd3, 8'd139, 8'd56, 32'd0};//{'dest': 139, 'src': 56, 'op': 'move'} |
instructions[1165] = {6'd0, 8'd140, 8'd0, 32'd8};//{'dest': 140, 'literal': 8, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1166] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1167] = {6'd3, 8'd66, 8'd148, 32'd0};//{'dest': 66, 'src': 148, 'op': 'move'} |
instructions[1168] = {6'd1, 8'd18, 8'd0, 32'd56};//{'dest': 18, 'label': 56, 'op': 'jmp_and_link'} |
instructions[1169] = {6'd0, 8'd148, 8'd0, 32'd7};//{'dest': 148, 'literal': 7, 'op': 'literal'} |
instructions[1167] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1168] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1169] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1170] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1171] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1172] = {6'd3, 8'd67, 8'd148, 32'd0};//{'dest': 67, 'src': 148, 'op': 'move'} |
instructions[1173] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1171] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1172] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1173] = {6'd0, 8'd140, 8'd0, 32'd9};//{'dest': 140, 'literal': 9, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1174] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1175] = {6'd3, 8'd149, 8'd67, 32'd0};//{'dest': 149, 'src': 67, 'op': 'move'} |
instructions[1176] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1175] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1176] = {6'd27, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': True, 'op': '+'} |
instructions[1177] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1178] = {6'd30, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '<='} |
instructions[1179] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1180] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1181] = {6'd13, 8'd0, 8'd148, 32'd1196};//{'src': 148, 'label': 1196, 'op': 'jmp_if_false'} |
instructions[1182] = {6'd3, 8'd149, 8'd67, 32'd0};//{'dest': 149, 'src': 67, 'op': 'move'} |
instructions[1178] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1179] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1180] = {6'd0, 8'd139, 8'd0, 32'd16384};//{'dest': 139, 'literal': 16384, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1181] = {6'd0, 8'd140, 8'd0, 32'd10};//{'dest': 140, 'literal': 10, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1182] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1183] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1184] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1185] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1184] = {6'd27, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': True, 'op': '+'} |
instructions[1185] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1186] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1187] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1188] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18373736, 'op': 'memory_read_request'} |
instructions[1187] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1188] = {6'd3, 8'd145, 8'd57, 32'd0};//{'dest': 145, 'src': 57, 'op': 'move'} |
instructions[1189] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1190] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18373736, 'op': 'memory_read_wait'} |
instructions[1191] = {6'd19, 8'd20, 8'd150, 32'd0};//{'dest': 20, 'src': 150, 'sequence': 18373736, 'element_size': 2, 'op': 'memory_read'} |
instructions[1192] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1193] = {6'd3, 8'd148, 8'd67, 32'd0};//{'dest': 148, 'src': 67, 'op': 'move'} |
instructions[1194] = {6'd14, 8'd67, 8'd67, 32'd1};//{'dest': 67, 'src': 67, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1195] = {6'd15, 8'd0, 8'd0, 32'd1173};//{'label': 1173, 'op': 'goto'} |
instructions[1196] = {6'd1, 8'd21, 8'd0, 32'd97};//{'dest': 21, 'label': 97, 'op': 'jmp_and_link'} |
instructions[1197] = {6'd3, 8'd148, 8'd22, 32'd0};//{'dest': 148, 'src': 22, 'op': 'move'} |
instructions[1198] = {6'd0, 8'd149, 8'd0, 32'd12};//{'dest': 149, 'literal': 12, 'op': 'literal'} |
instructions[1199] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1200] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1201] = {6'd11, 8'd150, 8'd149, 32'd61};//{'dest': 150, 'src': 149, 'srcb': 61, 'signed': False, 'op': '+'} |
instructions[1190] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1191] = {6'd30, 8'd139, 8'd145, 32'd65280};//{'src': 145, 'dest': 139, 'signed': False, 'op': '|', 'size': 2, 'type': 'int', 'left': 65280} |
instructions[1192] = {6'd0, 8'd140, 8'd0, 32'd11};//{'dest': 140, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1193] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1194] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1195] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1196] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1197] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1198] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1199] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1200] = {6'd0, 8'd140, 8'd0, 32'd12};//{'dest': 140, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1201] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1202] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1203] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1204] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1205] = {6'd3, 8'd149, 8'd66, 32'd0};//{'dest': 149, 'src': 66, 'op': 'move'} |
instructions[1206] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1207] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1208] = {6'd27, 8'd148, 8'd149, 32'd64};//{'dest': 148, 'src': 149, 'right': 64, 'signed': False, 'op': '<'} |
instructions[1203] = {6'd27, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': True, 'op': '+'} |
instructions[1204] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1205] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1206] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1207] = {6'd0, 8'd139, 8'd0, 32'd49320};//{'dest': 139, 'literal': 49320, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1208] = {6'd0, 8'd140, 8'd0, 32'd13};//{'dest': 140, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1209] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1210] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1211] = {6'd13, 8'd0, 8'd148, 32'd1217};//{'src': 148, 'label': 1217, 'op': 'jmp_if_false'} |
instructions[1212] = {6'd0, 8'd148, 8'd0, 32'd64};//{'dest': 148, 'literal': 64, 'op': 'literal'} |
instructions[1211] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1212] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1213] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1214] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1215] = {6'd3, 8'd66, 8'd148, 32'd0};//{'dest': 66, 'src': 148, 'op': 'move'} |
instructions[1216] = {6'd15, 8'd0, 8'd0, 32'd1217};//{'label': 1217, 'op': 'goto'} |
instructions[1217] = {6'd3, 8'd32, 8'd61, 32'd0};//{'dest': 32, 'src': 61, 'op': 'move'} |
instructions[1218] = {6'd3, 8'd33, 8'd66, 32'd0};//{'dest': 33, 'src': 66, 'op': 'move'} |
instructions[1219] = {6'd3, 8'd149, 8'd68, 32'd0};//{'dest': 149, 'src': 68, 'op': 'move'} |
instructions[1214] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1215] = {6'd0, 8'd139, 8'd0, 32'd257};//{'dest': 139, 'literal': 257, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1216] = {6'd0, 8'd140, 8'd0, 32'd14};//{'dest': 140, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1217] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1218] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1219] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1220] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1221] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1222] = {6'd11, 8'd150, 8'd149, 32'd48};//{'dest': 150, 'src': 149, 'srcb': 48, 'signed': False, 'op': '+'} |
instructions[1223] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1224] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1225] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375456, 'op': 'memory_read_request'} |
instructions[1222] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1223] = {6'd3, 8'd139, 8'd58, 32'd0};//{'dest': 139, 'src': 58, 'op': 'move'} |
instructions[1224] = {6'd0, 8'd140, 8'd0, 32'd15};//{'dest': 140, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1225] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1226] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1227] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375456, 'op': 'memory_read_wait'} |
instructions[1228] = {6'd19, 8'd34, 8'd150, 32'd0};//{'dest': 34, 'src': 150, 'sequence': 18375456, 'element_size': 2, 'op': 'memory_read'} |
instructions[1229] = {6'd3, 8'd149, 8'd68, 32'd0};//{'dest': 149, 'src': 68, 'op': 'move'} |
instructions[1230] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1231] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1232] = {6'd11, 8'd150, 8'd149, 32'd49};//{'dest': 150, 'src': 149, 'srcb': 49, 'signed': False, 'op': '+'} |
instructions[1227] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1228] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1229] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1230] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1231] = {6'd3, 8'd139, 8'd59, 32'd0};//{'dest': 139, 'src': 59, 'op': 'move'} |
instructions[1232] = {6'd0, 8'd140, 8'd0, 32'd16};//{'dest': 140, 'literal': 16, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1233] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1234] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1235] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375600, 'op': 'memory_read_request'} |
instructions[1235] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1236] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1237] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375600, 'op': 'memory_read_wait'} |
instructions[1238] = {6'd19, 8'd35, 8'd150, 32'd0};//{'dest': 35, 'src': 150, 'sequence': 18375600, 'element_size': 2, 'op': 'memory_read'} |
instructions[1239] = {6'd3, 8'd149, 8'd68, 32'd0};//{'dest': 149, 'src': 68, 'op': 'move'} |
instructions[1237] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1238] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1239] = {6'd3, 8'd140, 8'd56, 32'd0};//{'dest': 140, 'src': 56, 'op': 'move'} |
instructions[1240] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1241] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1242] = {6'd11, 8'd150, 8'd149, 32'd50};//{'dest': 150, 'src': 149, 'srcb': 50, 'signed': False, 'op': '+'} |
instructions[1242] = {6'd14, 8'd139, 8'd140, 32'd14};//{'src': 140, 'right': 14, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1243] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1244] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1245] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375744, 'op': 'memory_read_request'} |
instructions[1246] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1247] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18375744, 'op': 'memory_read_wait'} |
instructions[1248] = {6'd19, 8'd36, 8'd150, 32'd0};//{'dest': 36, 'src': 150, 'sequence': 18375744, 'element_size': 2, 'op': 'memory_read'} |
instructions[1249] = {6'd0, 8'd37, 8'd0, 32'd2048};//{'dest': 37, 'literal': 2048, 'op': 'literal'} |
instructions[1250] = {6'd1, 8'd31, 8'd0, 32'd209};//{'dest': 31, 'label': 209, 'op': 'jmp_and_link'} |
instructions[1251] = {6'd6, 8'd0, 8'd60, 32'd0};//{'src': 60, 'op': 'jmp_to_reg'} |
instructions[1252] = {6'd0, 8'd72, 8'd0, 32'd0};//{'dest': 72, 'literal': 0, 'op': 'literal'} |
instructions[1253] = {6'd0, 8'd73, 8'd0, 32'd0};//{'dest': 73, 'literal': 0, 'op': 'literal'} |
instructions[1254] = {6'd0, 8'd74, 8'd0, 32'd0};//{'dest': 74, 'literal': 0, 'op': 'literal'} |
instructions[1255] = {6'd0, 8'd75, 8'd0, 32'd0};//{'dest': 75, 'literal': 0, 'op': 'literal'} |
instructions[1256] = {6'd0, 8'd76, 8'd0, 32'd0};//{'dest': 76, 'literal': 0, 'op': 'literal'} |
instructions[1257] = {6'd0, 8'd77, 8'd0, 32'd0};//{'dest': 77, 'literal': 0, 'op': 'literal'} |
instructions[1258] = {6'd0, 8'd78, 8'd0, 32'd0};//{'dest': 78, 'literal': 0, 'op': 'literal'} |
instructions[1259] = {6'd0, 8'd79, 8'd0, 32'd0};//{'dest': 79, 'literal': 0, 'op': 'literal'} |
instructions[1260] = {6'd3, 8'd42, 8'd71, 32'd0};//{'dest': 42, 'src': 71, 'op': 'move'} |
instructions[1261] = {6'd1, 8'd40, 8'd0, 32'd313};//{'dest': 40, 'label': 313, 'op': 'jmp_and_link'} |
instructions[1262] = {6'd3, 8'd148, 8'd41, 32'd0};//{'dest': 148, 'src': 41, 'op': 'move'} |
instructions[1263] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1245] = {6'd3, 8'd60, 8'd139, 32'd0};//{'dest': 60, 'src': 139, 'op': 'move'} |
instructions[1246] = {6'd1, 8'd12, 8'd0, 32'd59};//{'dest': 12, 'label': 59, 'op': 'jmp_and_link'} |
instructions[1247] = {6'd0, 8'd139, 8'd0, 32'd7};//{'dest': 139, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1248] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1249] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1250] = {6'd3, 8'd61, 8'd139, 32'd0};//{'dest': 61, 'src': 139, 'op': 'move'} |
instructions[1251] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1252] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1253] = {6'd3, 8'd140, 8'd61, 32'd0};//{'dest': 140, 'src': 61, 'op': 'move'} |
instructions[1254] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1255] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1256] = {6'd31, 8'd139, 8'd140, 32'd16};//{'src': 140, 'right': 16, 'dest': 139, 'signed': False, 'op': '<=', 'type': 'int', 'size': 2} |
instructions[1257] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1258] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1259] = {6'd13, 8'd0, 8'd139, 32'd1277};//{'src': 139, 'label': 1277, 'op': 'jmp_if_false'} |
instructions[1260] = {6'd3, 8'd141, 8'd61, 32'd0};//{'dest': 141, 'src': 61, 'op': 'move'} |
instructions[1261] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1262] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1263] = {6'd11, 8'd145, 8'd141, 32'd55};//{'dest': 145, 'src': 141, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1264] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1265] = {6'd3, 8'd66, 8'd148, 32'd0};//{'dest': 66, 'src': 148, 'op': 'move'} |
instructions[1266] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1265] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1266] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20412680, 'op': 'memory_read_request'} |
instructions[1267] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1268] = {6'd3, 8'd149, 8'd66, 32'd0};//{'dest': 149, 'src': 66, 'op': 'move'} |
instructions[1269] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1268] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20412680, 'op': 'memory_read_wait'} |
instructions[1269] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20412680, 'element_size': 2, 'op': 'memory_read'} |
instructions[1270] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1271] = {6'd25, 8'd148, 8'd149, 32'd0};//{'dest': 148, 'src': 149, 'right': 0, 'signed': False, 'op': '=='} |
instructions[1272] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1273] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1274] = {6'd13, 8'd0, 8'd148, 32'd1278};//{'src': 148, 'label': 1278, 'op': 'jmp_if_false'} |
instructions[1275] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1276] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1277] = {6'd15, 8'd0, 8'd0, 32'd1278};//{'label': 1278, 'op': 'goto'} |
instructions[1278] = {6'd0, 8'd150, 8'd0, 32'd6};//{'dest': 150, 'literal': 6, 'op': 'literal'} |
instructions[1279] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1271] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1272] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[1273] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[1274] = {6'd3, 8'd139, 8'd61, 32'd0};//{'dest': 139, 'src': 61, 'op': 'move'} |
instructions[1275] = {6'd14, 8'd61, 8'd61, 32'd1};//{'src': 61, 'right': 1, 'dest': 61, 'signed': False, 'op': '+', 'size': 2} |
instructions[1276] = {6'd15, 8'd0, 8'd0, 32'd1251};//{'label': 1251, 'op': 'goto'} |
instructions[1277] = {6'd1, 8'd15, 8'd0, 32'd100};//{'dest': 15, 'label': 100, 'op': 'jmp_and_link'} |
instructions[1278] = {6'd3, 8'd139, 8'd16, 32'd0};//{'dest': 139, 'src': 16, 'op': 'move'} |
instructions[1279] = {6'd0, 8'd140, 8'd0, 32'd12};//{'dest': 140, 'literal': 12, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1280] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1281] = {6'd11, 8'd151, 8'd150, 32'd71};//{'dest': 151, 'src': 150, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1282] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1281] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1282] = {6'd11, 8'd141, 8'd140, 32'd55};//{'dest': 141, 'src': 140, 'srcb': 55, 'signed': False, 'op': '+'} |
instructions[1283] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1284] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18375816, 'op': 'memory_read_request'} |
instructions[1285] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1286] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18375816, 'op': 'memory_read_wait'} |
instructions[1287] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18375816, 'element_size': 2, 'op': 'memory_read'} |
instructions[1284] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1285] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1286] = {6'd3, 8'd140, 8'd60, 32'd0};//{'dest': 140, 'src': 60, 'op': 'move'} |
instructions[1287] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1288] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1289] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1290] = {6'd26, 8'd148, 8'd149, 32'd2048};//{'dest': 148, 'src': 149, 'right': 2048, 'signed': False, 'op': '!='} |
instructions[1289] = {6'd28, 8'd139, 8'd140, 32'd64};//{'src': 140, 'right': 64, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[1290] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1291] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1292] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1293] = {6'd13, 8'd0, 8'd148, 32'd1297};//{'src': 148, 'label': 1297, 'op': 'jmp_if_false'} |
instructions[1294] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1295] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1296] = {6'd15, 8'd0, 8'd0, 32'd1297};//{'label': 1297, 'op': 'goto'} |
instructions[1297] = {6'd0, 8'd150, 8'd0, 32'd15};//{'dest': 150, 'literal': 15, 'op': 'literal'} |
instructions[1298] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1292] = {6'd13, 8'd0, 8'd139, 32'd1298};//{'src': 139, 'label': 1298, 'op': 'jmp_if_false'} |
instructions[1293] = {6'd0, 8'd139, 8'd0, 32'd64};//{'dest': 139, 'literal': 64, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1294] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1295] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1296] = {6'd3, 8'd60, 8'd139, 32'd0};//{'dest': 60, 'src': 139, 'op': 'move'} |
instructions[1297] = {6'd15, 8'd0, 8'd0, 32'd1298};//{'label': 1298, 'op': 'goto'} |
instructions[1298] = {6'd3, 8'd142, 8'd55, 32'd0};//{'dest': 142, 'src': 55, 'op': 'move'} |
instructions[1299] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1300] = {6'd11, 8'd151, 8'd150, 32'd71};//{'dest': 151, 'src': 150, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1301] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1302] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1303] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18376320, 'op': 'memory_read_request'} |
instructions[1300] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1301] = {6'd3, 8'd26, 8'd142, 32'd0};//{'dest': 26, 'src': 142, 'op': 'move'} |
instructions[1302] = {6'd3, 8'd140, 8'd60, 32'd0};//{'dest': 140, 'src': 60, 'op': 'move'} |
instructions[1303] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1304] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1305] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18376320, 'op': 'memory_read_wait'} |
instructions[1306] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18376320, 'element_size': 2, 'op': 'memory_read'} |
instructions[1307] = {6'd3, 8'd150, 8'd13, 32'd0};//{'dest': 150, 'src': 13, 'op': 'move'} |
instructions[1305] = {6'd3, 8'd27, 8'd140, 32'd0};//{'dest': 27, 'src': 140, 'op': 'move'} |
instructions[1306] = {6'd3, 8'd141, 8'd62, 32'd0};//{'dest': 141, 'src': 62, 'op': 'move'} |
instructions[1307] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1308] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1309] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1310] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[1309] = {6'd11, 8'd145, 8'd141, 32'd42};//{'dest': 145, 'src': 141, 'srcb': 42, 'signed': False, 'op': '+'} |
instructions[1310] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1311] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1312] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1313] = {6'd13, 8'd0, 8'd148, 32'd1317};//{'src': 148, 'label': 1317, 'op': 'jmp_if_false'} |
instructions[1314] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1315] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1316] = {6'd15, 8'd0, 8'd0, 32'd1317};//{'label': 1317, 'op': 'goto'} |
instructions[1317] = {6'd0, 8'd150, 8'd0, 32'd16};//{'dest': 150, 'literal': 16, 'op': 'literal'} |
instructions[1318] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1319] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1320] = {6'd11, 8'd151, 8'd150, 32'd71};//{'dest': 151, 'src': 150, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1312] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414336, 'op': 'memory_read_request'} |
instructions[1313] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1314] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414336, 'op': 'memory_read_wait'} |
instructions[1315] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20414336, 'element_size': 2, 'op': 'memory_read'} |
instructions[1316] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1317] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1318] = {6'd3, 8'd28, 8'd140, 32'd0};//{'dest': 28, 'src': 140, 'op': 'move'} |
instructions[1319] = {6'd3, 8'd141, 8'd62, 32'd0};//{'dest': 141, 'src': 62, 'op': 'move'} |
instructions[1320] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1321] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1322] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1323] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18376824, 'op': 'memory_read_request'} |
instructions[1322] = {6'd11, 8'd145, 8'd141, 32'd43};//{'dest': 145, 'src': 141, 'srcb': 43, 'signed': False, 'op': '+'} |
instructions[1323] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1324] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1325] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18376824, 'op': 'memory_read_wait'} |
instructions[1326] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18376824, 'element_size': 2, 'op': 'memory_read'} |
instructions[1327] = {6'd3, 8'd150, 8'd14, 32'd0};//{'dest': 150, 'src': 14, 'op': 'move'} |
instructions[1328] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1325] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414408, 'op': 'memory_read_request'} |
instructions[1326] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1327] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414408, 'op': 'memory_read_wait'} |
instructions[1328] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20414408, 'element_size': 2, 'op': 'memory_read'} |
instructions[1329] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1330] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[1331] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1332] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1333] = {6'd13, 8'd0, 8'd148, 32'd1337};//{'src': 148, 'label': 1337, 'op': 'jmp_if_false'} |
instructions[1334] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1335] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1336] = {6'd15, 8'd0, 8'd0, 32'd1337};//{'label': 1337, 'op': 'goto'} |
instructions[1337] = {6'd0, 8'd151, 8'd0, 32'd11};//{'dest': 151, 'literal': 11, 'op': 'literal'} |
instructions[1338] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1330] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1331] = {6'd3, 8'd29, 8'd140, 32'd0};//{'dest': 29, 'src': 140, 'op': 'move'} |
instructions[1332] = {6'd3, 8'd141, 8'd62, 32'd0};//{'dest': 141, 'src': 62, 'op': 'move'} |
instructions[1333] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1334] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1335] = {6'd11, 8'd145, 8'd141, 32'd44};//{'dest': 145, 'src': 141, 'srcb': 44, 'signed': False, 'op': '+'} |
instructions[1336] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1337] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1338] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414688, 'op': 'memory_read_request'} |
instructions[1339] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1340] = {6'd11, 8'd152, 8'd151, 32'd71};//{'dest': 152, 'src': 151, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1341] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1340] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20414688, 'op': 'memory_read_wait'} |
instructions[1341] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20414688, 'element_size': 2, 'op': 'memory_read'} |
instructions[1342] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1343] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18381568, 'op': 'memory_read_request'} |
instructions[1344] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1345] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18381568, 'op': 'memory_read_wait'} |
instructions[1346] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 18381568, 'element_size': 2, 'op': 'memory_read'} |
instructions[1343] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1344] = {6'd3, 8'd30, 8'd140, 32'd0};//{'dest': 30, 'src': 140, 'op': 'move'} |
instructions[1345] = {6'd0, 8'd140, 8'd0, 32'd2048};//{'dest': 140, 'literal': 2048, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1346] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1347] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1348] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1349] = {6'd12, 8'd149, 8'd150, 32'd255};//{'dest': 149, 'src': 150, 'right': 255, 'signed': False, 'op': '&'} |
instructions[1350] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1351] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1352] = {6'd25, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '=='} |
instructions[1353] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1354] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1355] = {6'd13, 8'd0, 8'd148, 32'd1541};//{'src': 148, 'label': 1541, 'op': 'jmp_if_false'} |
instructions[1356] = {6'd0, 8'd152, 8'd0, 32'd7};//{'dest': 152, 'literal': 7, 'op': 'literal'} |
instructions[1357] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1358] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1359] = {6'd11, 8'd153, 8'd152, 32'd71};//{'dest': 153, 'src': 152, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1360] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1348] = {6'd3, 8'd31, 8'd140, 32'd0};//{'dest': 31, 'src': 140, 'op': 'move'} |
instructions[1349] = {6'd1, 8'd25, 8'd0, 32'd218};//{'dest': 25, 'label': 218, 'op': 'jmp_and_link'} |
instructions[1350] = {6'd6, 8'd0, 8'd54, 32'd0};//{'src': 54, 'op': 'jmp_to_reg'} |
instructions[1351] = {6'd0, 8'd66, 8'd0, 32'd0};//{'dest': 66, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1352] = {6'd0, 8'd67, 8'd0, 32'd0};//{'dest': 67, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1353] = {6'd0, 8'd68, 8'd0, 32'd0};//{'dest': 68, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1354] = {6'd0, 8'd69, 8'd0, 32'd0};//{'dest': 69, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1355] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1356] = {6'd0, 8'd71, 8'd0, 32'd0};//{'dest': 71, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1357] = {6'd0, 8'd72, 8'd0, 32'd0};//{'dest': 72, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1358] = {6'd0, 8'd73, 8'd0, 32'd0};//{'dest': 73, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1359] = {6'd0, 8'd74, 8'd0, 32'd0};//{'dest': 74, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1360] = {6'd3, 8'd142, 8'd65, 32'd0};//{'dest': 142, 'src': 65, 'op': 'move'} |
instructions[1361] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1362] = {6'd17, 8'd0, 8'd153, 32'd0};//{'element_size': 2, 'src': 153, 'sequence': 18386456, 'op': 'memory_read_request'} |
instructions[1363] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1364] = {6'd18, 8'd0, 8'd153, 32'd0};//{'element_size': 2, 'src': 153, 'sequence': 18386456, 'op': 'memory_read_wait'} |
instructions[1365] = {6'd19, 8'd151, 8'd153, 32'd0};//{'dest': 151, 'src': 153, 'sequence': 18386456, 'element_size': 2, 'op': 'memory_read'} |
instructions[1362] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1363] = {6'd3, 8'd36, 8'd142, 32'd0};//{'dest': 36, 'src': 142, 'op': 'move'} |
instructions[1364] = {6'd1, 8'd34, 8'd0, 32'd328};//{'dest': 34, 'label': 328, 'op': 'jmp_and_link'} |
instructions[1365] = {6'd3, 8'd139, 8'd35, 32'd0};//{'dest': 139, 'src': 35, 'op': 'move'} |
instructions[1366] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1367] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1368] = {6'd31, 8'd150, 8'd151, 32'd8};//{'dest': 150, 'src': 151, 'right': 8, 'signed': False, 'op': '>>'} |
instructions[1368] = {6'd3, 8'd74, 8'd139, 32'd0};//{'dest': 74, 'src': 139, 'op': 'move'} |
instructions[1369] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1370] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1371] = {6'd12, 8'd149, 8'd150, 32'd15};//{'dest': 149, 'src': 150, 'right': 15, 'signed': False, 'op': '&'} |
instructions[1371] = {6'd3, 8'd140, 8'd74, 32'd0};//{'dest': 140, 'src': 74, 'op': 'move'} |
instructions[1372] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1373] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1374] = {6'd32, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '<<'} |
instructions[1374] = {6'd25, 8'd139, 8'd140, 32'd0};//{'src': 140, 'right': 0, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1375] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1376] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1377] = {6'd3, 8'd73, 8'd148, 32'd0};//{'dest': 73, 'src': 148, 'op': 'move'} |
instructions[1378] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1377] = {6'd13, 8'd0, 8'd139, 32'd1384};//{'src': 139, 'label': 1384, 'op': 'jmp_if_false'} |
instructions[1378] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1379] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1380] = {6'd3, 8'd149, 8'd73, 32'd0};//{'dest': 149, 'src': 73, 'op': 'move'} |
instructions[1381] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1382] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1383] = {6'd14, 8'd148, 8'd149, 32'd7};//{'dest': 148, 'src': 149, 'right': 7, 'signed': False, 'op': '+'} |
instructions[1384] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1380] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1381] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1382] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1383] = {6'd15, 8'd0, 8'd0, 32'd1384};//{'label': 1384, 'op': 'goto'} |
instructions[1384] = {6'd0, 8'd141, 8'd0, 32'd6};//{'dest': 141, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1385] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1386] = {6'd3, 8'd74, 8'd148, 32'd0};//{'dest': 74, 'src': 148, 'op': 'move'} |
instructions[1387] = {6'd0, 8'd149, 8'd0, 32'd8};//{'dest': 149, 'literal': 8, 'op': 'literal'} |
instructions[1386] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1387] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1388] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1389] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1390] = {6'd11, 8'd150, 8'd149, 32'd71};//{'dest': 150, 'src': 149, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1390] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20415408, 'op': 'memory_read_request'} |
instructions[1391] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1392] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1393] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18376968, 'op': 'memory_read_request'} |
instructions[1392] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20415408, 'op': 'memory_read_wait'} |
instructions[1393] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20415408, 'element_size': 2, 'op': 'memory_read'} |
instructions[1394] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1395] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18376968, 'op': 'memory_read_wait'} |
instructions[1396] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18376968, 'element_size': 2, 'op': 'memory_read'} |
instructions[1395] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1396] = {6'd26, 8'd139, 8'd140, 32'd2048};//{'src': 140, 'right': 2048, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[1397] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1398] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1399] = {6'd3, 8'd72, 8'd148, 32'd0};//{'dest': 72, 'src': 148, 'op': 'move'} |
instructions[1400] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1399] = {6'd13, 8'd0, 8'd139, 32'd1406};//{'src': 139, 'label': 1406, 'op': 'jmp_if_false'} |
instructions[1400] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1401] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1402] = {6'd3, 8'd151, 8'd72, 32'd0};//{'dest': 151, 'src': 72, 'op': 'move'} |
instructions[1403] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1404] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1405] = {6'd14, 8'd150, 8'd151, 32'd1};//{'dest': 150, 'src': 151, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1406] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1402] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1403] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1404] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1405] = {6'd15, 8'd0, 8'd0, 32'd1406};//{'label': 1406, 'op': 'goto'} |
instructions[1406] = {6'd0, 8'd141, 8'd0, 32'd15};//{'dest': 141, 'literal': 15, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1407] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1408] = {6'd31, 8'd149, 8'd150, 32'd1};//{'dest': 149, 'src': 150, 'right': 1, 'signed': False, 'op': '>>'} |
instructions[1409] = {6'd3, 8'd150, 8'd73, 32'd0};//{'dest': 150, 'src': 73, 'op': 'move'} |
instructions[1408] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1409] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1410] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1411] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1412] = {6'd33, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '-'} |
instructions[1412] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20415912, 'op': 'memory_read_request'} |
instructions[1413] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1414] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1415] = {6'd3, 8'd75, 8'd148, 32'd0};//{'dest': 75, 'src': 148, 'op': 'move'} |
instructions[1416] = {6'd3, 8'd150, 8'd74, 32'd0};//{'dest': 150, 'src': 74, 'op': 'move'} |
instructions[1414] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20415912, 'op': 'memory_read_wait'} |
instructions[1415] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20415912, 'element_size': 2, 'op': 'memory_read'} |
instructions[1416] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1417] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1418] = {6'd3, 8'd151, 8'd75, 32'd0};//{'dest': 151, 'src': 75, 'op': 'move'} |
instructions[1418] = {6'd26, 8'd139, 8'd140, 32'd49320};//{'src': 140, 'right': 49320, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[1419] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1420] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1421] = {6'd11, 8'd149, 8'd150, 32'd151};//{'dest': 149, 'src': 150, 'srcb': 151, 'signed': False, 'op': '+'} |
instructions[1422] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1421] = {6'd13, 8'd0, 8'd139, 32'd1428};//{'src': 139, 'label': 1428, 'op': 'jmp_if_false'} |
instructions[1422] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1423] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1424] = {6'd34, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '-'} |
instructions[1425] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1426] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1427] = {6'd3, 8'd79, 8'd148, 32'd0};//{'dest': 79, 'src': 148, 'op': 'move'} |
instructions[1428] = {6'd3, 8'd150, 8'd74, 32'd0};//{'dest': 150, 'src': 74, 'op': 'move'} |
instructions[1424] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1425] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1426] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1427] = {6'd15, 8'd0, 8'd0, 32'd1428};//{'label': 1428, 'op': 'goto'} |
instructions[1428] = {6'd0, 8'd141, 8'd0, 32'd16};//{'dest': 141, 'literal': 16, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1429] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1430] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1431] = {6'd11, 8'd151, 8'd150, 32'd71};//{'dest': 151, 'src': 150, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1431] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1432] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1433] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1434] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18374736, 'op': 'memory_read_request'} |
instructions[1434] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20416416, 'op': 'memory_read_request'} |
instructions[1435] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1436] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 18374736, 'op': 'memory_read_wait'} |
instructions[1437] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 18374736, 'element_size': 2, 'op': 'memory_read'} |
instructions[1436] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20416416, 'op': 'memory_read_wait'} |
instructions[1437] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20416416, 'element_size': 2, 'op': 'memory_read'} |
instructions[1438] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1439] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1440] = {6'd25, 8'd148, 8'd149, 32'd2048};//{'dest': 148, 'src': 149, 'right': 2048, 'signed': False, 'op': '=='} |
instructions[1440] = {6'd26, 8'd139, 8'd140, 32'd257};//{'src': 140, 'right': 257, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[1441] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1442] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1443] = {6'd13, 8'd0, 8'd148, 32'd1538};//{'src': 148, 'label': 1538, 'op': 'jmp_if_false'} |
instructions[1444] = {6'd0, 8'd148, 8'd0, 32'd19};//{'dest': 148, 'literal': 19, 'op': 'literal'} |
instructions[1443] = {6'd13, 8'd0, 8'd139, 32'd1450};//{'src': 139, 'label': 1450, 'op': 'jmp_if_false'} |
instructions[1444] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1445] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1446] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1447] = {6'd3, 8'd78, 8'd148, 32'd0};//{'dest': 78, 'src': 148, 'op': 'move'} |
instructions[1448] = {6'd1, 8'd18, 8'd0, 32'd56};//{'dest': 18, 'label': 56, 'op': 'jmp_and_link'} |
instructions[1449] = {6'd3, 8'd149, 8'd74, 32'd0};//{'dest': 149, 'src': 74, 'op': 'move'} |
instructions[1450] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1447] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1448] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1449] = {6'd15, 8'd0, 8'd0, 32'd1450};//{'label': 1450, 'op': 'goto'} |
instructions[1450] = {6'd0, 8'd145, 8'd0, 32'd11};//{'dest': 145, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1451] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1452] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[1453] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1452] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1453] = {6'd11, 8'd146, 8'd145, 32'd65};//{'dest': 146, 'src': 145, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1454] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1455] = {6'd3, 8'd77, 8'd148, 32'd0};//{'dest': 77, 'src': 148, 'op': 'move'} |
instructions[1456] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1455] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1456] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20040232, 'op': 'memory_read_request'} |
instructions[1457] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1458] = {6'd3, 8'd149, 8'd77, 32'd0};//{'dest': 149, 'src': 77, 'op': 'move'} |
instructions[1459] = {6'd3, 8'd150, 8'd79, 32'd0};//{'dest': 150, 'src': 79, 'op': 'move'} |
instructions[1458] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20040232, 'op': 'memory_read_wait'} |
instructions[1459] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20040232, 'element_size': 2, 'op': 'memory_read'} |
instructions[1460] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1461] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1462] = {6'd35, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<='} |
instructions[1462] = {6'd12, 8'd140, 8'd141, 32'd255};//{'src': 141, 'right': 255, 'dest': 140, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[1463] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1464] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1465] = {6'd13, 8'd0, 8'd148, 32'd1496};//{'src': 148, 'label': 1496, 'op': 'jmp_if_false'} |
instructions[1466] = {6'd3, 8'd149, 8'd77, 32'd0};//{'dest': 149, 'src': 77, 'op': 'move'} |
instructions[1465] = {6'd25, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1466] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1467] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1468] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1469] = {6'd11, 8'd150, 8'd149, 32'd71};//{'dest': 150, 'src': 149, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1468] = {6'd13, 8'd0, 8'd139, 32'd1675};//{'src': 139, 'label': 1675, 'op': 'jmp_if_false'} |
instructions[1469] = {6'd0, 8'd146, 8'd0, 32'd7};//{'dest': 146, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1470] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1471] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1472] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18370432, 'op': 'memory_read_request'} |
instructions[1472] = {6'd11, 8'd148, 8'd146, 32'd65};//{'dest': 148, 'src': 146, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1473] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1474] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18370432, 'op': 'memory_read_wait'} |
instructions[1475] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 18370432, 'element_size': 2, 'op': 'memory_read'} |
instructions[1474] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1475] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20045120, 'op': 'memory_read_request'} |
instructions[1476] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1477] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1478] = {6'd3, 8'd76, 8'd148, 32'd0};//{'dest': 76, 'src': 148, 'op': 'move'} |
instructions[1477] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20045120, 'op': 'memory_read_wait'} |
instructions[1478] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20045120, 'element_size': 2, 'op': 'memory_read'} |
instructions[1479] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1480] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1481] = {6'd3, 8'd20, 8'd76, 32'd0};//{'dest': 20, 'src': 76, 'op': 'move'} |
instructions[1482] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1483] = {6'd3, 8'd148, 8'd76, 32'd0};//{'dest': 148, 'src': 76, 'op': 'move'} |
instructions[1484] = {6'd3, 8'd149, 8'd78, 32'd0};//{'dest': 149, 'src': 78, 'op': 'move'} |
instructions[1481] = {6'd32, 8'd141, 8'd145, 32'd8};//{'src': 145, 'right': 8, 'dest': 141, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[1482] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1483] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1484] = {6'd12, 8'd140, 8'd141, 32'd15};//{'src': 141, 'right': 15, 'dest': 140, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[1485] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1486] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1487] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[1487] = {6'd33, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '<<', 'type': 'int', 'size': 2} |
instructions[1488] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1489] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1490] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1491] = {6'd3, 8'd148, 8'd78, 32'd0};//{'dest': 148, 'src': 78, 'op': 'move'} |
instructions[1492] = {6'd14, 8'd78, 8'd78, 32'd1};//{'dest': 78, 'src': 78, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1493] = {6'd3, 8'd148, 8'd77, 32'd0};//{'dest': 148, 'src': 77, 'op': 'move'} |
instructions[1494] = {6'd14, 8'd77, 8'd77, 32'd1};//{'dest': 77, 'src': 77, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1495] = {6'd15, 8'd0, 8'd0, 32'd1456};//{'label': 1456, 'op': 'goto'} |
instructions[1496] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1497] = {6'd0, 8'd149, 8'd0, 32'd17};//{'dest': 149, 'literal': 17, 'op': 'literal'} |
instructions[1490] = {6'd3, 8'd67, 8'd139, 32'd0};//{'dest': 67, 'src': 139, 'op': 'move'} |
instructions[1491] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1492] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1493] = {6'd3, 8'd140, 8'd67, 32'd0};//{'dest': 140, 'src': 67, 'op': 'move'} |
instructions[1494] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1495] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1496] = {6'd14, 8'd139, 8'd140, 32'd7};//{'src': 140, 'right': 7, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1497] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1498] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1499] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1500] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[1499] = {6'd3, 8'd68, 8'd139, 32'd0};//{'dest': 68, 'src': 139, 'op': 'move'} |
instructions[1500] = {6'd0, 8'd140, 8'd0, 32'd8};//{'dest': 140, 'literal': 8, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1501] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1502] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1503] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1504] = {6'd1, 8'd21, 8'd0, 32'd97};//{'dest': 21, 'label': 97, 'op': 'jmp_and_link'} |
instructions[1505] = {6'd3, 8'd148, 8'd22, 32'd0};//{'dest': 148, 'src': 22, 'op': 'move'} |
instructions[1506] = {6'd0, 8'd149, 8'd0, 32'd18};//{'dest': 149, 'literal': 18, 'op': 'literal'} |
instructions[1503] = {6'd11, 8'd141, 8'd140, 32'd65};//{'dest': 141, 'src': 140, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1504] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1505] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1506] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20414904, 'op': 'memory_read_request'} |
instructions[1507] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1508] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1509] = {6'd11, 8'd150, 8'd149, 32'd16};//{'dest': 150, 'src': 149, 'srcb': 16, 'signed': False, 'op': '+'} |
instructions[1508] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20414904, 'op': 'memory_read_wait'} |
instructions[1509] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20414904, 'element_size': 2, 'op': 'memory_read'} |
instructions[1510] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1511] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1512] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1513] = {6'd3, 8'd61, 8'd16, 32'd0};//{'dest': 61, 'src': 16, 'op': 'move'} |
instructions[1514] = {6'd3, 8'd62, 8'd72, 32'd0};//{'dest': 62, 'src': 72, 'op': 'move'} |
instructions[1515] = {6'd0, 8'd63, 8'd0, 32'd1};//{'dest': 63, 'literal': 1, 'op': 'literal'} |
instructions[1516] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[1512] = {6'd3, 8'd66, 8'd139, 32'd0};//{'dest': 66, 'src': 139, 'op': 'move'} |
instructions[1513] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1514] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1515] = {6'd3, 8'd145, 8'd66, 32'd0};//{'dest': 145, 'src': 66, 'op': 'move'} |
instructions[1516] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1517] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1518] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1519] = {6'd11, 8'd150, 8'd149, 32'd71};//{'dest': 150, 'src': 149, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1518] = {6'd14, 8'd141, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1519] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1520] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1521] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1522] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18389688, 'op': 'memory_read_request'} |
instructions[1521] = {6'd32, 8'd140, 8'd141, 32'd1};//{'src': 141, 'right': 1, 'dest': 140, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[1522] = {6'd3, 8'd141, 8'd67, 32'd0};//{'dest': 141, 'src': 67, 'op': 'move'} |
instructions[1523] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1524] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18389688, 'op': 'memory_read_wait'} |
instructions[1525] = {6'd19, 8'd64, 8'd150, 32'd0};//{'dest': 64, 'src': 150, 'sequence': 18389688, 'element_size': 2, 'op': 'memory_read'} |
instructions[1526] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[1524] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1525] = {6'd34, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '-', 'type': 'int', 'size': 2} |
instructions[1526] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1527] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1528] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1529] = {6'd11, 8'd150, 8'd149, 32'd71};//{'dest': 150, 'src': 149, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1528] = {6'd3, 8'd69, 8'd139, 32'd0};//{'dest': 69, 'src': 139, 'op': 'move'} |
instructions[1529] = {6'd3, 8'd141, 8'd68, 32'd0};//{'dest': 141, 'src': 68, 'op': 'move'} |
instructions[1530] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1531] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1532] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18389832, 'op': 'memory_read_request'} |
instructions[1531] = {6'd3, 8'd145, 8'd69, 32'd0};//{'dest': 145, 'src': 69, 'op': 'move'} |
instructions[1532] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1533] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1534] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 18389832, 'op': 'memory_read_wait'} |
instructions[1535] = {6'd19, 8'd65, 8'd150, 32'd0};//{'dest': 65, 'src': 150, 'sequence': 18389832, 'element_size': 2, 'op': 'memory_read'} |
instructions[1536] = {6'd1, 8'd60, 8'd0, 32'd1068};//{'dest': 60, 'label': 1068, 'op': 'jmp_and_link'} |
instructions[1537] = {6'd15, 8'd0, 8'd0, 32'd1538};//{'label': 1538, 'op': 'goto'} |
instructions[1538] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1539] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1540] = {6'd15, 8'd0, 8'd0, 32'd1541};//{'label': 1541, 'op': 'goto'} |
instructions[1541] = {6'd0, 8'd151, 8'd0, 32'd11};//{'dest': 151, 'literal': 11, 'op': 'literal'} |
instructions[1534] = {6'd11, 8'd140, 8'd141, 32'd145};//{'srcb': 145, 'src': 141, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1535] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1536] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1537] = {6'd35, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '-', 'type': 'int', 'size': 2} |
instructions[1538] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1539] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1540] = {6'd3, 8'd73, 8'd139, 32'd0};//{'dest': 73, 'src': 139, 'op': 'move'} |
instructions[1541] = {6'd3, 8'd141, 8'd68, 32'd0};//{'dest': 141, 'src': 68, 'op': 'move'} |
instructions[1542] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1543] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1544] = {6'd11, 8'd152, 8'd151, 32'd71};//{'dest': 152, 'src': 151, 'srcb': 71, 'signed': False, 'op': '+'} |
instructions[1544] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1545] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1546] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1547] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18390264, 'op': 'memory_read_request'} |
instructions[1547] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20041312, 'op': 'memory_read_request'} |
instructions[1548] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1549] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 18390264, 'op': 'memory_read_wait'} |
instructions[1550] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 18390264, 'element_size': 2, 'op': 'memory_read'} |
instructions[1549] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20041312, 'op': 'memory_read_wait'} |
instructions[1550] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20041312, 'element_size': 2, 'op': 'memory_read'} |
instructions[1551] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1552] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1553] = {6'd12, 8'd149, 8'd150, 32'd255};//{'dest': 149, 'src': 150, 'right': 255, 'signed': False, 'op': '&'} |
instructions[1553] = {6'd25, 8'd139, 8'd140, 32'd2048};//{'src': 140, 'right': 2048, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[1554] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1555] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1556] = {6'd26, 8'd148, 8'd149, 32'd6};//{'dest': 148, 'src': 149, 'right': 6, 'signed': False, 'op': '!='} |
instructions[1557] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1556] = {6'd13, 8'd0, 8'd139, 32'd1669};//{'src': 139, 'label': 1669, 'op': 'jmp_if_false'} |
instructions[1557] = {6'd0, 8'd139, 8'd0, 32'd19};//{'dest': 139, 'literal': 19, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1558] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1559] = {6'd13, 8'd0, 8'd148, 32'd1563};//{'src': 148, 'label': 1563, 'op': 'jmp_if_false'} |
instructions[1560] = {6'd0, 8'd70, 8'd0, 32'd0};//{'dest': 70, 'literal': 0, 'op': 'literal'} |
instructions[1561] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1562] = {6'd15, 8'd0, 8'd0, 32'd1563};//{'label': 1563, 'op': 'goto'} |
instructions[1563] = {6'd3, 8'd70, 8'd66, 32'd0};//{'dest': 70, 'src': 66, 'op': 'move'} |
instructions[1564] = {6'd6, 8'd0, 8'd69, 32'd0};//{'src': 69, 'op': 'jmp_to_reg'} |
instructions[1565] = {6'd0, 8'd105, 8'd0, 32'd17};//{'dest': 105, 'literal': 17, 'op': 'literal'} |
instructions[1566] = {6'd0, 8'd106, 8'd0, 32'd0};//{'dest': 106, 'literal': 0, 'op': 'literal'} |
instructions[1567] = {6'd0, 8'd107, 8'd0, 32'd0};//{'dest': 107, 'literal': 0, 'op': 'literal'} |
instructions[1568] = {6'd3, 8'd148, 8'd82, 32'd0};//{'dest': 148, 'src': 82, 'op': 'move'} |
instructions[1569] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1559] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1560] = {6'd3, 8'd72, 8'd139, 32'd0};//{'dest': 72, 'src': 139, 'op': 'move'} |
instructions[1561] = {6'd1, 8'd12, 8'd0, 32'd59};//{'dest': 12, 'label': 59, 'op': 'jmp_and_link'} |
instructions[1562] = {6'd3, 8'd140, 8'd68, 32'd0};//{'dest': 140, 'src': 68, 'op': 'move'} |
instructions[1563] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1564] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1565] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1566] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1567] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1568] = {6'd3, 8'd71, 8'd139, 32'd0};//{'dest': 71, 'src': 139, 'op': 'move'} |
instructions[1569] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1570] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1571] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1572] = {6'd14, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'right': 0, 'signed': False, 'op': '+'} |
instructions[1571] = {6'd3, 8'd140, 8'd71, 32'd0};//{'dest': 140, 'src': 71, 'op': 'move'} |
instructions[1572] = {6'd3, 8'd141, 8'd73, 32'd0};//{'dest': 141, 'src': 73, 'op': 'move'} |
instructions[1573] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1574] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1575] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1575] = {6'd36, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<=', 'type': 'int', 'size': 2} |
instructions[1576] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1577] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1578] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1579] = {6'd3, 8'd148, 8'd83, 32'd0};//{'dest': 148, 'src': 83, 'op': 'move'} |
instructions[1580] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1578] = {6'd13, 8'd0, 8'd139, 32'd1612};//{'src': 139, 'label': 1612, 'op': 'jmp_if_false'} |
instructions[1579] = {6'd3, 8'd140, 8'd71, 32'd0};//{'dest': 140, 'src': 71, 'op': 'move'} |
instructions[1580] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1581] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1582] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1583] = {6'd14, 8'd149, 8'd151, 32'd1};//{'dest': 149, 'src': 151, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1582] = {6'd11, 8'd141, 8'd140, 32'd65};//{'dest': 141, 'src': 140, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1583] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1584] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1585] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1586] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1587] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1588] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1589] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1590] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[1591] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1585] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20409376, 'op': 'memory_read_request'} |
instructions[1586] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1587] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20409376, 'op': 'memory_read_wait'} |
instructions[1588] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20409376, 'element_size': 2, 'op': 'memory_read'} |
instructions[1589] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1590] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1591] = {6'd3, 8'd70, 8'd139, 32'd0};//{'dest': 70, 'src': 139, 'op': 'move'} |
instructions[1592] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1593] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[1594] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1593] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1594] = {6'd3, 8'd140, 8'd70, 32'd0};//{'dest': 140, 'src': 70, 'op': 'move'} |
instructions[1595] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1596] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17769680, 'op': 'memory_read_request'} |
instructions[1597] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1598] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17769680, 'op': 'memory_read_wait'} |
instructions[1599] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17769680, 'element_size': 2, 'op': 'memory_read'} |
instructions[1600] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1596] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1597] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[1598] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[1599] = {6'd3, 8'd139, 8'd70, 32'd0};//{'dest': 139, 'src': 70, 'op': 'move'} |
instructions[1600] = {6'd3, 8'd140, 8'd72, 32'd0};//{'dest': 140, 'src': 72, 'op': 'move'} |
instructions[1601] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1602] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1603] = {6'd14, 8'd149, 8'd151, 32'd2};//{'dest': 149, 'src': 151, 'right': 2, 'signed': False, 'op': '+'} |
instructions[1603] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[1604] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1605] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1606] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1607] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1608] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1609] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1610] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[1611] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1612] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1613] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[1606] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1607] = {6'd3, 8'd139, 8'd72, 32'd0};//{'dest': 139, 'src': 72, 'op': 'move'} |
instructions[1608] = {6'd14, 8'd72, 8'd72, 32'd1};//{'src': 72, 'right': 1, 'dest': 72, 'signed': False, 'op': '+', 'size': 2} |
instructions[1609] = {6'd3, 8'd139, 8'd71, 32'd0};//{'dest': 139, 'src': 71, 'op': 'move'} |
instructions[1610] = {6'd14, 8'd71, 8'd71, 32'd1};//{'src': 71, 'right': 1, 'dest': 71, 'signed': False, 'op': '+', 'size': 2} |
instructions[1611] = {6'd15, 8'd0, 8'd0, 32'd1569};//{'label': 1569, 'op': 'goto'} |
instructions[1612] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1613] = {6'd0, 8'd140, 8'd0, 32'd17};//{'dest': 140, 'literal': 17, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1614] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1615] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1616] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17770256, 'op': 'memory_read_request'} |
instructions[1616] = {6'd27, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': True, 'op': '+'} |
instructions[1617] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1618] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17770256, 'op': 'memory_read_wait'} |
instructions[1619] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17770256, 'element_size': 2, 'op': 'memory_read'} |
instructions[1620] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1621] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1622] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1623] = {6'd14, 8'd149, 8'd151, 32'd3};//{'dest': 149, 'src': 151, 'right': 3, 'signed': False, 'op': '+'} |
instructions[1618] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1619] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1620] = {6'd1, 8'd15, 8'd0, 32'd100};//{'dest': 15, 'label': 100, 'op': 'jmp_and_link'} |
instructions[1621] = {6'd3, 8'd139, 8'd16, 32'd0};//{'dest': 139, 'src': 16, 'op': 'move'} |
instructions[1622] = {6'd0, 8'd140, 8'd0, 32'd18};//{'dest': 140, 'literal': 18, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1623] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1624] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1625] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1626] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1625] = {6'd11, 8'd141, 8'd140, 32'd10};//{'dest': 141, 'src': 140, 'srcb': 10, 'signed': False, 'op': '+'} |
instructions[1626] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1627] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1628] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1629] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1630] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[1628] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1629] = {6'd3, 8'd147, 8'd10, 32'd0};//{'dest': 147, 'src': 10, 'op': 'move'} |
instructions[1630] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1631] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1632] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1633] = {6'd11, 8'd150, 8'd149, 32'd86};//{'dest': 150, 'src': 149, 'srcb': 86, 'signed': False, 'op': '+'} |
instructions[1632] = {6'd3, 8'd55, 8'd147, 32'd0};//{'dest': 55, 'src': 147, 'op': 'move'} |
instructions[1633] = {6'd3, 8'd140, 8'd66, 32'd0};//{'dest': 140, 'src': 66, 'op': 'move'} |
instructions[1634] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1635] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1636] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17770832, 'op': 'memory_read_request'} |
instructions[1637] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1638] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17770832, 'op': 'memory_read_wait'} |
instructions[1639] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17770832, 'element_size': 2, 'op': 'memory_read'} |
instructions[1640] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1641] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1636] = {6'd3, 8'd56, 8'd140, 32'd0};//{'dest': 56, 'src': 140, 'op': 'move'} |
instructions[1637] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1638] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1639] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1640] = {6'd3, 8'd57, 8'd140, 32'd0};//{'dest': 57, 'src': 140, 'op': 'move'} |
instructions[1641] = {6'd0, 8'd141, 8'd0, 32'd13};//{'dest': 141, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1642] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1643] = {6'd14, 8'd149, 8'd151, 32'd4};//{'dest': 149, 'src': 151, 'right': 4, 'signed': False, 'op': '+'} |
instructions[1644] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1643] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1644] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1645] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1646] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1647] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1646] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1647] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20052448, 'op': 'memory_read_request'} |
instructions[1648] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1649] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1650] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[1649] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20052448, 'op': 'memory_read_wait'} |
instructions[1650] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20052448, 'element_size': 2, 'op': 'memory_read'} |
instructions[1651] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1652] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1653] = {6'd11, 8'd150, 8'd149, 32'd86};//{'dest': 150, 'src': 149, 'srcb': 86, 'signed': False, 'op': '+'} |
instructions[1654] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1653] = {6'd3, 8'd58, 8'd140, 32'd0};//{'dest': 58, 'src': 140, 'op': 'move'} |
instructions[1654] = {6'd0, 8'd141, 8'd0, 32'd14};//{'dest': 141, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1655] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1656] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17771408, 'op': 'memory_read_request'} |
instructions[1657] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1658] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17771408, 'op': 'memory_read_wait'} |
instructions[1659] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17771408, 'element_size': 2, 'op': 'memory_read'} |
instructions[1660] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1656] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1657] = {6'd11, 8'd145, 8'd141, 32'd65};//{'dest': 145, 'src': 141, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1658] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1659] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1660] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20052592, 'op': 'memory_read_request'} |
instructions[1661] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1662] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1663] = {6'd14, 8'd149, 8'd151, 32'd5};//{'dest': 149, 'src': 151, 'right': 5, 'signed': False, 'op': '+'} |
instructions[1662] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20052592, 'op': 'memory_read_wait'} |
instructions[1663] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20052592, 'element_size': 2, 'op': 'memory_read'} |
instructions[1664] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1665] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1666] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1667] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1668] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1669] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1670] = {6'd0, 8'd148, 8'd0, 32'd20480};//{'dest': 148, 'literal': 20480, 'op': 'literal'} |
instructions[1671] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1672] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1673] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1674] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1675] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1666] = {6'd3, 8'd59, 8'd140, 32'd0};//{'dest': 59, 'src': 140, 'op': 'move'} |
instructions[1667] = {6'd1, 8'd54, 8'd0, 32'd1140};//{'dest': 54, 'label': 1140, 'op': 'jmp_and_link'} |
instructions[1668] = {6'd15, 8'd0, 8'd0, 32'd1669};//{'label': 1669, 'op': 'goto'} |
instructions[1669] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1670] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1671] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1672] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1673] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1674] = {6'd15, 8'd0, 8'd0, 32'd1675};//{'label': 1675, 'op': 'goto'} |
instructions[1675] = {6'd0, 8'd145, 8'd0, 32'd11};//{'dest': 145, 'literal': 11, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1676] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1677] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1678] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1677] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1678] = {6'd11, 8'd146, 8'd145, 32'd65};//{'dest': 146, 'src': 145, 'srcb': 65, 'signed': False, 'op': '+'} |
instructions[1679] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1680] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1681] = {6'd3, 8'd148, 8'd87, 32'd0};//{'dest': 148, 'src': 87, 'op': 'move'} |
instructions[1682] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1683] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1684] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1685] = {6'd14, 8'd149, 8'd151, 32'd7};//{'dest': 149, 'src': 151, 'right': 7, 'signed': False, 'op': '+'} |
instructions[1680] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1681] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20053024, 'op': 'memory_read_request'} |
instructions[1682] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1683] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20053024, 'op': 'memory_read_wait'} |
instructions[1684] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20053024, 'element_size': 2, 'op': 'memory_read'} |
instructions[1685] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1686] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1687] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1688] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1687] = {6'd12, 8'd140, 8'd141, 32'd255};//{'src': 141, 'right': 255, 'dest': 140, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[1688] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1689] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1690] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1691] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1692] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1693] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1694] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1690] = {6'd26, 8'd139, 8'd140, 32'd6};//{'src': 140, 'right': 6, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[1691] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1692] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1693] = {6'd13, 8'd0, 8'd139, 32'd1700};//{'src': 139, 'label': 1700, 'op': 'jmp_if_false'} |
instructions[1694] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1695] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1696] = {6'd14, 8'd149, 8'd151, 32'd8};//{'dest': 149, 'src': 151, 'right': 8, 'signed': False, 'op': '+'} |
instructions[1697] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1698] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1699] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1700] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1696] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1697] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1698] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1699] = {6'd15, 8'd0, 8'd0, 32'd1700};//{'label': 1700, 'op': 'goto'} |
instructions[1700] = {6'd3, 8'd139, 8'd74, 32'd0};//{'dest': 139, 'src': 74, 'op': 'move'} |
instructions[1701] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1702] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1703] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1704] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1705] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1706] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1707] = {6'd14, 8'd149, 8'd151, 32'd9};//{'dest': 149, 'src': 151, 'right': 9, 'signed': False, 'op': '+'} |
instructions[1708] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1709] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1710] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1702] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1703] = {6'd3, 8'd64, 8'd139, 32'd0};//{'dest': 64, 'src': 139, 'op': 'move'} |
instructions[1704] = {6'd6, 8'd0, 8'd63, 32'd0};//{'src': 63, 'op': 'jmp_to_reg'} |
instructions[1705] = {6'd0, 8'd100, 8'd0, 32'd17};//{'dest': 100, 'literal': 17, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1706] = {6'd0, 8'd101, 8'd0, 32'd0};//{'dest': 101, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1707] = {6'd0, 8'd102, 8'd0, 32'd0};//{'dest': 102, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1708] = {6'd0, 8'd103, 8'd0, 32'd0};//{'dest': 103, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1709] = {6'd3, 8'd139, 8'd77, 32'd0};//{'dest': 139, 'src': 77, 'op': 'move'} |
instructions[1710] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1711] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1712] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1713] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1714] = {6'd3, 8'd148, 8'd88, 32'd0};//{'dest': 148, 'src': 88, 'op': 'move'} |
instructions[1713] = {6'd14, 8'd140, 8'd145, 32'd0};//{'src': 145, 'right': 0, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1714] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1715] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1716] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1717] = {6'd13, 8'd0, 8'd148, 32'd1745};//{'src': 148, 'label': 1745, 'op': 'jmp_if_false'} |
instructions[1718] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1719] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1720] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1721] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1716] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1717] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1718] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1719] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1720] = {6'd3, 8'd139, 8'd78, 32'd0};//{'dest': 139, 'src': 78, 'op': 'move'} |
instructions[1721] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1722] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1723] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1724] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1724] = {6'd14, 8'd140, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1725] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1726] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1727] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17778376, 'op': 'memory_read_request'} |
instructions[1727] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1728] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1729] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17778376, 'op': 'memory_read_wait'} |
instructions[1730] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17778376, 'element_size': 2, 'op': 'memory_read'} |
instructions[1731] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1729] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1730] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1731] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1732] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1733] = {6'd36, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '|'} |
instructions[1734] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1733] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1734] = {6'd11, 8'd146, 8'd145, 32'd79};//{'dest': 146, 'src': 145, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[1735] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1736] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1737] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1737] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20068688, 'op': 'memory_read_request'} |
instructions[1738] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1739] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1740] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1741] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1739] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20068688, 'op': 'memory_read_wait'} |
instructions[1740] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20068688, 'element_size': 2, 'op': 'memory_read'} |
instructions[1741] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1742] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1743] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1744] = {6'd15, 8'd0, 8'd0, 32'd1745};//{'label': 1745, 'op': 'goto'} |
instructions[1745] = {6'd3, 8'd148, 8'd89, 32'd0};//{'dest': 148, 'src': 89, 'op': 'move'} |
instructions[1743] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1744] = {6'd14, 8'd140, 8'd145, 32'd2};//{'src': 145, 'right': 2, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1745] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1746] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1747] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1748] = {6'd13, 8'd0, 8'd148, 32'd1776};//{'src': 148, 'label': 1776, 'op': 'jmp_if_false'} |
instructions[1749] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1750] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1751] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1752] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1747] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1748] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1749] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1750] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1751] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1752] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1753] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1754] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1755] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1754] = {6'd11, 8'd146, 8'd145, 32'd79};//{'dest': 146, 'src': 145, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[1755] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1756] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1757] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1758] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17779096, 'op': 'memory_read_request'} |
instructions[1759] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1760] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17779096, 'op': 'memory_read_wait'} |
instructions[1761] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17779096, 'element_size': 2, 'op': 'memory_read'} |
instructions[1757] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20069264, 'op': 'memory_read_request'} |
instructions[1758] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1759] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20069264, 'op': 'memory_read_wait'} |
instructions[1760] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20069264, 'element_size': 2, 'op': 'memory_read'} |
instructions[1761] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1762] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1763] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1764] = {6'd36, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '|'} |
instructions[1765] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1764] = {6'd14, 8'd140, 8'd145, 32'd3};//{'src': 145, 'right': 3, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1765] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1766] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1767] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1768] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1767] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1768] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1769] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1770] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1771] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1770] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1771] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1772] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1773] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1774] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1775] = {6'd15, 8'd0, 8'd0, 32'd1776};//{'label': 1776, 'op': 'goto'} |
instructions[1776] = {6'd3, 8'd148, 8'd90, 32'd0};//{'dest': 148, 'src': 90, 'op': 'move'} |
instructions[1777] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1774] = {6'd11, 8'd146, 8'd145, 32'd81};//{'dest': 146, 'src': 145, 'srcb': 81, 'signed': False, 'op': '+'} |
instructions[1775] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1776] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1777] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20069840, 'op': 'memory_read_request'} |
instructions[1778] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1779] = {6'd13, 8'd0, 8'd148, 32'd1807};//{'src': 148, 'label': 1807, 'op': 'jmp_if_false'} |
instructions[1780] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1781] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1779] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20069840, 'op': 'memory_read_wait'} |
instructions[1780] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20069840, 'element_size': 2, 'op': 'memory_read'} |
instructions[1781] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1782] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1783] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1784] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1783] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1784] = {6'd14, 8'd140, 8'd145, 32'd4};//{'src': 145, 'right': 4, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1785] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1786] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1787] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1786] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1787] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1788] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1789] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17779816, 'op': 'memory_read_request'} |
instructions[1790] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1791] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17779816, 'op': 'memory_read_wait'} |
instructions[1792] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17779816, 'element_size': 2, 'op': 'memory_read'} |
instructions[1789] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1790] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1791] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1792] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1793] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1794] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1795] = {6'd36, 8'd148, 8'd149, 32'd4};//{'dest': 148, 'src': 149, 'right': 4, 'signed': False, 'op': '|'} |
instructions[1796] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1797] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1794] = {6'd11, 8'd146, 8'd145, 32'd81};//{'dest': 146, 'src': 145, 'srcb': 81, 'signed': False, 'op': '+'} |
instructions[1795] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1796] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1797] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20074720, 'op': 'memory_read_request'} |
instructions[1798] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1799] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1800] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1801] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1802] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1799] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20074720, 'op': 'memory_read_wait'} |
instructions[1800] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20074720, 'element_size': 2, 'op': 'memory_read'} |
instructions[1801] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1802] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1803] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1804] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1805] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1806] = {6'd15, 8'd0, 8'd0, 32'd1807};//{'label': 1807, 'op': 'goto'} |
instructions[1807] = {6'd3, 8'd148, 8'd91, 32'd0};//{'dest': 148, 'src': 91, 'op': 'move'} |
instructions[1804] = {6'd14, 8'd140, 8'd145, 32'd5};//{'src': 145, 'right': 5, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1805] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1806] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1807] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1808] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1809] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1810] = {6'd13, 8'd0, 8'd148, 32'd1838};//{'src': 148, 'label': 1838, 'op': 'jmp_if_false'} |
instructions[1811] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1812] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1810] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1811] = {6'd0, 8'd139, 8'd0, 32'd20480};//{'dest': 139, 'literal': 20480, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1812] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1813] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1814] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1815] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1814] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1815] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1816] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1817] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1818] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1817] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1818] = {6'd27, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': True, 'op': '+'} |
instructions[1819] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1820] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17780536, 'op': 'memory_read_request'} |
instructions[1821] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1822] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17780536, 'op': 'memory_read_wait'} |
instructions[1823] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17780536, 'element_size': 2, 'op': 'memory_read'} |
instructions[1820] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1821] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1822] = {6'd3, 8'd139, 8'd82, 32'd0};//{'dest': 139, 'src': 82, 'op': 'move'} |
instructions[1823] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1824] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1825] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1826] = {6'd36, 8'd148, 8'd149, 32'd8};//{'dest': 148, 'src': 149, 'right': 8, 'signed': False, 'op': '|'} |
instructions[1827] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1826] = {6'd14, 8'd140, 8'd145, 32'd7};//{'src': 145, 'right': 7, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1827] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1828] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1829] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1830] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1829] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1830] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1831] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1832] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1833] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1834] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1832] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1833] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1834] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1835] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1836] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1837] = {6'd15, 8'd0, 8'd0, 32'd1838};//{'label': 1838, 'op': 'goto'} |
instructions[1838] = {6'd3, 8'd148, 8'd92, 32'd0};//{'dest': 148, 'src': 92, 'op': 'move'} |
instructions[1836] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1837] = {6'd14, 8'd140, 8'd145, 32'd8};//{'src': 145, 'right': 8, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1838] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1839] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1840] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1841] = {6'd13, 8'd0, 8'd148, 32'd1869};//{'src': 148, 'label': 1869, 'op': 'jmp_if_false'} |
instructions[1842] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1843] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1844] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1845] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1840] = {6'd27, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': True, 'op': '+'} |
instructions[1841] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1842] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1843] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1844] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[1845] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1846] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1847] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1848] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1848] = {6'd14, 8'd140, 8'd145, 32'd9};//{'src': 145, 'right': 9, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1849] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1850] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1851] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17789512, 'op': 'memory_read_request'} |
instructions[1851] = {6'd27, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': True, 'op': '+'} |
instructions[1852] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1853] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17789512, 'op': 'memory_read_wait'} |
instructions[1854] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17789512, 'element_size': 2, 'op': 'memory_read'} |
instructions[1855] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1853] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1854] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1855] = {6'd3, 8'd139, 8'd83, 32'd0};//{'dest': 139, 'src': 83, 'op': 'move'} |
instructions[1856] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1857] = {6'd36, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '|'} |
instructions[1858] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1859] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1857] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1858] = {6'd13, 8'd0, 8'd139, 32'd1886};//{'src': 139, 'label': 1886, 'op': 'jmp_if_false'} |
instructions[1859] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[1860] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1861] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1862] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1861] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1862] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1863] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1864] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1865] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1864] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1865] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1866] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1867] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1868] = {6'd15, 8'd0, 8'd0, 32'd1869};//{'label': 1869, 'op': 'goto'} |
instructions[1869] = {6'd3, 8'd148, 8'd93, 32'd0};//{'dest': 148, 'src': 93, 'op': 'move'} |
instructions[1870] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1871] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1872] = {6'd13, 8'd0, 8'd148, 32'd1900};//{'src': 148, 'label': 1900, 'op': 'jmp_if_false'} |
instructions[1873] = {6'd3, 8'd152, 8'd105, 32'd0};//{'dest': 152, 'src': 105, 'op': 'move'} |
instructions[1874] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1875] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1876] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1867] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1868] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20077456, 'op': 'memory_read_request'} |
instructions[1869] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1870] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20077456, 'op': 'memory_read_wait'} |
instructions[1871] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20077456, 'element_size': 2, 'op': 'memory_read'} |
instructions[1872] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1873] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1874] = {6'd37, 8'd139, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[1875] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1876] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1877] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1878] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1879] = {6'd11, 8'd151, 8'd150, 32'd103};//{'dest': 151, 'src': 150, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1878] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1879] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1880] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1881] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1882] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17790232, 'op': 'memory_read_request'} |
instructions[1881] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1882] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1883] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1884] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17790232, 'op': 'memory_read_wait'} |
instructions[1885] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17790232, 'element_size': 2, 'op': 'memory_read'} |
instructions[1886] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1884] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1885] = {6'd15, 8'd0, 8'd0, 32'd1886};//{'label': 1886, 'op': 'goto'} |
instructions[1886] = {6'd3, 8'd139, 8'd84, 32'd0};//{'dest': 139, 'src': 84, 'op': 'move'} |
instructions[1887] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1888] = {6'd36, 8'd148, 8'd149, 32'd32};//{'dest': 148, 'src': 149, 'right': 32, 'signed': False, 'op': '|'} |
instructions[1889] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1890] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1888] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1889] = {6'd13, 8'd0, 8'd139, 32'd1917};//{'src': 139, 'label': 1917, 'op': 'jmp_if_false'} |
instructions[1890] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[1891] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1892] = {6'd14, 8'd149, 8'd151, 32'd6};//{'dest': 149, 'src': 151, 'right': 6, 'signed': False, 'op': '+'} |
instructions[1893] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1892] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1893] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1894] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1895] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1896] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1895] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1896] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1897] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1898] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1899] = {6'd15, 8'd0, 8'd0, 32'd1900};//{'label': 1900, 'op': 'goto'} |
instructions[1900] = {6'd1, 8'd18, 8'd0, 32'd56};//{'dest': 18, 'label': 56, 'op': 'jmp_and_link'} |
instructions[1901] = {6'd3, 8'd20, 8'd13, 32'd0};//{'dest': 20, 'src': 13, 'op': 'move'} |
instructions[1902] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1903] = {6'd3, 8'd20, 8'd14, 32'd0};//{'dest': 20, 'src': 14, 'op': 'move'} |
instructions[1904] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1905] = {6'd3, 8'd20, 8'd80, 32'd0};//{'dest': 20, 'src': 80, 'op': 'move'} |
instructions[1906] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1907] = {6'd3, 8'd20, 8'd81, 32'd0};//{'dest': 20, 'src': 81, 'op': 'move'} |
instructions[1908] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1909] = {6'd0, 8'd20, 8'd0, 32'd6};//{'dest': 20, 'literal': 6, 'op': 'literal'} |
instructions[1910] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1911] = {6'd3, 8'd149, 8'd104, 32'd0};//{'dest': 149, 'src': 104, 'op': 'move'} |
instructions[1912] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1898] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1899] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20078176, 'op': 'memory_read_request'} |
instructions[1900] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1901] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20078176, 'op': 'memory_read_wait'} |
instructions[1902] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20078176, 'element_size': 2, 'op': 'memory_read'} |
instructions[1903] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1904] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1905] = {6'd37, 8'd139, 8'd145, 32'd2};//{'src': 145, 'right': 2, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[1906] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1907] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1908] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1909] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1910] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1911] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1912] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1913] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1914] = {6'd14, 8'd20, 8'd149, 32'd20};//{'dest': 20, 'src': 149, 'right': 20, 'signed': False, 'op': '+'} |
instructions[1915] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1916] = {6'd3, 8'd151, 8'd104, 32'd0};//{'dest': 151, 'src': 104, 'op': 'move'} |
instructions[1917] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1914] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1915] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1916] = {6'd15, 8'd0, 8'd0, 32'd1917};//{'label': 1917, 'op': 'goto'} |
instructions[1917] = {6'd3, 8'd139, 8'd85, 32'd0};//{'dest': 139, 'src': 85, 'op': 'move'} |
instructions[1918] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1919] = {6'd14, 8'd150, 8'd151, 32'd20};//{'dest': 150, 'src': 151, 'right': 20, 'signed': False, 'op': '+'} |
instructions[1920] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1921] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1922] = {6'd14, 8'd149, 8'd150, 32'd1};//{'dest': 149, 'src': 150, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1919] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1920] = {6'd13, 8'd0, 8'd139, 32'd1948};//{'src': 139, 'label': 1948, 'op': 'jmp_if_false'} |
instructions[1921] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[1922] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1923] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1924] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1925] = {6'd31, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '>>'} |
instructions[1924] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1925] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1926] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1927] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1928] = {6'd3, 8'd106, 8'd148, 32'd0};//{'dest': 106, 'src': 148, 'op': 'move'} |
instructions[1929] = {6'd3, 8'd148, 8'd105, 32'd0};//{'dest': 148, 'src': 105, 'op': 'move'} |
instructions[1930] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1927] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1928] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1929] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1930] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20087152, 'op': 'memory_read_request'} |
instructions[1931] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1932] = {6'd3, 8'd107, 8'd148, 32'd0};//{'dest': 107, 'src': 148, 'op': 'move'} |
instructions[1933] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[1932] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20087152, 'op': 'memory_read_wait'} |
instructions[1933] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20087152, 'element_size': 2, 'op': 'memory_read'} |
instructions[1934] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1935] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1936] = {6'd3, 8'd76, 8'd148, 32'd0};//{'dest': 76, 'src': 148, 'op': 'move'} |
instructions[1937] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1936] = {6'd37, 8'd139, 8'd145, 32'd4};//{'src': 145, 'right': 4, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[1937] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1938] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1939] = {6'd3, 8'd149, 8'd76, 32'd0};//{'dest': 149, 'src': 76, 'op': 'move'} |
instructions[1940] = {6'd3, 8'd150, 8'd106, 32'd0};//{'dest': 150, 'src': 106, 'op': 'move'} |
instructions[1939] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1940] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1941] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1942] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1943] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[1943] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1944] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1945] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1946] = {6'd13, 8'd0, 8'd148, 32'd1963};//{'src': 148, 'label': 1963, 'op': 'jmp_if_false'} |
instructions[1947] = {6'd3, 8'd149, 8'd107, 32'd0};//{'dest': 149, 'src': 107, 'op': 'move'} |
instructions[1948] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1946] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1947] = {6'd15, 8'd0, 8'd0, 32'd1948};//{'label': 1948, 'op': 'goto'} |
instructions[1948] = {6'd3, 8'd139, 8'd86, 32'd0};//{'dest': 139, 'src': 86, 'op': 'move'} |
instructions[1949] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1950] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1951] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1952] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1953] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17802664, 'op': 'memory_read_request'} |
instructions[1950] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1951] = {6'd13, 8'd0, 8'd139, 32'd1979};//{'src': 139, 'label': 1979, 'op': 'jmp_if_false'} |
instructions[1952] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[1953] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1954] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1955] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17802664, 'op': 'memory_read_wait'} |
instructions[1956] = {6'd19, 8'd20, 8'd150, 32'd0};//{'dest': 20, 'src': 150, 'sequence': 17802664, 'element_size': 2, 'op': 'memory_read'} |
instructions[1957] = {6'd1, 8'd19, 8'd0, 32'd61};//{'dest': 19, 'label': 61, 'op': 'jmp_and_link'} |
instructions[1958] = {6'd3, 8'd148, 8'd107, 32'd0};//{'dest': 148, 'src': 107, 'op': 'move'} |
instructions[1959] = {6'd14, 8'd107, 8'd107, 32'd1};//{'dest': 107, 'src': 107, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1960] = {6'd3, 8'd148, 8'd76, 32'd0};//{'dest': 148, 'src': 76, 'op': 'move'} |
instructions[1961] = {6'd14, 8'd76, 8'd76, 32'd1};//{'dest': 76, 'src': 76, 'right': 1, 'signed': False, 'op': '+'} |
instructions[1962] = {6'd15, 8'd0, 8'd0, 32'd1937};//{'label': 1937, 'op': 'goto'} |
instructions[1963] = {6'd1, 8'd21, 8'd0, 32'd97};//{'dest': 21, 'label': 97, 'op': 'jmp_and_link'} |
instructions[1964] = {6'd3, 8'd148, 8'd22, 32'd0};//{'dest': 148, 'src': 22, 'op': 'move'} |
instructions[1965] = {6'd3, 8'd151, 8'd105, 32'd0};//{'dest': 151, 'src': 105, 'op': 'move'} |
instructions[1955] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1956] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1957] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1958] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1959] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1960] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1961] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20087872, 'op': 'memory_read_request'} |
instructions[1962] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1963] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20087872, 'op': 'memory_read_wait'} |
instructions[1964] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20087872, 'element_size': 2, 'op': 'memory_read'} |
instructions[1965] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1966] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1967] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1968] = {6'd14, 8'd149, 8'd151, 32'd8};//{'dest': 149, 'src': 151, 'right': 8, 'signed': False, 'op': '+'} |
instructions[1967] = {6'd37, 8'd139, 8'd145, 32'd8};//{'src': 145, 'right': 8, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[1968] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[1969] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1970] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1971] = {6'd11, 8'd150, 8'd149, 32'd103};//{'dest': 150, 'src': 149, 'srcb': 103, 'signed': False, 'op': '+'} |
instructions[1971] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1972] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1973] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1974] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[1975] = {6'd3, 8'd61, 8'd103, 32'd0};//{'dest': 61, 'src': 103, 'op': 'move'} |
instructions[1976] = {6'd3, 8'd149, 8'd104, 32'd0};//{'dest': 149, 'src': 104, 'op': 'move'} |
instructions[1977] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1978] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1979] = {6'd14, 8'd62, 8'd149, 32'd40};//{'dest': 62, 'src': 149, 'right': 40, 'signed': False, 'op': '+'} |
instructions[1980] = {6'd0, 8'd63, 8'd0, 32'd6};//{'dest': 63, 'literal': 6, 'op': 'literal'} |
instructions[1981] = {6'd3, 8'd64, 8'd80, 32'd0};//{'dest': 64, 'src': 80, 'op': 'move'} |
instructions[1982] = {6'd3, 8'd65, 8'd81, 32'd0};//{'dest': 65, 'src': 81, 'op': 'move'} |
instructions[1983] = {6'd1, 8'd60, 8'd0, 32'd1068};//{'dest': 60, 'label': 1068, 'op': 'jmp_and_link'} |
instructions[1984] = {6'd6, 8'd0, 8'd102, 32'd0};//{'src': 102, 'op': 'jmp_to_reg'} |
instructions[1985] = {6'd0, 8'd113, 8'd0, 32'd0};//{'dest': 113, 'literal': 0, 'op': 'literal'} |
instructions[1986] = {6'd0, 8'd114, 8'd0, 32'd0};//{'dest': 114, 'literal': 0, 'op': 'literal'} |
instructions[1987] = {6'd0, 8'd115, 8'd0, 32'd0};//{'dest': 115, 'literal': 0, 'op': 'literal'} |
instructions[1988] = {6'd0, 8'd116, 8'd0, 32'd0};//{'dest': 116, 'literal': 0, 'op': 'literal'} |
instructions[1989] = {6'd0, 8'd117, 8'd0, 32'd0};//{'dest': 117, 'literal': 0, 'op': 'literal'} |
instructions[1990] = {6'd0, 8'd118, 8'd0, 32'd0};//{'dest': 118, 'literal': 0, 'op': 'literal'} |
instructions[1991] = {6'd3, 8'd71, 8'd112, 32'd0};//{'dest': 71, 'src': 112, 'op': 'move'} |
instructions[1992] = {6'd1, 8'd69, 8'd0, 32'd1252};//{'dest': 69, 'label': 1252, 'op': 'jmp_and_link'} |
instructions[1993] = {6'd3, 8'd148, 8'd70, 32'd0};//{'dest': 148, 'src': 70, 'op': 'move'} |
instructions[1994] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1995] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1996] = {6'd3, 8'd113, 8'd148, 32'd0};//{'dest': 113, 'src': 148, 'op': 'move'} |
instructions[1997] = {6'd0, 8'd152, 8'd0, 32'd7};//{'dest': 152, 'literal': 7, 'op': 'literal'} |
instructions[1998] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1999] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2000] = {6'd11, 8'd153, 8'd152, 32'd112};//{'dest': 153, 'src': 152, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[1974] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1975] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1976] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1977] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[1978] = {6'd15, 8'd0, 8'd0, 32'd1979};//{'label': 1979, 'op': 'goto'} |
instructions[1979] = {6'd3, 8'd139, 8'd87, 32'd0};//{'dest': 139, 'src': 87, 'op': 'move'} |
instructions[1980] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1981] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1982] = {6'd13, 8'd0, 8'd139, 32'd2010};//{'src': 139, 'label': 2010, 'op': 'jmp_if_false'} |
instructions[1983] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[1984] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1985] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1986] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[1987] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1988] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1989] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[1990] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1991] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1992] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20088592, 'op': 'memory_read_request'} |
instructions[1993] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1994] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20088592, 'op': 'memory_read_wait'} |
instructions[1995] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20088592, 'element_size': 2, 'op': 'memory_read'} |
instructions[1996] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1997] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[1998] = {6'd37, 8'd139, 8'd145, 32'd16};//{'src': 145, 'right': 16, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[1999] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[2000] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2001] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2002] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2003] = {6'd17, 8'd0, 8'd153, 32'd0};//{'element_size': 2, 'src': 153, 'sequence': 17782832, 'op': 'memory_read_request'} |
instructions[2002] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2003] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2004] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2005] = {6'd18, 8'd0, 8'd153, 32'd0};//{'element_size': 2, 'src': 153, 'sequence': 17782832, 'op': 'memory_read_wait'} |
instructions[2006] = {6'd19, 8'd151, 8'd153, 32'd0};//{'dest': 151, 'src': 153, 'sequence': 17782832, 'element_size': 2, 'op': 'memory_read'} |
instructions[2005] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[2006] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2007] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2008] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2009] = {6'd31, 8'd150, 8'd151, 32'd8};//{'dest': 150, 'src': 151, 'right': 8, 'signed': False, 'op': '>>'} |
instructions[2010] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2008] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2009] = {6'd15, 8'd0, 8'd0, 32'd2010};//{'label': 2010, 'op': 'goto'} |
instructions[2010] = {6'd3, 8'd139, 8'd88, 32'd0};//{'dest': 139, 'src': 88, 'op': 'move'} |
instructions[2011] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2012] = {6'd12, 8'd149, 8'd150, 32'd15};//{'dest': 149, 'src': 150, 'right': 15, 'signed': False, 'op': '&'} |
instructions[2013] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2014] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2015] = {6'd32, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '<<'} |
instructions[2012] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2013] = {6'd13, 8'd0, 8'd139, 32'd2041};//{'src': 139, 'label': 2041, 'op': 'jmp_if_false'} |
instructions[2014] = {6'd3, 8'd149, 8'd100, 32'd0};//{'dest': 149, 'src': 100, 'op': 'move'} |
instructions[2015] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2016] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2017] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2018] = {6'd3, 8'd114, 8'd148, 32'd0};//{'dest': 114, 'src': 148, 'op': 'move'} |
instructions[2017] = {6'd14, 8'd146, 8'd149, 32'd6};//{'src': 149, 'right': 6, 'dest': 146, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2018] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2019] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2020] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2021] = {6'd3, 8'd149, 8'd114, 32'd0};//{'dest': 149, 'src': 114, 'op': 'move'} |
instructions[2020] = {6'd11, 8'd148, 8'd146, 32'd98};//{'dest': 148, 'src': 146, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[2021] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2022] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2023] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2024] = {6'd14, 8'd148, 8'd149, 32'd7};//{'dest': 148, 'src': 149, 'right': 7, 'signed': False, 'op': '+'} |
instructions[2025] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2026] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2027] = {6'd3, 8'd115, 8'd148, 32'd0};//{'dest': 115, 'src': 148, 'op': 'move'} |
instructions[2028] = {6'd0, 8'd149, 8'd0, 32'd8};//{'dest': 149, 'literal': 8, 'op': 'literal'} |
instructions[2029] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2030] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2031] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2023] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20089312, 'op': 'memory_read_request'} |
instructions[2024] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2025] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20089312, 'op': 'memory_read_wait'} |
instructions[2026] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20089312, 'element_size': 2, 'op': 'memory_read'} |
instructions[2027] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2028] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2029] = {6'd37, 8'd139, 8'd145, 32'd32};//{'src': 145, 'right': 32, 'dest': 139, 'signed': False, 'op': '|', 'type': 'int', 'size': 2} |
instructions[2030] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[2031] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2032] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2033] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2034] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17774856, 'op': 'memory_read_request'} |
instructions[2033] = {6'd14, 8'd140, 8'd145, 32'd6};//{'src': 145, 'right': 6, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2034] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2035] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2036] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17774856, 'op': 'memory_read_wait'} |
instructions[2037] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17774856, 'element_size': 2, 'op': 'memory_read'} |
instructions[2036] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[2037] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2038] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2039] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2040] = {6'd3, 8'd116, 8'd148, 32'd0};//{'dest': 116, 'src': 148, 'op': 'move'} |
instructions[2041] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2042] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2043] = {6'd3, 8'd149, 8'd116, 32'd0};//{'dest': 149, 'src': 116, 'op': 'move'} |
instructions[2044] = {6'd3, 8'd151, 8'd114, 32'd0};//{'dest': 151, 'src': 114, 'op': 'move'} |
instructions[2045] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2046] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2047] = {6'd32, 8'd150, 8'd151, 32'd1};//{'dest': 150, 'src': 151, 'right': 1, 'signed': False, 'op': '<<'} |
instructions[2039] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2040] = {6'd15, 8'd0, 8'd0, 32'd2041};//{'label': 2041, 'op': 'goto'} |
instructions[2041] = {6'd1, 8'd12, 8'd0, 32'd59};//{'dest': 12, 'label': 59, 'op': 'jmp_and_link'} |
instructions[2042] = {6'd0, 8'd140, 8'd0, 32'd49320};//{'dest': 140, 'literal': 49320, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2043] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2044] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2045] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2046] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2047] = {6'd0, 8'd140, 8'd0, 32'd257};//{'dest': 140, 'literal': 257, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2048] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2049] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2050] = {6'd33, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '-'} |
instructions[2051] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2052] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2053] = {6'd3, 8'd117, 8'd148, 32'd0};//{'dest': 117, 'src': 148, 'op': 'move'} |
instructions[2054] = {6'd3, 8'd153, 8'd115, 32'd0};//{'dest': 153, 'src': 115, 'op': 'move'} |
instructions[2055] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2056] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2057] = {6'd14, 8'd151, 8'd153, 32'd6};//{'dest': 151, 'src': 153, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2050] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2051] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2052] = {6'd3, 8'd140, 8'd75, 32'd0};//{'dest': 140, 'src': 75, 'op': 'move'} |
instructions[2053] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2054] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2055] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2056] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2057] = {6'd3, 8'd140, 8'd76, 32'd0};//{'dest': 140, 'src': 76, 'op': 'move'} |
instructions[2058] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2059] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2060] = {6'd11, 8'd152, 8'd151, 32'd112};//{'dest': 152, 'src': 151, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2061] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2062] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2063] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17810064, 'op': 'memory_read_request'} |
instructions[2060] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2061] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2062] = {6'd0, 8'd140, 8'd0, 32'd6};//{'dest': 140, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2063] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2064] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2065] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17810064, 'op': 'memory_read_wait'} |
instructions[2066] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 17810064, 'element_size': 2, 'op': 'memory_read'} |
instructions[2067] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2065] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2066] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2067] = {6'd3, 8'd141, 8'd99, 32'd0};//{'dest': 141, 'src': 99, 'op': 'move'} |
instructions[2068] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2069] = {6'd12, 8'd149, 8'd150, 32'd61440};//{'dest': 149, 'src': 150, 'right': 61440, 'signed': False, 'op': '&'} |
instructions[2070] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2069] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2070] = {6'd14, 8'd140, 8'd141, 32'd20};//{'src': 141, 'right': 20, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2071] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2072] = {6'd31, 8'd148, 8'd149, 32'd10};//{'dest': 148, 'src': 149, 'right': 10, 'signed': False, 'op': '>>'} |
instructions[2073] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2074] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2075] = {6'd3, 8'd118, 8'd148, 32'd0};//{'dest': 118, 'src': 148, 'op': 'move'} |
instructions[2076] = {6'd3, 8'd149, 8'd117, 32'd0};//{'dest': 149, 'src': 117, 'op': 'move'} |
instructions[2072] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2073] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2074] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2075] = {6'd3, 8'd145, 8'd99, 32'd0};//{'dest': 145, 'src': 99, 'op': 'move'} |
instructions[2076] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2077] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2078] = {6'd3, 8'd150, 8'd118, 32'd0};//{'dest': 150, 'src': 118, 'op': 'move'} |
instructions[2078] = {6'd14, 8'd141, 8'd145, 32'd20};//{'src': 145, 'right': 20, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2079] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2080] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2081] = {6'd33, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '-'} |
instructions[2081] = {6'd14, 8'd140, 8'd141, 32'd1};//{'src': 141, 'right': 1, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2082] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2083] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2084] = {6'd3, 8'd108, 8'd148, 32'd0};//{'dest': 108, 'src': 148, 'op': 'move'} |
instructions[2085] = {6'd3, 8'd149, 8'd115, 32'd0};//{'dest': 149, 'src': 115, 'op': 'move'} |
instructions[2086] = {6'd3, 8'd151, 8'd118, 32'd0};//{'dest': 151, 'src': 118, 'op': 'move'} |
instructions[2087] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2088] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2089] = {6'd31, 8'd150, 8'd151, 32'd1};//{'dest': 150, 'src': 151, 'right': 1, 'signed': False, 'op': '>>'} |
instructions[2084] = {6'd32, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[2085] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2086] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2087] = {6'd3, 8'd101, 8'd139, 32'd0};//{'dest': 101, 'src': 139, 'op': 'move'} |
instructions[2088] = {6'd3, 8'd139, 8'd100, 32'd0};//{'dest': 139, 'src': 100, 'op': 'move'} |
instructions[2089] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2090] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2091] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2092] = {6'd11, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '+'} |
instructions[2091] = {6'd3, 8'd102, 8'd139, 32'd0};//{'dest': 102, 'src': 139, 'op': 'move'} |
instructions[2092] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2093] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2094] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2095] = {6'd3, 8'd109, 8'd148, 32'd0};//{'dest': 109, 'src': 148, 'op': 'move'} |
instructions[2096] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2095] = {6'd3, 8'd103, 8'd139, 32'd0};//{'dest': 103, 'src': 139, 'op': 'move'} |
instructions[2096] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2097] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2098] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2099] = {6'd14, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'right': 0, 'signed': False, 'op': '+'} |
instructions[2098] = {6'd3, 8'd140, 8'd103, 32'd0};//{'dest': 140, 'src': 103, 'op': 'move'} |
instructions[2099] = {6'd3, 8'd141, 8'd101, 32'd0};//{'dest': 141, 'src': 101, 'op': 'move'} |
instructions[2100] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2101] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2102] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2102] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[2103] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2104] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2105] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17803168, 'op': 'memory_read_request'} |
instructions[2106] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2107] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17803168, 'op': 'memory_read_wait'} |
instructions[2108] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17803168, 'element_size': 2, 'op': 'memory_read'} |
instructions[2109] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2105] = {6'd13, 8'd0, 8'd139, 32'd2125};//{'src': 139, 'label': 2125, 'op': 'jmp_if_false'} |
instructions[2106] = {6'd3, 8'd141, 8'd102, 32'd0};//{'dest': 141, 'src': 102, 'op': 'move'} |
instructions[2107] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2108] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2109] = {6'd11, 8'd145, 8'd141, 32'd98};//{'dest': 145, 'src': 141, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[2110] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2111] = {6'd3, 8'd94, 8'd148, 32'd0};//{'dest': 94, 'src': 148, 'op': 'move'} |
instructions[2112] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2111] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2112] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20106056, 'op': 'memory_read_request'} |
instructions[2113] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2114] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2115] = {6'd14, 8'd149, 8'd151, 32'd1};//{'dest': 149, 'src': 151, 'right': 1, 'signed': False, 'op': '+'} |
instructions[2114] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20106056, 'op': 'memory_read_wait'} |
instructions[2115] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20106056, 'element_size': 2, 'op': 'memory_read'} |
instructions[2116] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2117] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2118] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2119] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2120] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2121] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17802592, 'op': 'memory_read_request'} |
instructions[2122] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2123] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17802592, 'op': 'memory_read_wait'} |
instructions[2124] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17802592, 'element_size': 2, 'op': 'memory_read'} |
instructions[2125] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2126] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2127] = {6'd3, 8'd95, 8'd148, 32'd0};//{'dest': 95, 'src': 148, 'op': 'move'} |
instructions[2128] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2118] = {6'd3, 8'd14, 8'd140, 32'd0};//{'dest': 14, 'src': 140, 'op': 'move'} |
instructions[2119] = {6'd1, 8'd13, 8'd0, 32'd64};//{'dest': 13, 'label': 64, 'op': 'jmp_and_link'} |
instructions[2120] = {6'd3, 8'd139, 8'd102, 32'd0};//{'dest': 139, 'src': 102, 'op': 'move'} |
instructions[2121] = {6'd14, 8'd102, 8'd102, 32'd1};//{'src': 102, 'right': 1, 'dest': 102, 'signed': False, 'op': '+', 'size': 2} |
instructions[2122] = {6'd3, 8'd139, 8'd103, 32'd0};//{'dest': 139, 'src': 103, 'op': 'move'} |
instructions[2123] = {6'd14, 8'd103, 8'd103, 32'd1};//{'src': 103, 'right': 1, 'dest': 103, 'signed': False, 'op': '+', 'size': 2} |
instructions[2124] = {6'd15, 8'd0, 8'd0, 32'd2096};//{'label': 2096, 'op': 'goto'} |
instructions[2125] = {6'd1, 8'd15, 8'd0, 32'd100};//{'dest': 15, 'label': 100, 'op': 'jmp_and_link'} |
instructions[2126] = {6'd3, 8'd139, 8'd16, 32'd0};//{'dest': 139, 'src': 16, 'op': 'move'} |
instructions[2127] = {6'd3, 8'd145, 8'd100, 32'd0};//{'dest': 145, 'src': 100, 'op': 'move'} |
instructions[2128] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2129] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2130] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2131] = {6'd14, 8'd149, 8'd151, 32'd2};//{'dest': 149, 'src': 151, 'right': 2, 'signed': False, 'op': '+'} |
instructions[2130] = {6'd14, 8'd140, 8'd145, 32'd8};//{'src': 145, 'right': 8, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2131] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2132] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2133] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2134] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2133] = {6'd11, 8'd141, 8'd140, 32'd98};//{'dest': 141, 'src': 140, 'srcb': 98, 'signed': False, 'op': '+'} |
instructions[2134] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2135] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2136] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2137] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17803600, 'op': 'memory_read_request'} |
instructions[2136] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2137] = {6'd3, 8'd142, 8'd98, 32'd0};//{'dest': 142, 'src': 98, 'op': 'move'} |
instructions[2138] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2139] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17803600, 'op': 'memory_read_wait'} |
instructions[2140] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17803600, 'element_size': 2, 'op': 'memory_read'} |
instructions[2141] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2139] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2140] = {6'd3, 8'd55, 8'd142, 32'd0};//{'dest': 55, 'src': 142, 'op': 'move'} |
instructions[2141] = {6'd3, 8'd141, 8'd99, 32'd0};//{'dest': 141, 'src': 99, 'op': 'move'} |
instructions[2142] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2143] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2144] = {6'd11, 8'd150, 8'd149, 32'd96};//{'dest': 150, 'src': 149, 'srcb': 96, 'signed': False, 'op': '+'} |
instructions[2144] = {6'd14, 8'd140, 8'd141, 32'd40};//{'src': 141, 'right': 40, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2145] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2146] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2147] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2148] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2147] = {6'd3, 8'd56, 8'd140, 32'd0};//{'dest': 56, 'src': 140, 'op': 'move'} |
instructions[2148] = {6'd0, 8'd140, 8'd0, 32'd6};//{'dest': 140, 'literal': 6, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2149] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2150] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2151] = {6'd14, 8'd149, 8'd151, 32'd3};//{'dest': 149, 'src': 151, 'right': 3, 'signed': False, 'op': '+'} |
instructions[2152] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2151] = {6'd3, 8'd57, 8'd140, 32'd0};//{'dest': 57, 'src': 140, 'op': 'move'} |
instructions[2152] = {6'd3, 8'd140, 8'd75, 32'd0};//{'dest': 140, 'src': 75, 'op': 'move'} |
instructions[2153] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2154] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2155] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2156] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2157] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17804248, 'op': 'memory_read_request'} |
instructions[2154] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2155] = {6'd3, 8'd58, 8'd140, 32'd0};//{'dest': 58, 'src': 140, 'op': 'move'} |
instructions[2156] = {6'd3, 8'd140, 8'd76, 32'd0};//{'dest': 140, 'src': 76, 'op': 'move'} |
instructions[2157] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2158] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2159] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17804248, 'op': 'memory_read_wait'} |
instructions[2160] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17804248, 'element_size': 2, 'op': 'memory_read'} |
instructions[2161] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2162] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2163] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2164] = {6'd11, 8'd150, 8'd149, 32'd96};//{'dest': 150, 'src': 149, 'srcb': 96, 'signed': False, 'op': '+'} |
instructions[2165] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2166] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2167] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2168] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2159] = {6'd3, 8'd59, 8'd140, 32'd0};//{'dest': 59, 'src': 140, 'op': 'move'} |
instructions[2160] = {6'd1, 8'd54, 8'd0, 32'd1140};//{'dest': 54, 'label': 1140, 'op': 'jmp_and_link'} |
instructions[2161] = {6'd6, 8'd0, 8'd97, 32'd0};//{'src': 97, 'op': 'jmp_to_reg'} |
instructions[2162] = {6'd0, 8'd109, 8'd0, 32'd0};//{'dest': 109, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2163] = {6'd0, 8'd110, 8'd0, 32'd0};//{'dest': 110, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2164] = {6'd0, 8'd111, 8'd0, 32'd0};//{'dest': 111, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2165] = {6'd0, 8'd112, 8'd0, 32'd0};//{'dest': 112, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2166] = {6'd0, 8'd113, 8'd0, 32'd0};//{'dest': 113, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2167] = {6'd0, 8'd114, 8'd0, 32'd0};//{'dest': 114, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2168] = {6'd3, 8'd142, 8'd108, 32'd0};//{'dest': 142, 'src': 108, 'op': 'move'} |
instructions[2169] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2170] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2171] = {6'd14, 8'd149, 8'd151, 32'd4};//{'dest': 149, 'src': 151, 'right': 4, 'signed': False, 'op': '+'} |
instructions[2172] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2173] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2174] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2171] = {6'd3, 8'd65, 8'd142, 32'd0};//{'dest': 65, 'src': 142, 'op': 'move'} |
instructions[2172] = {6'd1, 8'd63, 8'd0, 32'd1351};//{'dest': 63, 'label': 1351, 'op': 'jmp_and_link'} |
instructions[2173] = {6'd3, 8'd139, 8'd64, 32'd0};//{'dest': 139, 'src': 64, 'op': 'move'} |
instructions[2174] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2175] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2176] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2177] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17804392, 'op': 'memory_read_request'} |
instructions[2176] = {6'd3, 8'd109, 8'd139, 32'd0};//{'dest': 109, 'src': 139, 'op': 'move'} |
instructions[2177] = {6'd0, 8'd146, 8'd0, 32'd7};//{'dest': 146, 'literal': 7, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2178] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2179] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17804392, 'op': 'memory_read_wait'} |
instructions[2180] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17804392, 'element_size': 2, 'op': 'memory_read'} |
instructions[2181] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2179] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2180] = {6'd11, 8'd148, 8'd146, 32'd108};//{'dest': 148, 'src': 146, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2181] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2182] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2183] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2184] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2185] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2186] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2187] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2188] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2189] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2183] = {6'd17, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20058768, 'op': 'memory_read_request'} |
instructions[2184] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2185] = {6'd18, 8'd0, 8'd148, 32'd0};//{'element_size': 2, 'src': 148, 'sequence': 20058768, 'op': 'memory_read_wait'} |
instructions[2186] = {6'd19, 8'd145, 8'd148, 32'd0};//{'dest': 145, 'src': 148, 'sequence': 20058768, 'element_size': 2, 'op': 'memory_read'} |
instructions[2187] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2188] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2189] = {6'd32, 8'd141, 8'd145, 32'd8};//{'src': 145, 'right': 8, 'dest': 141, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[2190] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2191] = {6'd14, 8'd149, 8'd151, 32'd5};//{'dest': 149, 'src': 151, 'right': 5, 'signed': False, 'op': '+'} |
instructions[2192] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2191] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2192] = {6'd12, 8'd140, 8'd141, 32'd15};//{'src': 141, 'right': 15, 'dest': 140, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2193] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2194] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2195] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2194] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2195] = {6'd33, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '<<', 'type': 'int', 'size': 2} |
instructions[2196] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2197] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17805256, 'op': 'memory_read_request'} |
instructions[2198] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2199] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17805256, 'op': 'memory_read_wait'} |
instructions[2200] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17805256, 'element_size': 2, 'op': 'memory_read'} |
instructions[2201] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2197] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2198] = {6'd3, 8'd110, 8'd139, 32'd0};//{'dest': 110, 'src': 139, 'op': 'move'} |
instructions[2199] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2200] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2201] = {6'd3, 8'd140, 8'd110, 32'd0};//{'dest': 140, 'src': 110, 'op': 'move'} |
instructions[2202] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2203] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2204] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2204] = {6'd14, 8'd139, 8'd140, 32'd7};//{'src': 140, 'right': 7, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2205] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2206] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2207] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2208] = {6'd3, 8'd151, 8'd115, 32'd0};//{'dest': 151, 'src': 115, 'op': 'move'} |
instructions[2207] = {6'd3, 8'd111, 8'd139, 32'd0};//{'dest': 111, 'src': 139, 'op': 'move'} |
instructions[2208] = {6'd0, 8'd140, 8'd0, 32'd8};//{'dest': 140, 'literal': 8, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2209] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2210] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2211] = {6'd14, 8'd149, 8'd151, 32'd7};//{'dest': 149, 'src': 151, 'right': 7, 'signed': False, 'op': '+'} |
instructions[2211] = {6'd11, 8'd141, 8'd140, 32'd108};//{'dest': 141, 'src': 140, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2212] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2213] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2214] = {6'd11, 8'd150, 8'd149, 32'd112};//{'dest': 150, 'src': 149, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2214] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20093768, 'op': 'memory_read_request'} |
instructions[2215] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2216] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2217] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17784200, 'op': 'memory_read_request'} |
instructions[2216] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20093768, 'op': 'memory_read_wait'} |
instructions[2217] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20093768, 'element_size': 2, 'op': 'memory_read'} |
instructions[2218] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2219] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17784200, 'op': 'memory_read_wait'} |
instructions[2220] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17784200, 'element_size': 2, 'op': 'memory_read'} |
instructions[2221] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2219] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2220] = {6'd3, 8'd112, 8'd139, 32'd0};//{'dest': 112, 'src': 139, 'op': 'move'} |
instructions[2221] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2222] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2223] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2224] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2223] = {6'd3, 8'd140, 8'd112, 32'd0};//{'dest': 140, 'src': 112, 'op': 'move'} |
instructions[2224] = {6'd3, 8'd145, 8'd110, 32'd0};//{'dest': 145, 'src': 110, 'op': 'move'} |
instructions[2225] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2226] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2227] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2227] = {6'd33, 8'd141, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 141, 'signed': False, 'op': '<<', 'type': 'int', 'size': 2} |
instructions[2228] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2229] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2230] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17784560, 'op': 'memory_read_request'} |
instructions[2230] = {6'd34, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '-', 'type': 'int', 'size': 2} |
instructions[2231] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2232] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17784560, 'op': 'memory_read_wait'} |
instructions[2233] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17784560, 'element_size': 2, 'op': 'memory_read'} |
instructions[2234] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2232] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2233] = {6'd3, 8'd113, 8'd139, 32'd0};//{'dest': 113, 'src': 139, 'op': 'move'} |
instructions[2234] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2235] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2236] = {6'd12, 8'd148, 8'd149, 32'd1};//{'dest': 148, 'src': 149, 'right': 1, 'signed': False, 'op': '&'} |
instructions[2237] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2236] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2237] = {6'd14, 8'd145, 8'd148, 32'd6};//{'src': 148, 'right': 6, 'dest': 145, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2238] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2239] = {6'd3, 8'd98, 8'd148, 32'd0};//{'dest': 98, 'src': 148, 'op': 'move'} |
instructions[2240] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2239] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2240] = {6'd11, 8'd146, 8'd145, 32'd108};//{'dest': 146, 'src': 145, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2241] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2242] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2243] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2243] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20109000, 'op': 'memory_read_request'} |
instructions[2244] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2245] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2246] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2245] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20109000, 'op': 'memory_read_wait'} |
instructions[2246] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20109000, 'element_size': 2, 'op': 'memory_read'} |
instructions[2247] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2248] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2249] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781248, 'op': 'memory_read_request'} |
instructions[2249] = {6'd12, 8'd140, 8'd141, 32'd61440};//{'src': 141, 'right': 61440, 'dest': 140, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2250] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2251] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781248, 'op': 'memory_read_wait'} |
instructions[2252] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17781248, 'element_size': 2, 'op': 'memory_read'} |
instructions[2251] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2252] = {6'd32, 8'd139, 8'd140, 32'd10};//{'src': 140, 'right': 10, 'dest': 139, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[2253] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2254] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2255] = {6'd12, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '&'} |
instructions[2256] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2255] = {6'd3, 8'd114, 8'd139, 32'd0};//{'dest': 114, 'src': 139, 'op': 'move'} |
instructions[2256] = {6'd3, 8'd140, 8'd113, 32'd0};//{'dest': 140, 'src': 113, 'op': 'move'} |
instructions[2257] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2258] = {6'd3, 8'd99, 8'd148, 32'd0};//{'dest': 99, 'src': 148, 'op': 'move'} |
instructions[2259] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2258] = {6'd3, 8'd141, 8'd114, 32'd0};//{'dest': 141, 'src': 114, 'op': 'move'} |
instructions[2259] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2260] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2261] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2262] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2261] = {6'd34, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '-', 'type': 'int', 'size': 2} |
instructions[2262] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2263] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2264] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2265] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2266] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2264] = {6'd3, 8'd104, 8'd139, 32'd0};//{'dest': 104, 'src': 139, 'op': 'move'} |
instructions[2265] = {6'd3, 8'd140, 8'd111, 32'd0};//{'dest': 140, 'src': 111, 'op': 'move'} |
instructions[2266] = {6'd3, 8'd145, 8'd114, 32'd0};//{'dest': 145, 'src': 114, 'op': 'move'} |
instructions[2267] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2268] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781464, 'op': 'memory_read_request'} |
instructions[2269] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2270] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781464, 'op': 'memory_read_wait'} |
instructions[2271] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17781464, 'element_size': 2, 'op': 'memory_read'} |
instructions[2272] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2268] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2269] = {6'd32, 8'd141, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 141, 'signed': False, 'op': '>>', 'type': 'int', 'size': 2} |
instructions[2270] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2271] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2272] = {6'd11, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2273] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2274] = {6'd12, 8'd148, 8'd149, 32'd4};//{'dest': 148, 'src': 149, 'right': 4, 'signed': False, 'op': '&'} |
instructions[2275] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2276] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2277] = {6'd3, 8'd100, 8'd148, 32'd0};//{'dest': 100, 'src': 148, 'op': 'move'} |
instructions[2278] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2279] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2274] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2275] = {6'd3, 8'd105, 8'd139, 32'd0};//{'dest': 105, 'src': 139, 'op': 'move'} |
instructions[2276] = {6'd3, 8'd145, 8'd111, 32'd0};//{'dest': 145, 'src': 111, 'op': 'move'} |
instructions[2277] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2278] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2279] = {6'd14, 8'd140, 8'd145, 32'd0};//{'src': 145, 'right': 0, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2280] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2281] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2282] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2281] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2282] = {6'd11, 8'd141, 8'd140, 32'd108};//{'dest': 141, 'src': 140, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2283] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2284] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2285] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2284] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2285] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20077816, 'op': 'memory_read_request'} |
instructions[2286] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2287] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781680, 'op': 'memory_read_request'} |
instructions[2288] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2289] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17781680, 'op': 'memory_read_wait'} |
instructions[2290] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17781680, 'element_size': 2, 'op': 'memory_read'} |
instructions[2291] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2292] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2293] = {6'd12, 8'd148, 8'd149, 32'd8};//{'dest': 148, 'src': 149, 'right': 8, 'signed': False, 'op': '&'} |
instructions[2294] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2295] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2287] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20077816, 'op': 'memory_read_wait'} |
instructions[2288] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20077816, 'element_size': 2, 'op': 'memory_read'} |
instructions[2289] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2290] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2291] = {6'd3, 8'd89, 8'd139, 32'd0};//{'dest': 89, 'src': 139, 'op': 'move'} |
instructions[2292] = {6'd3, 8'd145, 8'd111, 32'd0};//{'dest': 145, 'src': 111, 'op': 'move'} |
instructions[2293] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2294] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2295] = {6'd14, 8'd140, 8'd145, 32'd1};//{'src': 145, 'right': 1, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2296] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2297] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2298] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2297] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2298] = {6'd11, 8'd141, 8'd140, 32'd108};//{'dest': 141, 'src': 140, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2299] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2300] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2301] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2300] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2301] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20059344, 'op': 'memory_read_request'} |
instructions[2302] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2303] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17783336, 'op': 'memory_read_request'} |
instructions[2304] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2305] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17783336, 'op': 'memory_read_wait'} |
instructions[2306] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17783336, 'element_size': 2, 'op': 'memory_read'} |
instructions[2307] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2308] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2309] = {6'd12, 8'd148, 8'd149, 32'd16};//{'dest': 148, 'src': 149, 'right': 16, 'signed': False, 'op': '&'} |
instructions[2303] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20059344, 'op': 'memory_read_wait'} |
instructions[2304] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20059344, 'element_size': 2, 'op': 'memory_read'} |
instructions[2305] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2306] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2307] = {6'd3, 8'd90, 8'd139, 32'd0};//{'dest': 90, 'src': 139, 'op': 'move'} |
instructions[2308] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2309] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2310] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2311] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2312] = {6'd3, 8'd101, 8'd148, 32'd0};//{'dest': 101, 'src': 148, 'op': 'move'} |
instructions[2313] = {6'd3, 8'd152, 8'd115, 32'd0};//{'dest': 152, 'src': 115, 'op': 'move'} |
instructions[2314] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2311] = {6'd14, 8'd145, 8'd148, 32'd2};//{'src': 148, 'right': 2, 'dest': 145, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2312] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2313] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2314] = {6'd11, 8'd146, 8'd145, 32'd108};//{'dest': 146, 'src': 145, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2315] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2316] = {6'd14, 8'd150, 8'd152, 32'd6};//{'dest': 150, 'src': 152, 'right': 6, 'signed': False, 'op': '+'} |
instructions[2317] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2316] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2317] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20059560, 'op': 'memory_read_request'} |
instructions[2318] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2319] = {6'd11, 8'd151, 8'd150, 32'd112};//{'dest': 151, 'src': 150, 'srcb': 112, 'signed': False, 'op': '+'} |
instructions[2320] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2321] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2322] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17810568, 'op': 'memory_read_request'} |
instructions[2319] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20059560, 'op': 'memory_read_wait'} |
instructions[2320] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20059560, 'element_size': 2, 'op': 'memory_read'} |
instructions[2321] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2322] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2323] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2324] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17810568, 'op': 'memory_read_wait'} |
instructions[2325] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17810568, 'element_size': 2, 'op': 'memory_read'} |
instructions[2324] = {6'd11, 8'd141, 8'd140, 32'd91};//{'dest': 141, 'src': 140, 'srcb': 91, 'signed': False, 'op': '+'} |
instructions[2325] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2326] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2327] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2328] = {6'd12, 8'd148, 8'd149, 32'd32};//{'dest': 148, 'src': 149, 'right': 32, 'signed': False, 'op': '&'} |
instructions[2329] = {6'd3, 8'd111, 8'd113, 32'd0};//{'dest': 111, 'src': 113, 'op': 'move'} |
instructions[2330] = {6'd6, 8'd0, 8'd110, 32'd0};//{'src': 110, 'op': 'jmp_to_reg'} |
instructions[2331] = {6'd0, 8'd123, 8'd0, 32'd0};//{'dest': 123, 'literal': 0, 'op': 'literal'} |
instructions[2332] = {6'd0, 8'd124, 8'd0, 32'd0};//{'dest': 124, 'literal': 0, 'op': 'literal'} |
instructions[2333] = {6'd3, 8'd148, 8'd121, 32'd0};//{'dest': 148, 'src': 121, 'op': 'move'} |
instructions[2334] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2327] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2328] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2329] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2330] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2331] = {6'd14, 8'd145, 8'd148, 32'd3};//{'src': 148, 'right': 3, 'dest': 145, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2332] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2333] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2334] = {6'd11, 8'd146, 8'd145, 32'd108};//{'dest': 146, 'src': 145, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2335] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2336] = {6'd3, 8'd124, 8'd148, 32'd0};//{'dest': 124, 'src': 148, 'op': 'move'} |
instructions[2337] = {6'd3, 8'd3, 8'd122, 32'd0};//{'dest': 3, 'src': 122, 'op': 'move'} |
instructions[2338] = {6'd1, 8'd2, 8'd0, 32'd45};//{'dest': 2, 'label': 45, 'op': 'jmp_and_link'} |
instructions[2339] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2340] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2341] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2342] = {6'd3, 8'd123, 8'd148, 32'd0};//{'dest': 123, 'src': 148, 'op': 'move'} |
instructions[2336] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2337] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20060352, 'op': 'memory_read_request'} |
instructions[2338] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2339] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20060352, 'op': 'memory_read_wait'} |
instructions[2340] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20060352, 'element_size': 2, 'op': 'memory_read'} |
instructions[2341] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2342] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2343] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2344] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2345] = {6'd3, 8'd149, 8'd123, 32'd0};//{'dest': 149, 'src': 123, 'op': 'move'} |
instructions[2346] = {6'd3, 8'd150, 8'd122, 32'd0};//{'dest': 150, 'src': 122, 'op': 'move'} |
instructions[2347] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2348] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2349] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[2344] = {6'd11, 8'd141, 8'd140, 32'd91};//{'dest': 141, 'src': 140, 'srcb': 91, 'signed': False, 'op': '+'} |
instructions[2345] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2346] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2347] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2348] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2349] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2350] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2351] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2352] = {6'd13, 8'd0, 8'd148, 32'd2374};//{'src': 148, 'label': 2374, 'op': 'jmp_if_false'} |
instructions[2353] = {6'd3, 8'd149, 8'd124, 32'd0};//{'dest': 149, 'src': 124, 'op': 'move'} |
instructions[2354] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2351] = {6'd14, 8'd145, 8'd148, 32'd4};//{'src': 148, 'right': 4, 'dest': 145, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2352] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2353] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2354] = {6'd11, 8'd146, 8'd145, 32'd108};//{'dest': 146, 'src': 145, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2355] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2356] = {6'd11, 8'd150, 8'd149, 32'd120};//{'dest': 150, 'src': 149, 'srcb': 120, 'signed': False, 'op': '+'} |
instructions[2357] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2356] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2357] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20061360, 'op': 'memory_read_request'} |
instructions[2358] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2359] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17842120, 'op': 'memory_read_request'} |
instructions[2360] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2361] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17842120, 'op': 'memory_read_wait'} |
instructions[2362] = {6'd19, 8'd3, 8'd150, 32'd0};//{'dest': 3, 'src': 150, 'sequence': 17842120, 'element_size': 2, 'op': 'memory_read'} |
instructions[2363] = {6'd1, 8'd2, 8'd0, 32'd45};//{'dest': 2, 'label': 45, 'op': 'jmp_and_link'} |
instructions[2364] = {6'd3, 8'd148, 8'd124, 32'd0};//{'dest': 148, 'src': 124, 'op': 'move'} |
instructions[2365] = {6'd14, 8'd124, 8'd124, 32'd1};//{'dest': 124, 'src': 124, 'right': 1, 'signed': False, 'op': '+'} |
instructions[2366] = {6'd3, 8'd149, 8'd123, 32'd0};//{'dest': 149, 'src': 123, 'op': 'move'} |
instructions[2367] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2368] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2369] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[2359] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20061360, 'op': 'memory_read_wait'} |
instructions[2360] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20061360, 'element_size': 2, 'op': 'memory_read'} |
instructions[2361] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2362] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2363] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2364] = {6'd11, 8'd141, 8'd140, 32'd92};//{'dest': 141, 'src': 140, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[2365] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2366] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2367] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2368] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2369] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2370] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2371] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2372] = {6'd3, 8'd123, 8'd148, 32'd0};//{'dest': 123, 'src': 148, 'op': 'move'} |
instructions[2373] = {6'd15, 8'd0, 8'd0, 32'd2343};//{'label': 2343, 'op': 'goto'} |
instructions[2374] = {6'd6, 8'd0, 8'd119, 32'd0};//{'src': 119, 'op': 'jmp_to_reg'} |
instructions[2375] = {6'd0, 8'd129, 8'd0, 32'd0};//{'dest': 129, 'literal': 0, 'op': 'literal'} |
instructions[2376] = {6'd0, 8'd130, 8'd0, 32'd0};//{'dest': 130, 'literal': 0, 'op': 'literal'} |
instructions[2377] = {6'd0, 8'd131, 8'd0, 32'd0};//{'dest': 131, 'literal': 0, 'op': 'literal'} |
instructions[2378] = {6'd37, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'input': 'socket', 'op': 'ready'} |
instructions[2379] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2380] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2381] = {6'd38, 8'd148, 8'd149, 32'd0};//{'dest': 148, 'src': 149, 'right': 0, 'signed': True, 'op': '=='} |
instructions[2371] = {6'd14, 8'd145, 8'd148, 32'd5};//{'src': 148, 'right': 5, 'dest': 145, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2372] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2373] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2374] = {6'd11, 8'd146, 8'd145, 32'd108};//{'dest': 146, 'src': 145, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2375] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2376] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2377] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20061936, 'op': 'memory_read_request'} |
instructions[2378] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2379] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20061936, 'op': 'memory_read_wait'} |
instructions[2380] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20061936, 'element_size': 2, 'op': 'memory_read'} |
instructions[2381] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2382] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2383] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2384] = {6'd13, 8'd0, 8'd148, 32'd2388};//{'src': 148, 'label': 2388, 'op': 'jmp_if_false'} |
instructions[2385] = {6'd0, 8'd126, 8'd0, 32'd0};//{'dest': 126, 'literal': 0, 'op': 'literal'} |
instructions[2386] = {6'd6, 8'd0, 8'd125, 32'd0};//{'src': 125, 'op': 'jmp_to_reg'} |
instructions[2387] = {6'd15, 8'd0, 8'd0, 32'd2388};//{'label': 2388, 'op': 'goto'} |
instructions[2388] = {6'd3, 8'd148, 8'd128, 32'd0};//{'dest': 148, 'src': 128, 'op': 'move'} |
instructions[2384] = {6'd11, 8'd141, 8'd140, 32'd92};//{'dest': 141, 'src': 140, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[2385] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2386] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2387] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2388] = {6'd3, 8'd145, 8'd111, 32'd0};//{'dest': 145, 'src': 111, 'op': 'move'} |
instructions[2389] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2390] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2391] = {6'd3, 8'd130, 8'd148, 32'd0};//{'dest': 130, 'src': 148, 'op': 'move'} |
instructions[2392] = {6'd1, 8'd8, 8'd0, 32'd54};//{'dest': 8, 'label': 54, 'op': 'jmp_and_link'} |
instructions[2393] = {6'd3, 8'd148, 8'd9, 32'd0};//{'dest': 148, 'src': 9, 'op': 'move'} |
instructions[2394] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2391] = {6'd14, 8'd140, 8'd145, 32'd7};//{'src': 145, 'right': 7, 'dest': 140, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2392] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2393] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2394] = {6'd11, 8'd141, 8'd140, 32'd108};//{'dest': 141, 'src': 140, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2395] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2396] = {6'd3, 8'd131, 8'd148, 32'd0};//{'dest': 131, 'src': 148, 'op': 'move'} |
instructions[2397] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2396] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2397] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20058192, 'op': 'memory_read_request'} |
instructions[2398] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2399] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2400] = {6'd3, 8'd129, 8'd148, 32'd0};//{'dest': 129, 'src': 148, 'op': 'move'} |
instructions[2401] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2399] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20058192, 'op': 'memory_read_wait'} |
instructions[2400] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20058192, 'element_size': 2, 'op': 'memory_read'} |
instructions[2401] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2402] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2403] = {6'd3, 8'd149, 8'd129, 32'd0};//{'dest': 149, 'src': 129, 'op': 'move'} |
instructions[2404] = {6'd3, 8'd150, 8'd131, 32'd0};//{'dest': 150, 'src': 131, 'op': 'move'} |
instructions[2403] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2404] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2405] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2406] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2407] = {6'd20, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '<'} |
instructions[2407] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2408] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2409] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2410] = {6'd13, 8'd0, 8'd148, 32'd2430};//{'src': 148, 'label': 2430, 'op': 'jmp_if_false'} |
instructions[2411] = {6'd1, 8'd8, 8'd0, 32'd54};//{'dest': 8, 'label': 54, 'op': 'jmp_and_link'} |
instructions[2412] = {6'd3, 8'd148, 8'd9, 32'd0};//{'dest': 148, 'src': 9, 'op': 'move'} |
instructions[2413] = {6'd3, 8'd149, 8'd130, 32'd0};//{'dest': 149, 'src': 130, 'op': 'move'} |
instructions[2410] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20058408, 'op': 'memory_read_request'} |
instructions[2411] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2412] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20058408, 'op': 'memory_read_wait'} |
instructions[2413] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20058408, 'element_size': 2, 'op': 'memory_read'} |
instructions[2414] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2415] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2416] = {6'd11, 8'd150, 8'd149, 32'd127};//{'dest': 150, 'src': 149, 'srcb': 127, 'signed': False, 'op': '+'} |
instructions[2416] = {6'd12, 8'd139, 8'd140, 32'd1};//{'src': 140, 'right': 1, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2417] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2418] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2419] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2420] = {6'd3, 8'd148, 8'd130, 32'd0};//{'dest': 148, 'src': 130, 'op': 'move'} |
instructions[2421] = {6'd14, 8'd130, 8'd130, 32'd1};//{'dest': 130, 'src': 130, 'right': 1, 'signed': False, 'op': '+'} |
instructions[2422] = {6'd3, 8'd149, 8'd129, 32'd0};//{'dest': 149, 'src': 129, 'op': 'move'} |
instructions[2423] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2419] = {6'd3, 8'd93, 8'd139, 32'd0};//{'dest': 93, 'src': 139, 'op': 'move'} |
instructions[2420] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2421] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2422] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2423] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2424] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2425] = {6'd14, 8'd148, 8'd149, 32'd2};//{'dest': 148, 'src': 149, 'right': 2, 'signed': False, 'op': '+'} |
instructions[2426] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2425] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2426] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2427] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2428] = {6'd3, 8'd129, 8'd148, 32'd0};//{'dest': 129, 'src': 148, 'op': 'move'} |
instructions[2429] = {6'd15, 8'd0, 8'd0, 32'd2401};//{'label': 2401, 'op': 'goto'} |
instructions[2430] = {6'd3, 8'd126, 8'd131, 32'd0};//{'dest': 126, 'src': 131, 'op': 'move'} |
instructions[2431] = {6'd6, 8'd0, 8'd125, 32'd0};//{'src': 125, 'op': 'jmp_to_reg'} |
instructions[2432] = {6'd0, 8'd133, 8'd0, 32'd618};//{'dest': 133, 'literal': 618, 'op': 'literal'} |
instructions[2433] = {6'd0, 8'd134, 8'd0, 32'd1642};//{'dest': 134, 'literal': 1642, 'op': 'literal'} |
instructions[2434] = {6'd0, 8'd135, 8'd0, 32'd27};//{'dest': 135, 'literal': 27, 'op': 'literal'} |
instructions[2435] = {6'd0, 8'd136, 8'd0, 32'd0};//{'dest': 136, 'literal': 0, 'op': 'literal'} |
instructions[2436] = {6'd0, 8'd137, 8'd0, 32'd0};//{'dest': 137, 'literal': 0, 'op': 'literal'} |
instructions[2437] = {6'd0, 8'd138, 8'd0, 32'd0};//{'dest': 138, 'literal': 0, 'op': 'literal'} |
instructions[2438] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'op': 'literal'} |
instructions[2439] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'op': 'literal'} |
instructions[2440] = {6'd0, 8'd141, 8'd0, 32'd0};//{'dest': 141, 'literal': 0, 'op': 'literal'} |
instructions[2441] = {6'd0, 8'd142, 8'd0, 32'd0};//{'dest': 142, 'literal': 0, 'op': 'literal'} |
instructions[2442] = {6'd0, 8'd143, 8'd0, 32'd1};//{'dest': 143, 'literal': 1, 'op': 'literal'} |
instructions[2443] = {6'd0, 8'd144, 8'd0, 32'd2};//{'dest': 144, 'literal': 2, 'op': 'literal'} |
instructions[2444] = {6'd0, 8'd145, 8'd0, 32'd3};//{'dest': 145, 'literal': 3, 'op': 'literal'} |
instructions[2445] = {6'd0, 8'd146, 8'd0, 32'd4};//{'dest': 146, 'literal': 4, 'op': 'literal'} |
instructions[2446] = {6'd3, 8'd147, 8'd142, 32'd0};//{'dest': 147, 'src': 142, 'op': 'move'} |
instructions[2447] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2448] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2428] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2429] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20107344, 'op': 'memory_read_request'} |
instructions[2430] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2431] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20107344, 'op': 'memory_read_wait'} |
instructions[2432] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20107344, 'element_size': 2, 'op': 'memory_read'} |
instructions[2433] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2434] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2435] = {6'd12, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2436] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2437] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2438] = {6'd3, 8'd94, 8'd139, 32'd0};//{'dest': 94, 'src': 139, 'op': 'move'} |
instructions[2439] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2440] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2441] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2442] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2443] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2444] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2445] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2446] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2447] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2448] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20107920, 'op': 'memory_read_request'} |
instructions[2449] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2450] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2451] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2450] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20107920, 'op': 'memory_read_wait'} |
instructions[2451] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20107920, 'element_size': 2, 'op': 'memory_read'} |
instructions[2452] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2453] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2454] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2455] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2456] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2457] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2458] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2459] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2454] = {6'd12, 8'd139, 8'd140, 32'd4};//{'src': 140, 'right': 4, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2455] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2456] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2457] = {6'd3, 8'd95, 8'd139, 32'd0};//{'dest': 95, 'src': 139, 'op': 'move'} |
instructions[2458] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2459] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2460] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2461] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2462] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2463] = {6'd3, 8'd148, 8'd137, 32'd0};//{'dest': 148, 'src': 137, 'op': 'move'} |
instructions[2464] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2461] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2462] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2463] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2464] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2465] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2466] = {6'd13, 8'd0, 8'd148, 32'd2470};//{'src': 148, 'label': 2470, 'op': 'jmp_if_false'} |
instructions[2467] = {6'd3, 8'd148, 8'd137, 32'd0};//{'dest': 148, 'src': 137, 'op': 'move'} |
instructions[2468] = {6'd34, 8'd137, 8'd137, 32'd1};//{'dest': 137, 'src': 137, 'right': 1, 'signed': False, 'op': '-'} |
instructions[2469] = {6'd15, 8'd0, 8'd0, 32'd2497};//{'label': 2497, 'op': 'goto'} |
instructions[2470] = {6'd0, 8'd148, 8'd0, 32'd120};//{'dest': 148, 'literal': 120, 'op': 'literal'} |
instructions[2466] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2467] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20108208, 'op': 'memory_read_request'} |
instructions[2468] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2469] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20108208, 'op': 'memory_read_wait'} |
instructions[2470] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20108208, 'element_size': 2, 'op': 'memory_read'} |
instructions[2471] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2472] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2473] = {6'd3, 8'd137, 8'd148, 32'd0};//{'dest': 137, 'src': 148, 'op': 'move'} |
instructions[2474] = {6'd3, 8'd148, 8'd142, 32'd0};//{'dest': 148, 'src': 142, 'op': 'move'} |
instructions[2473] = {6'd12, 8'd139, 8'd140, 32'd8};//{'src': 140, 'right': 8, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2474] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2475] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2476] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2477] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2478] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2477] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2478] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2479] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2480] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2481] = {6'd3, 8'd89, 8'd148, 32'd0};//{'dest': 89, 'src': 148, 'op': 'move'} |
instructions[2482] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2483] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2480] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2481] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2482] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2483] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20110800, 'op': 'memory_read_request'} |
instructions[2484] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2485] = {6'd3, 8'd88, 8'd148, 32'd0};//{'dest': 88, 'src': 148, 'op': 'move'} |
instructions[2486] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2485] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20110800, 'op': 'memory_read_wait'} |
instructions[2486] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20110800, 'element_size': 2, 'op': 'memory_read'} |
instructions[2487] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2488] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2489] = {6'd3, 8'd92, 8'd148, 32'd0};//{'dest': 92, 'src': 148, 'op': 'move'} |
instructions[2490] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2489] = {6'd12, 8'd139, 8'd140, 32'd16};//{'src': 140, 'right': 16, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2490] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2491] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2492] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2493] = {6'd3, 8'd90, 8'd148, 32'd0};//{'dest': 90, 'src': 148, 'op': 'move'} |
instructions[2494] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2495] = {6'd0, 8'd104, 8'd0, 32'd0};//{'dest': 104, 'literal': 0, 'op': 'literal'} |
instructions[2496] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2497] = {6'd3, 8'd148, 8'd147, 32'd0};//{'dest': 148, 'src': 147, 'op': 'move'} |
instructions[2492] = {6'd3, 8'd96, 8'd139, 32'd0};//{'dest': 96, 'src': 139, 'op': 'move'} |
instructions[2493] = {6'd3, 8'd146, 8'd111, 32'd0};//{'dest': 146, 'src': 111, 'op': 'move'} |
instructions[2494] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2495] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2496] = {6'd14, 8'd141, 8'd146, 32'd6};//{'src': 146, 'right': 6, 'dest': 141, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2497] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2498] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2499] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2500] = {6'd38, 8'd149, 8'd148, 32'd0};//{'dest': 149, 'src': 148, 'right': 0, 'signed': True, 'op': '=='} |
instructions[2499] = {6'd11, 8'd145, 8'd141, 32'd108};//{'dest': 145, 'src': 141, 'srcb': 108, 'signed': False, 'op': '+'} |
instructions[2500] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2501] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2502] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2503] = {6'd22, 8'd0, 8'd149, 32'd2520};//{'src': 149, 'label': 2520, 'op': 'jmp_if_true'} |
instructions[2504] = {6'd38, 8'd149, 8'd148, 32'd1};//{'dest': 149, 'src': 148, 'right': 1, 'signed': True, 'op': '=='} |
instructions[2505] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2502] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20109504, 'op': 'memory_read_request'} |
instructions[2503] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2504] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20109504, 'op': 'memory_read_wait'} |
instructions[2505] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20109504, 'element_size': 2, 'op': 'memory_read'} |
instructions[2506] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2507] = {6'd22, 8'd0, 8'd149, 32'd2537};//{'src': 149, 'label': 2537, 'op': 'jmp_if_true'} |
instructions[2508] = {6'd38, 8'd149, 8'd148, 32'd2};//{'dest': 149, 'src': 148, 'right': 2, 'signed': True, 'op': '=='} |
instructions[2509] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2507] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2508] = {6'd12, 8'd139, 8'd140, 32'd32};//{'src': 140, 'right': 32, 'dest': 139, 'signed': False, 'op': '&', 'type': 'int', 'size': 2} |
instructions[2509] = {6'd3, 8'd139, 8'd109, 32'd0};//{'dest': 139, 'src': 109, 'op': 'move'} |
instructions[2510] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2511] = {6'd22, 8'd0, 8'd149, 32'd2588};//{'src': 149, 'label': 2588, 'op': 'jmp_if_true'} |
instructions[2512] = {6'd38, 8'd149, 8'd148, 32'd3};//{'dest': 149, 'src': 148, 'right': 3, 'signed': True, 'op': '=='} |
instructions[2513] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2514] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2515] = {6'd22, 8'd0, 8'd149, 32'd2646};//{'src': 149, 'label': 2646, 'op': 'jmp_if_true'} |
instructions[2516] = {6'd38, 8'd149, 8'd148, 32'd4};//{'dest': 149, 'src': 148, 'right': 4, 'signed': True, 'op': '=='} |
instructions[2511] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2512] = {6'd3, 8'd107, 8'd139, 32'd0};//{'dest': 107, 'src': 139, 'op': 'move'} |
instructions[2513] = {6'd6, 8'd0, 8'd106, 32'd0};//{'src': 106, 'op': 'jmp_to_reg'} |
instructions[2514] = {6'd0, 8'd119, 8'd0, 32'd0};//{'dest': 119, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2515] = {6'd0, 8'd120, 8'd0, 32'd0};//{'dest': 120, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2516] = {6'd3, 8'd139, 8'd117, 32'd0};//{'dest': 139, 'src': 117, 'op': 'move'} |
instructions[2517] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2518] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2519] = {6'd22, 8'd0, 8'd149, 32'd2650};//{'src': 149, 'label': 2650, 'op': 'jmp_if_true'} |
instructions[2520] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2519] = {6'd3, 8'd120, 8'd139, 32'd0};//{'dest': 120, 'src': 139, 'op': 'move'} |
instructions[2520] = {6'd3, 8'd140, 8'd118, 32'd0};//{'dest': 140, 'src': 118, 'op': 'move'} |
instructions[2521] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2522] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2523] = {6'd3, 8'd90, 8'd148, 32'd0};//{'dest': 90, 'src': 148, 'op': 'move'} |
instructions[2524] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2525] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2523] = {6'd3, 8'd3, 8'd140, 32'd0};//{'dest': 3, 'src': 140, 'op': 'move'} |
instructions[2524] = {6'd1, 8'd2, 8'd0, 32'd39};//{'dest': 2, 'label': 39, 'op': 'jmp_and_link'} |
instructions[2525] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2526] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2527] = {6'd3, 8'd89, 8'd148, 32'd0};//{'dest': 89, 'src': 148, 'op': 'move'} |
instructions[2528] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2527] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2528] = {6'd3, 8'd119, 8'd139, 32'd0};//{'dest': 119, 'src': 139, 'op': 'move'} |
instructions[2529] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2530] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2531] = {6'd3, 8'd88, 8'd148, 32'd0};//{'dest': 88, 'src': 148, 'op': 'move'} |
instructions[2532] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2531] = {6'd3, 8'd140, 8'd119, 32'd0};//{'dest': 140, 'src': 119, 'op': 'move'} |
instructions[2532] = {6'd3, 8'd141, 8'd118, 32'd0};//{'dest': 141, 'src': 118, 'op': 'move'} |
instructions[2533] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2534] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2535] = {6'd3, 8'd92, 8'd148, 32'd0};//{'dest': 92, 'src': 148, 'op': 'move'} |
instructions[2536] = {6'd15, 8'd0, 8'd0, 32'd2667};//{'label': 2667, 'op': 'goto'} |
instructions[2537] = {6'd0, 8'd149, 8'd0, 32'd13};//{'dest': 149, 'literal': 13, 'op': 'literal'} |
instructions[2538] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2539] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2540] = {6'd11, 8'd150, 8'd149, 32'd133};//{'dest': 150, 'src': 149, 'srcb': 133, 'signed': False, 'op': '+'} |
instructions[2535] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[2536] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2537] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2538] = {6'd13, 8'd0, 8'd139, 32'd2563};//{'src': 139, 'label': 2563, 'op': 'jmp_if_false'} |
instructions[2539] = {6'd3, 8'd141, 8'd120, 32'd0};//{'dest': 141, 'src': 120, 'op': 'move'} |
instructions[2540] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2541] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2542] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2543] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17857784, 'op': 'memory_read_request'} |
instructions[2542] = {6'd11, 8'd145, 8'd141, 32'd116};//{'dest': 145, 'src': 141, 'srcb': 116, 'signed': False, 'op': '+'} |
instructions[2543] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2544] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2545] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17857784, 'op': 'memory_read_wait'} |
instructions[2546] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17857784, 'element_size': 2, 'op': 'memory_read'} |
instructions[2547] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2548] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2549] = {6'd3, 8'd80, 8'd148, 32'd0};//{'dest': 80, 'src': 148, 'op': 'move'} |
instructions[2550] = {6'd0, 8'd149, 8'd0, 32'd14};//{'dest': 149, 'literal': 14, 'op': 'literal'} |
instructions[2551] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2552] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2553] = {6'd11, 8'd150, 8'd149, 32'd133};//{'dest': 150, 'src': 149, 'srcb': 133, 'signed': False, 'op': '+'} |
instructions[2554] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2555] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2556] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17858144, 'op': 'memory_read_request'} |
instructions[2545] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20139184, 'op': 'memory_read_request'} |
instructions[2546] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2547] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20139184, 'op': 'memory_read_wait'} |
instructions[2548] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20139184, 'element_size': 2, 'op': 'memory_read'} |
instructions[2549] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2550] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2551] = {6'd3, 8'd3, 8'd140, 32'd0};//{'dest': 3, 'src': 140, 'op': 'move'} |
instructions[2552] = {6'd1, 8'd2, 8'd0, 32'd39};//{'dest': 2, 'label': 39, 'op': 'jmp_and_link'} |
instructions[2553] = {6'd3, 8'd139, 8'd120, 32'd0};//{'dest': 139, 'src': 120, 'op': 'move'} |
instructions[2554] = {6'd14, 8'd120, 8'd120, 32'd1};//{'src': 120, 'right': 1, 'dest': 120, 'signed': False, 'op': '+', 'size': 2} |
instructions[2555] = {6'd3, 8'd140, 8'd119, 32'd0};//{'dest': 140, 'src': 119, 'op': 'move'} |
instructions[2556] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2557] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2558] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17858144, 'op': 'memory_read_wait'} |
instructions[2559] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17858144, 'element_size': 2, 'op': 'memory_read'} |
instructions[2558] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2559] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2560] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2561] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2562] = {6'd3, 8'd81, 8'd148, 32'd0};//{'dest': 81, 'src': 148, 'op': 'move'} |
instructions[2563] = {6'd3, 8'd148, 8'd94, 32'd0};//{'dest': 148, 'src': 94, 'op': 'move'} |
instructions[2564] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2565] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2566] = {6'd3, 8'd83, 8'd148, 32'd0};//{'dest': 83, 'src': 148, 'op': 'move'} |
instructions[2567] = {6'd3, 8'd148, 8'd15, 32'd0};//{'dest': 148, 'src': 15, 'op': 'move'} |
instructions[2561] = {6'd3, 8'd119, 8'd139, 32'd0};//{'dest': 119, 'src': 139, 'op': 'move'} |
instructions[2562] = {6'd15, 8'd0, 8'd0, 32'd2529};//{'label': 2529, 'op': 'goto'} |
instructions[2563] = {6'd6, 8'd0, 8'd115, 32'd0};//{'src': 115, 'op': 'jmp_to_reg'} |
instructions[2564] = {6'd0, 8'd125, 8'd0, 32'd0};//{'dest': 125, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2565] = {6'd0, 8'd126, 8'd0, 32'd0};//{'dest': 126, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2566] = {6'd0, 8'd127, 8'd0, 32'd0};//{'dest': 127, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2567] = {6'd38, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'input': 'socket', 'op': 'ready'} |
instructions[2568] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2569] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2570] = {6'd3, 8'd82, 8'd148, 32'd0};//{'dest': 82, 'src': 148, 'op': 'move'} |
instructions[2571] = {6'd3, 8'd25, 8'd86, 32'd0};//{'dest': 25, 'src': 86, 'op': 'move'} |
instructions[2572] = {6'd3, 8'd26, 8'd96, 32'd0};//{'dest': 26, 'src': 96, 'op': 'move'} |
instructions[2573] = {6'd0, 8'd27, 8'd0, 32'd1};//{'dest': 27, 'literal': 1, 'op': 'literal'} |
instructions[2574] = {6'd1, 8'd23, 8'd0, 32'd102};//{'dest': 23, 'label': 102, 'op': 'jmp_and_link'} |
instructions[2575] = {6'd3, 8'd148, 8'd24, 32'd0};//{'dest': 148, 'src': 24, 'op': 'move'} |
instructions[2576] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2577] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2578] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2579] = {6'd3, 8'd89, 8'd148, 32'd0};//{'dest': 89, 'src': 148, 'op': 'move'} |
instructions[2580] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2570] = {6'd39, 8'd139, 8'd140, 32'd0};//{'src': 140, 'right': 0, 'dest': 139, 'signed': True, 'op': '==', 'type': 'int', 'size': 2} |
instructions[2571] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2572] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2573] = {6'd13, 8'd0, 8'd139, 32'd2580};//{'src': 139, 'label': 2580, 'op': 'jmp_if_false'} |
instructions[2574] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2575] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2576] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2577] = {6'd3, 8'd122, 8'd139, 32'd0};//{'dest': 122, 'src': 139, 'op': 'move'} |
instructions[2578] = {6'd6, 8'd0, 8'd121, 32'd0};//{'src': 121, 'op': 'jmp_to_reg'} |
instructions[2579] = {6'd15, 8'd0, 8'd0, 32'd2580};//{'label': 2580, 'op': 'goto'} |
instructions[2580] = {6'd3, 8'd139, 8'd124, 32'd0};//{'dest': 139, 'src': 124, 'op': 'move'} |
instructions[2581] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2582] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2583] = {6'd3, 8'd92, 8'd148, 32'd0};//{'dest': 92, 'src': 148, 'op': 'move'} |
instructions[2584] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2585] = {6'd0, 8'd104, 8'd0, 32'd0};//{'dest': 104, 'literal': 0, 'op': 'literal'} |
instructions[2586] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2587] = {6'd15, 8'd0, 8'd0, 32'd2667};//{'label': 2667, 'op': 'goto'} |
instructions[2588] = {6'd3, 8'd127, 8'd134, 32'd0};//{'dest': 127, 'src': 134, 'op': 'move'} |
instructions[2589] = {6'd3, 8'd128, 8'd135, 32'd0};//{'dest': 128, 'src': 135, 'op': 'move'} |
instructions[2590] = {6'd1, 8'd125, 8'd0, 32'd2375};//{'dest': 125, 'label': 2375, 'op': 'jmp_and_link'} |
instructions[2591] = {6'd3, 8'd148, 8'd126, 32'd0};//{'dest': 148, 'src': 126, 'op': 'move'} |
instructions[2592] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2583] = {6'd3, 8'd126, 8'd139, 32'd0};//{'dest': 126, 'src': 139, 'op': 'move'} |
instructions[2584] = {6'd1, 8'd8, 8'd0, 32'd54};//{'dest': 8, 'label': 54, 'op': 'jmp_and_link'} |
instructions[2585] = {6'd3, 8'd139, 8'd9, 32'd0};//{'dest': 139, 'src': 9, 'op': 'move'} |
instructions[2586] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2587] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2588] = {6'd3, 8'd127, 8'd139, 32'd0};//{'dest': 127, 'src': 139, 'op': 'move'} |
instructions[2589] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2590] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2591] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2592] = {6'd3, 8'd125, 8'd139, 32'd0};//{'dest': 125, 'src': 139, 'op': 'move'} |
instructions[2593] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2594] = {6'd3, 8'd136, 8'd148, 32'd0};//{'dest': 136, 'src': 148, 'op': 'move'} |
instructions[2595] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2596] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2594] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2595] = {6'd3, 8'd140, 8'd125, 32'd0};//{'dest': 140, 'src': 125, 'op': 'move'} |
instructions[2596] = {6'd3, 8'd141, 8'd127, 32'd0};//{'dest': 141, 'src': 127, 'op': 'move'} |
instructions[2597] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2598] = {6'd11, 8'd150, 8'd149, 32'd85};//{'dest': 150, 'src': 149, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2599] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2598] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2599] = {6'd20, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '<', 'type': 'int', 'size': 2} |
instructions[2600] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2601] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17865328, 'op': 'memory_read_request'} |
instructions[2602] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2603] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17865328, 'op': 'memory_read_wait'} |
instructions[2604] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17865328, 'element_size': 2, 'op': 'memory_read'} |
instructions[2605] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2601] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2602] = {6'd13, 8'd0, 8'd139, 32'd2622};//{'src': 139, 'label': 2622, 'op': 'jmp_if_false'} |
instructions[2603] = {6'd1, 8'd8, 8'd0, 32'd54};//{'dest': 8, 'label': 54, 'op': 'jmp_and_link'} |
instructions[2604] = {6'd3, 8'd139, 8'd9, 32'd0};//{'dest': 139, 'src': 9, 'op': 'move'} |
instructions[2605] = {6'd3, 8'd140, 8'd126, 32'd0};//{'dest': 140, 'src': 126, 'op': 'move'} |
instructions[2606] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2607] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2608] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2608] = {6'd11, 8'd141, 8'd140, 32'd123};//{'dest': 141, 'src': 140, 'srcb': 123, 'signed': False, 'op': '+'} |
instructions[2609] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2610] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2611] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2612] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2613] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2614] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2615] = {6'd11, 8'd150, 8'd149, 32'd85};//{'dest': 150, 'src': 149, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2611] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2612] = {6'd3, 8'd139, 8'd126, 32'd0};//{'dest': 139, 'src': 126, 'op': 'move'} |
instructions[2613] = {6'd14, 8'd126, 8'd126, 32'd1};//{'src': 126, 'right': 1, 'dest': 126, 'signed': False, 'op': '+', 'size': 2} |
instructions[2614] = {6'd3, 8'd140, 8'd125, 32'd0};//{'dest': 140, 'src': 125, 'op': 'move'} |
instructions[2615] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2616] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2617] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2618] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17865760, 'op': 'memory_read_request'} |
instructions[2617] = {6'd14, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '+', 'type': 'int', 'size': 2} |
instructions[2618] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2619] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2620] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17865760, 'op': 'memory_read_wait'} |
instructions[2621] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17865760, 'element_size': 2, 'op': 'memory_read'} |
instructions[2622] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2620] = {6'd3, 8'd125, 8'd139, 32'd0};//{'dest': 125, 'src': 139, 'op': 'move'} |
instructions[2621] = {6'd15, 8'd0, 8'd0, 32'd2593};//{'label': 2593, 'op': 'goto'} |
instructions[2622] = {6'd3, 8'd139, 8'd127, 32'd0};//{'dest': 139, 'src': 127, 'op': 'move'} |
instructions[2623] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2624] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2625] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2626] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2627] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2628] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2629] = {6'd3, 8'd25, 8'd85, 32'd0};//{'dest': 25, 'src': 85, 'op': 'move'} |
instructions[2630] = {6'd3, 8'd26, 8'd84, 32'd0};//{'dest': 26, 'src': 84, 'op': 'move'} |
instructions[2631] = {6'd3, 8'd27, 8'd136, 32'd0};//{'dest': 27, 'src': 136, 'op': 'move'} |
instructions[2632] = {6'd1, 8'd23, 8'd0, 32'd102};//{'dest': 23, 'label': 102, 'op': 'jmp_and_link'} |
instructions[2633] = {6'd3, 8'd148, 8'd24, 32'd0};//{'dest': 148, 'src': 24, 'op': 'move'} |
instructions[2634] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2635] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2636] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2637] = {6'd3, 8'd89, 8'd148, 32'd0};//{'dest': 89, 'src': 148, 'op': 'move'} |
instructions[2638] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2625] = {6'd3, 8'd122, 8'd139, 32'd0};//{'dest': 122, 'src': 139, 'op': 'move'} |
instructions[2626] = {6'd6, 8'd0, 8'd121, 32'd0};//{'src': 121, 'op': 'jmp_to_reg'} |
instructions[2627] = {6'd0, 8'd129, 8'd0, 32'd638};//{'dest': 129, 'literal': 638, 'op': 'literal'} |
instructions[2628] = {6'd0, 8'd130, 8'd0, 32'd1662};//{'dest': 130, 'literal': 1662, 'op': 'literal'} |
instructions[2629] = {6'd0, 8'd131, 8'd0, 32'd27};//{'dest': 131, 'literal': 27, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2630] = {6'd0, 8'd132, 8'd0, 32'd0};//{'dest': 132, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2631] = {6'd0, 8'd133, 8'd0, 32'd0};//{'dest': 133, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2632] = {6'd0, 8'd134, 8'd0, 32'd0};//{'dest': 134, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2633] = {6'd0, 8'd135, 8'd0, 32'd0};//{'dest': 135, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2634] = {6'd0, 8'd136, 8'd0, 32'd0};//{'dest': 136, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2635] = {6'd0, 8'd137, 8'd0, 32'd0};//{'dest': 137, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2636] = {6'd0, 8'd138, 8'd0, 32'd0};//{'dest': 138, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2637] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2638] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2639] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2640] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2641] = {6'd3, 8'd92, 8'd148, 32'd0};//{'dest': 92, 'src': 148, 'op': 'move'} |
instructions[2642] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2643] = {6'd3, 8'd104, 8'd136, 32'd0};//{'dest': 104, 'src': 136, 'op': 'move'} |
instructions[2644] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2645] = {6'd15, 8'd0, 8'd0, 32'd2667};//{'label': 2667, 'op': 'goto'} |
instructions[2646] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2647] = {6'd3, 8'd104, 8'd136, 32'd0};//{'dest': 104, 'src': 136, 'op': 'move'} |
instructions[2648] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2649] = {6'd15, 8'd0, 8'd0, 32'd2667};//{'label': 2667, 'op': 'goto'} |
instructions[2650] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2641] = {6'd27, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': True, 'op': '+'} |
instructions[2642] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2643] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2644] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2645] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2646] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2647] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2648] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2649] = {6'd27, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': True, 'op': '+'} |
instructions[2650] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2651] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2652] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2653] = {6'd3, 8'd88, 8'd148, 32'd0};//{'dest': 88, 'src': 148, 'op': 'move'} |
instructions[2654] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2652] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2653] = {6'd3, 8'd139, 8'd133, 32'd0};//{'dest': 139, 'src': 133, 'op': 'move'} |
instructions[2654] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2655] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2656] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2657] = {6'd3, 8'd92, 8'd148, 32'd0};//{'dest': 92, 'src': 148, 'op': 'move'} |
instructions[2658] = {6'd3, 8'd25, 8'd86, 32'd0};//{'dest': 25, 'src': 86, 'op': 'move'} |
instructions[2659] = {6'd3, 8'd26, 8'd96, 32'd0};//{'dest': 26, 'src': 96, 'op': 'move'} |
instructions[2660] = {6'd0, 8'd27, 8'd0, 32'd1};//{'dest': 27, 'literal': 1, 'op': 'literal'} |
instructions[2661] = {6'd1, 8'd23, 8'd0, 32'd102};//{'dest': 23, 'label': 102, 'op': 'jmp_and_link'} |
instructions[2662] = {6'd3, 8'd148, 8'd24, 32'd0};//{'dest': 148, 'src': 24, 'op': 'move'} |
instructions[2663] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2664] = {6'd0, 8'd104, 8'd0, 32'd0};//{'dest': 104, 'literal': 0, 'op': 'literal'} |
instructions[2665] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2666] = {6'd15, 8'd0, 8'd0, 32'd2667};//{'label': 2667, 'op': 'goto'} |
instructions[2667] = {6'd0, 8'd148, 8'd0, 32'd10000};//{'dest': 148, 'literal': 10000, 'op': 'literal'} |
instructions[2668] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2656] = {6'd13, 8'd0, 8'd139, 32'd2660};//{'src': 139, 'label': 2660, 'op': 'jmp_if_false'} |
instructions[2657] = {6'd3, 8'd139, 8'd133, 32'd0};//{'dest': 139, 'src': 133, 'op': 'move'} |
instructions[2658] = {6'd35, 8'd133, 8'd133, 32'd1};//{'src': 133, 'right': 1, 'dest': 133, 'signed': False, 'op': '-', 'size': 2} |
instructions[2659] = {6'd15, 8'd0, 8'd0, 32'd2693};//{'label': 2693, 'op': 'goto'} |
instructions[2660] = {6'd0, 8'd139, 8'd0, 32'd120};//{'dest': 139, 'literal': 120, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2661] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2662] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2663] = {6'd3, 8'd133, 8'd139, 32'd0};//{'dest': 133, 'src': 139, 'op': 'move'} |
instructions[2664] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2665] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2666] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2667] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[2668] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2669] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2670] = {6'd3, 8'd138, 8'd148, 32'd0};//{'dest': 138, 'src': 148, 'op': 'move'} |
instructions[2671] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2672] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2673] = {6'd3, 8'd148, 8'd138, 32'd0};//{'dest': 148, 'src': 138, 'op': 'move'} |
instructions[2670] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2671] = {6'd3, 8'd84, 8'd139, 32'd0};//{'dest': 84, 'src': 139, 'op': 'move'} |
instructions[2672] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2673] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2674] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2675] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2676] = {6'd13, 8'd0, 8'd148, 32'd3023};//{'src': 148, 'label': 3023, 'op': 'jmp_if_false'} |
instructions[2677] = {6'd3, 8'd112, 8'd133, 32'd0};//{'dest': 112, 'src': 133, 'op': 'move'} |
instructions[2678] = {6'd1, 8'd110, 8'd0, 32'd1985};//{'dest': 110, 'label': 1985, 'op': 'jmp_and_link'} |
instructions[2679] = {6'd3, 8'd148, 8'd111, 32'd0};//{'dest': 148, 'src': 111, 'op': 'move'} |
instructions[2680] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2675] = {6'd3, 8'd83, 8'd139, 32'd0};//{'dest': 83, 'src': 139, 'op': 'move'} |
instructions[2676] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2677] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2678] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2679] = {6'd3, 8'd87, 8'd139, 32'd0};//{'dest': 87, 'src': 139, 'op': 'move'} |
instructions[2680] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2681] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2682] = {6'd3, 8'd139, 8'd148, 32'd0};//{'dest': 139, 'src': 148, 'op': 'move'} |
instructions[2683] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2684] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2685] = {6'd3, 8'd148, 8'd139, 32'd0};//{'dest': 148, 'src': 139, 'op': 'move'} |
instructions[2682] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2683] = {6'd3, 8'd85, 8'd139, 32'd0};//{'dest': 85, 'src': 139, 'op': 'move'} |
instructions[2684] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2685] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2686] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2687] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2688] = {6'd13, 8'd0, 8'd148, 32'd2694};//{'src': 148, 'label': 2694, 'op': 'jmp_if_false'} |
instructions[2689] = {6'd3, 8'd149, 8'd95, 32'd0};//{'dest': 149, 'src': 95, 'op': 'move'} |
instructions[2690] = {6'd3, 8'd150, 8'd15, 32'd0};//{'dest': 150, 'src': 15, 'op': 'move'} |
instructions[2691] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2692] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2693] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[2687] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[2688] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2689] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2690] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2691] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[2692] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[2693] = {6'd3, 8'd139, 8'd138, 32'd0};//{'dest': 139, 'src': 138, 'op': 'move'} |
instructions[2694] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2695] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2696] = {6'd13, 8'd0, 8'd148, 32'd3016};//{'src': 148, 'label': 3016, 'op': 'jmp_if_false'} |
instructions[2697] = {6'd3, 8'd149, 8'd147, 32'd0};//{'dest': 149, 'src': 147, 'op': 'move'} |
instructions[2698] = {6'd3, 8'd150, 8'd142, 32'd0};//{'dest': 150, 'src': 142, 'op': 'move'} |
instructions[2699] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2700] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2701] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[2696] = {6'd39, 8'd140, 8'd139, 32'd0};//{'src': 139, 'right': 0, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2697] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2698] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2699] = {6'd22, 8'd0, 8'd140, 32'd2716};//{'src': 140, 'label': 2716, 'op': 'jmp_if_true'} |
instructions[2700] = {6'd39, 8'd140, 8'd139, 32'd1};//{'src': 139, 'right': 1, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2701] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2702] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2703] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2704] = {6'd13, 8'd0, 8'd148, 32'd2710};//{'src': 148, 'label': 2710, 'op': 'jmp_if_false'} |
instructions[2705] = {6'd3, 8'd149, 8'd94, 32'd0};//{'dest': 149, 'src': 94, 'op': 'move'} |
instructions[2706] = {6'd3, 8'd150, 8'd83, 32'd0};//{'dest': 150, 'src': 83, 'op': 'move'} |
instructions[2707] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2708] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2709] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[2703] = {6'd22, 8'd0, 8'd140, 32'd2733};//{'src': 140, 'label': 2733, 'op': 'jmp_if_true'} |
instructions[2704] = {6'd39, 8'd140, 8'd139, 32'd2};//{'src': 139, 'right': 2, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2705] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2706] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2707] = {6'd22, 8'd0, 8'd140, 32'd2799};//{'src': 140, 'label': 2799, 'op': 'jmp_if_true'} |
instructions[2708] = {6'd39, 8'd140, 8'd139, 32'd3};//{'src': 139, 'right': 3, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2709] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2710] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2711] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2712] = {6'd13, 8'd0, 8'd148, 32'd2715};//{'src': 148, 'label': 2715, 'op': 'jmp_if_false'} |
instructions[2713] = {6'd15, 8'd0, 8'd0, 32'd3020};//{'label': 3020, 'op': 'goto'} |
instructions[2714] = {6'd15, 8'd0, 8'd0, 32'd2715};//{'label': 2715, 'op': 'goto'} |
instructions[2715] = {6'd0, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'literal': 0, 'op': 'literal'} |
instructions[2716] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2711] = {6'd22, 8'd0, 8'd140, 32'd2878};//{'src': 140, 'label': 2878, 'op': 'jmp_if_true'} |
instructions[2712] = {6'd39, 8'd140, 8'd139, 32'd4};//{'src': 139, 'right': 4, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2713] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2714] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2715] = {6'd22, 8'd0, 8'd140, 32'd2888};//{'src': 140, 'label': 2888, 'op': 'jmp_if_true'} |
instructions[2716] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2717] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2718] = {6'd3, 8'd141, 8'd148, 32'd0};//{'dest': 141, 'src': 148, 'op': 'move'} |
instructions[2719] = {6'd3, 8'd148, 8'd147, 32'd0};//{'dest': 148, 'src': 147, 'op': 'move'} |
instructions[2720] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2718] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2719] = {6'd3, 8'd85, 8'd139, 32'd0};//{'dest': 85, 'src': 139, 'op': 'move'} |
instructions[2720] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2721] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2722] = {6'd3, 8'd140, 8'd148, 32'd0};//{'dest': 140, 'src': 148, 'op': 'move'} |
instructions[2723] = {6'd3, 8'd148, 8'd147, 32'd0};//{'dest': 148, 'src': 147, 'op': 'move'} |
instructions[2724] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2722] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2723] = {6'd3, 8'd84, 8'd139, 32'd0};//{'dest': 84, 'src': 139, 'op': 'move'} |
instructions[2724] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2725] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2726] = {6'd38, 8'd149, 8'd148, 32'd0};//{'dest': 149, 'src': 148, 'right': 0, 'signed': True, 'op': '=='} |
instructions[2727] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2728] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2729] = {6'd22, 8'd0, 8'd149, 32'd2746};//{'src': 149, 'label': 2746, 'op': 'jmp_if_true'} |
instructions[2730] = {6'd38, 8'd149, 8'd148, 32'd1};//{'dest': 149, 'src': 148, 'right': 1, 'signed': True, 'op': '=='} |
instructions[2731] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2732] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2733] = {6'd22, 8'd0, 8'd149, 32'd2763};//{'src': 149, 'label': 2763, 'op': 'jmp_if_true'} |
instructions[2734] = {6'd38, 8'd149, 8'd148, 32'd2};//{'dest': 149, 'src': 148, 'right': 2, 'signed': True, 'op': '=='} |
instructions[2726] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2727] = {6'd3, 8'd83, 8'd139, 32'd0};//{'dest': 83, 'src': 139, 'op': 'move'} |
instructions[2728] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2729] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2730] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2731] = {6'd3, 8'd87, 8'd139, 32'd0};//{'dest': 87, 'src': 139, 'op': 'move'} |
instructions[2732] = {6'd15, 8'd0, 8'd0, 32'd2920};//{'label': 2920, 'op': 'goto'} |
instructions[2733] = {6'd0, 8'd140, 8'd0, 32'd13};//{'dest': 140, 'literal': 13, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2734] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2735] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2736] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2737] = {6'd22, 8'd0, 8'd149, 32'd2841};//{'src': 149, 'label': 2841, 'op': 'jmp_if_true'} |
instructions[2738] = {6'd38, 8'd149, 8'd148, 32'd3};//{'dest': 149, 'src': 148, 'right': 3, 'signed': True, 'op': '=='} |
instructions[2739] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2736] = {6'd11, 8'd141, 8'd140, 32'd129};//{'dest': 141, 'src': 140, 'srcb': 129, 'signed': False, 'op': '+'} |
instructions[2737] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2738] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2739] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20115968, 'op': 'memory_read_request'} |
instructions[2740] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2741] = {6'd22, 8'd0, 8'd149, 32'd2868};//{'src': 149, 'label': 2868, 'op': 'jmp_if_true'} |
instructions[2742] = {6'd38, 8'd149, 8'd148, 32'd4};//{'dest': 149, 'src': 148, 'right': 4, 'signed': True, 'op': '=='} |
instructions[2741] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20115968, 'op': 'memory_read_wait'} |
instructions[2742] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20115968, 'element_size': 2, 'op': 'memory_read'} |
instructions[2743] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2744] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2745] = {6'd22, 8'd0, 8'd149, 32'd2947};//{'src': 149, 'label': 2947, 'op': 'jmp_if_true'} |
instructions[2746] = {6'd3, 8'd148, 8'd99, 32'd0};//{'dest': 148, 'src': 99, 'op': 'move'} |
instructions[2745] = {6'd3, 8'd75, 8'd139, 32'd0};//{'dest': 75, 'src': 139, 'op': 'move'} |
instructions[2746] = {6'd0, 8'd140, 8'd0, 32'd14};//{'dest': 140, 'literal': 14, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2747] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2748] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2749] = {6'd13, 8'd0, 8'd148, 32'd2755};//{'src': 148, 'label': 2755, 'op': 'jmp_if_false'} |
instructions[2750] = {6'd3, 8'd148, 8'd143, 32'd0};//{'dest': 148, 'src': 143, 'op': 'move'} |
instructions[2749] = {6'd11, 8'd141, 8'd140, 32'd129};//{'dest': 141, 'src': 140, 'srcb': 129, 'signed': False, 'op': '+'} |
instructions[2750] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2751] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2752] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2753] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2754] = {6'd15, 8'd0, 8'd0, 32'd2762};//{'label': 2762, 'op': 'goto'} |
instructions[2755] = {6'd0, 8'd148, 8'd0, 32'd1};//{'dest': 148, 'literal': 1, 'op': 'literal'} |
instructions[2752] = {6'd17, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20116328, 'op': 'memory_read_request'} |
instructions[2753] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2754] = {6'd18, 8'd0, 8'd141, 32'd0};//{'element_size': 2, 'src': 141, 'sequence': 20116328, 'op': 'memory_read_wait'} |
instructions[2755] = {6'd19, 8'd139, 8'd141, 32'd0};//{'dest': 139, 'src': 141, 'sequence': 20116328, 'element_size': 2, 'op': 'memory_read'} |
instructions[2756] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2757] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2758] = {6'd3, 8'd90, 8'd148, 32'd0};//{'dest': 90, 'src': 148, 'op': 'move'} |
instructions[2759] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2760] = {6'd0, 8'd104, 8'd0, 32'd0};//{'dest': 104, 'literal': 0, 'op': 'literal'} |
instructions[2761] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2762] = {6'd15, 8'd0, 8'd0, 32'd2957};//{'label': 2957, 'op': 'goto'} |
instructions[2763] = {6'd3, 8'd148, 8'd101, 32'd0};//{'dest': 148, 'src': 101, 'op': 'move'} |
instructions[2758] = {6'd3, 8'd76, 8'd139, 32'd0};//{'dest': 76, 'src': 139, 'op': 'move'} |
instructions[2759] = {6'd3, 8'd139, 8'd89, 32'd0};//{'dest': 139, 'src': 89, 'op': 'move'} |
instructions[2760] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2761] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2762] = {6'd3, 8'd78, 8'd139, 32'd0};//{'dest': 78, 'src': 139, 'op': 'move'} |
instructions[2763] = {6'd0, 8'd139, 8'd0, 32'd80};//{'dest': 139, 'literal': 80, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2764] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2765] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2766] = {6'd13, 8'd0, 8'd148, 32'd2840};//{'src': 148, 'label': 2840, 'op': 'jmp_if_false'} |
instructions[2767] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2766] = {6'd3, 8'd77, 8'd139, 32'd0};//{'dest': 77, 'src': 139, 'op': 'move'} |
instructions[2767] = {6'd3, 8'd142, 8'd81, 32'd0};//{'dest': 142, 'src': 81, 'op': 'move'} |
instructions[2768] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2769] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2770] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2771] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2770] = {6'd3, 8'd19, 8'd142, 32'd0};//{'dest': 19, 'src': 142, 'op': 'move'} |
instructions[2771] = {6'd3, 8'd142, 8'd91, 32'd0};//{'dest': 142, 'src': 91, 'op': 'move'} |
instructions[2772] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2773] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17858640, 'op': 'memory_read_request'} |
instructions[2774] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2775] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17858640, 'op': 'memory_read_wait'} |
instructions[2776] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17858640, 'element_size': 2, 'op': 'memory_read'} |
instructions[2777] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2778] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2779] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2780] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2781] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2773] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2774] = {6'd3, 8'd20, 8'd142, 32'd0};//{'dest': 20, 'src': 142, 'op': 'move'} |
instructions[2775] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2776] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2777] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2778] = {6'd3, 8'd21, 8'd140, 32'd0};//{'dest': 21, 'src': 140, 'op': 'move'} |
instructions[2779] = {6'd1, 8'd17, 8'd0, 32'd108};//{'dest': 17, 'label': 108, 'op': 'jmp_and_link'} |
instructions[2780] = {6'd3, 8'd139, 8'd18, 32'd0};//{'dest': 139, 'src': 18, 'op': 'move'} |
instructions[2781] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2782] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2783] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2784] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2785] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2783] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2784] = {6'd3, 8'd84, 8'd139, 32'd0};//{'dest': 84, 'src': 139, 'op': 'move'} |
instructions[2785] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2786] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2787] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2788] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2789] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2790] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859072, 'op': 'memory_read_request'} |
instructions[2787] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2788] = {6'd3, 8'd87, 8'd139, 32'd0};//{'dest': 87, 'src': 139, 'op': 'move'} |
instructions[2789] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2790] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2791] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2792] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859072, 'op': 'memory_read_wait'} |
instructions[2793] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17859072, 'element_size': 2, 'op': 'memory_read'} |
instructions[2794] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2792] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[2793] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2794] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2795] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2796] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2797] = {6'd11, 8'd150, 8'd149, 32'd84};//{'dest': 150, 'src': 149, 'srcb': 84, 'signed': False, 'op': '+'} |
instructions[2798] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2799] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2800] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2801] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2802] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2803] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2804] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2796] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[2797] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[2798] = {6'd15, 8'd0, 8'd0, 32'd2920};//{'label': 2920, 'op': 'goto'} |
instructions[2799] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2800] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2801] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2802] = {6'd3, 8'd123, 8'd150, 32'd0};//{'dest': 123, 'src': 150, 'op': 'move'} |
instructions[2803] = {6'd3, 8'd140, 8'd131, 32'd0};//{'dest': 140, 'src': 131, 'op': 'move'} |
instructions[2804] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2805] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2806] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2807] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859504, 'op': 'memory_read_request'} |
instructions[2808] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2809] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859504, 'op': 'memory_read_wait'} |
instructions[2810] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17859504, 'element_size': 2, 'op': 'memory_read'} |
instructions[2811] = {6'd0, 8'd149, 8'd0, 32'd1};//{'dest': 149, 'literal': 1, 'op': 'literal'} |
instructions[2812] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2806] = {6'd3, 8'd124, 8'd140, 32'd0};//{'dest': 124, 'src': 140, 'op': 'move'} |
instructions[2807] = {6'd1, 8'd121, 8'd0, 32'd2564};//{'dest': 121, 'label': 2564, 'op': 'jmp_and_link'} |
instructions[2808] = {6'd3, 8'd139, 8'd122, 32'd0};//{'dest': 139, 'src': 122, 'op': 'move'} |
instructions[2809] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2810] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2811] = {6'd3, 8'd132, 8'd139, 32'd0};//{'dest': 132, 'src': 139, 'op': 'move'} |
instructions[2812] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2813] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2814] = {6'd11, 8'd150, 8'd149, 32'd85};//{'dest': 150, 'src': 149, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2815] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2814] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2815] = {6'd11, 8'd146, 8'd145, 32'd80};//{'dest': 146, 'src': 145, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[2816] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2817] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2818] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2817] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2818] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20119424, 'op': 'memory_read_request'} |
instructions[2819] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2820] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2821] = {6'd11, 8'd150, 8'd149, 32'd97};//{'dest': 150, 'src': 149, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2822] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2820] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20119424, 'op': 'memory_read_wait'} |
instructions[2821] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20119424, 'element_size': 2, 'op': 'memory_read'} |
instructions[2822] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2823] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2824] = {6'd17, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859936, 'op': 'memory_read_request'} |
instructions[2825] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2826] = {6'd18, 8'd0, 8'd150, 32'd0};//{'element_size': 2, 'src': 150, 'sequence': 17859936, 'op': 'memory_read_wait'} |
instructions[2827] = {6'd19, 8'd148, 8'd150, 32'd0};//{'dest': 148, 'src': 150, 'sequence': 17859936, 'element_size': 2, 'op': 'memory_read'} |
instructions[2828] = {6'd0, 8'd149, 8'd0, 32'd0};//{'dest': 149, 'literal': 0, 'op': 'literal'} |
instructions[2829] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2824] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2825] = {6'd11, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[2826] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2827] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2828] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2829] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2830] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2831] = {6'd11, 8'd150, 8'd149, 32'd85};//{'dest': 150, 'src': 149, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2832] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2831] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2832] = {6'd11, 8'd146, 8'd145, 32'd80};//{'dest': 146, 'src': 145, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[2833] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2834] = {6'd23, 8'd0, 8'd150, 32'd148};//{'srcb': 148, 'src': 150, 'element_size': 2, 'op': 'memory_write'} |
instructions[2835] = {6'd3, 8'd148, 8'd144, 32'd0};//{'dest': 148, 'src': 144, 'op': 'move'} |
instructions[2834] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2835] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20054384, 'op': 'memory_read_request'} |
instructions[2836] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2837] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2838] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2839] = {6'd15, 8'd0, 8'd0, 32'd2840};//{'label': 2840, 'op': 'goto'} |
instructions[2840] = {6'd15, 8'd0, 8'd0, 32'd2957};//{'label': 2957, 'op': 'goto'} |
instructions[2841] = {6'd3, 8'd25, 8'd86, 32'd0};//{'dest': 25, 'src': 86, 'op': 'move'} |
instructions[2842] = {6'd3, 8'd26, 8'd96, 32'd0};//{'dest': 26, 'src': 96, 'op': 'move'} |
instructions[2843] = {6'd3, 8'd27, 8'd108, 32'd0};//{'dest': 27, 'src': 108, 'op': 'move'} |
instructions[2844] = {6'd1, 8'd23, 8'd0, 32'd102};//{'dest': 23, 'label': 102, 'op': 'jmp_and_link'} |
instructions[2845] = {6'd3, 8'd148, 8'd24, 32'd0};//{'dest': 148, 'src': 24, 'op': 'move'} |
instructions[2846] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2837] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20054384, 'op': 'memory_read_wait'} |
instructions[2838] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20054384, 'element_size': 2, 'op': 'memory_read'} |
instructions[2839] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2840] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2841] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2842] = {6'd11, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[2843] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2844] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2845] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[2846] = {6'd3, 8'd142, 8'd80, 32'd0};//{'dest': 142, 'src': 80, 'op': 'move'} |
instructions[2847] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2848] = {6'd3, 8'd141, 8'd148, 32'd0};//{'dest': 141, 'src': 148, 'op': 'move'} |
instructions[2849] = {6'd3, 8'd148, 8'd98, 32'd0};//{'dest': 148, 'src': 98, 'op': 'move'} |
instructions[2850] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2848] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2849] = {6'd3, 8'd19, 8'd142, 32'd0};//{'dest': 19, 'src': 142, 'op': 'move'} |
instructions[2850] = {6'd3, 8'd142, 8'd79, 32'd0};//{'dest': 142, 'src': 79, 'op': 'move'} |
instructions[2851] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2852] = {6'd13, 8'd0, 8'd148, 32'd2858};//{'src': 148, 'label': 2858, 'op': 'jmp_if_false'} |
instructions[2853] = {6'd3, 8'd148, 8'd146, 32'd0};//{'dest': 148, 'src': 146, 'op': 'move'} |
instructions[2854] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2852] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2853] = {6'd3, 8'd20, 8'd142, 32'd0};//{'dest': 20, 'src': 142, 'op': 'move'} |
instructions[2854] = {6'd3, 8'd140, 8'd132, 32'd0};//{'dest': 140, 'src': 132, 'op': 'move'} |
instructions[2855] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2856] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2857] = {6'd15, 8'd0, 8'd0, 32'd2867};//{'label': 2867, 'op': 'goto'} |
instructions[2858] = {6'd3, 8'd148, 8'd136, 32'd0};//{'dest': 148, 'src': 136, 'op': 'move'} |
instructions[2859] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2860] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2861] = {6'd13, 8'd0, 8'd148, 32'd2867};//{'src': 148, 'label': 2867, 'op': 'jmp_if_false'} |
instructions[2862] = {6'd3, 8'd148, 8'd145, 32'd0};//{'dest': 148, 'src': 145, 'op': 'move'} |
instructions[2863] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2864] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2865] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2866] = {6'd15, 8'd0, 8'd0, 32'd2867};//{'label': 2867, 'op': 'goto'} |
instructions[2867] = {6'd15, 8'd0, 8'd0, 32'd2957};//{'label': 2957, 'op': 'goto'} |
instructions[2868] = {6'd3, 8'd25, 8'd86, 32'd0};//{'dest': 25, 'src': 86, 'op': 'move'} |
instructions[2869] = {6'd3, 8'd26, 8'd96, 32'd0};//{'dest': 26, 'src': 96, 'op': 'move'} |
instructions[2870] = {6'd3, 8'd27, 8'd108, 32'd0};//{'dest': 27, 'src': 108, 'op': 'move'} |
instructions[2871] = {6'd1, 8'd23, 8'd0, 32'd102};//{'dest': 23, 'label': 102, 'op': 'jmp_and_link'} |
instructions[2872] = {6'd3, 8'd148, 8'd24, 32'd0};//{'dest': 148, 'src': 24, 'op': 'move'} |
instructions[2856] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2857] = {6'd3, 8'd21, 8'd140, 32'd0};//{'dest': 21, 'src': 140, 'op': 'move'} |
instructions[2858] = {6'd1, 8'd17, 8'd0, 32'd108};//{'dest': 17, 'label': 108, 'op': 'jmp_and_link'} |
instructions[2859] = {6'd3, 8'd139, 8'd18, 32'd0};//{'dest': 139, 'src': 18, 'op': 'move'} |
instructions[2860] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2861] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2862] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2863] = {6'd3, 8'd84, 8'd139, 32'd0};//{'dest': 84, 'src': 139, 'op': 'move'} |
instructions[2864] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2865] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2866] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2867] = {6'd3, 8'd87, 8'd139, 32'd0};//{'dest': 87, 'src': 139, 'op': 'move'} |
instructions[2868] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2869] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2870] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2871] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[2872] = {6'd3, 8'd140, 8'd132, 32'd0};//{'dest': 140, 'src': 132, 'op': 'move'} |
instructions[2873] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2874] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2875] = {6'd3, 8'd141, 8'd148, 32'd0};//{'dest': 141, 'src': 148, 'op': 'move'} |
instructions[2876] = {6'd3, 8'd148, 8'd98, 32'd0};//{'dest': 148, 'src': 98, 'op': 'move'} |
instructions[2877] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2878] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2879] = {6'd13, 8'd0, 8'd148, 32'd2885};//{'src': 148, 'label': 2885, 'op': 'jmp_if_false'} |
instructions[2880] = {6'd3, 8'd148, 8'd146, 32'd0};//{'dest': 148, 'src': 146, 'op': 'move'} |
instructions[2881] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2882] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2883] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2884] = {6'd15, 8'd0, 8'd0, 32'd2946};//{'label': 2946, 'op': 'goto'} |
instructions[2885] = {6'd3, 8'd148, 8'd101, 32'd0};//{'dest': 148, 'src': 101, 'op': 'move'} |
instructions[2886] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2887] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2888] = {6'd13, 8'd0, 8'd148, 32'd2912};//{'src': 148, 'label': 2912, 'op': 'jmp_if_false'} |
instructions[2889] = {6'd0, 8'd150, 8'd0, 32'd1};//{'dest': 150, 'literal': 1, 'op': 'literal'} |
instructions[2875] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[2876] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[2877] = {6'd15, 8'd0, 8'd0, 32'd2920};//{'label': 2920, 'op': 'goto'} |
instructions[2878] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2879] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2880] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2881] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[2882] = {6'd3, 8'd140, 8'd132, 32'd0};//{'dest': 140, 'src': 132, 'op': 'move'} |
instructions[2883] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2884] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2885] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[2886] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[2887] = {6'd15, 8'd0, 8'd0, 32'd2920};//{'label': 2920, 'op': 'goto'} |
instructions[2888] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2889] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2890] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2891] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2892] = {6'd11, 8'd151, 8'd150, 32'd85};//{'dest': 151, 'src': 150, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2891] = {6'd3, 8'd83, 8'd139, 32'd0};//{'dest': 83, 'src': 139, 'op': 'move'} |
instructions[2892] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2893] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2894] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2895] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17892704, 'op': 'memory_read_request'} |
instructions[2896] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2897] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17892704, 'op': 'memory_read_wait'} |
instructions[2898] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17892704, 'element_size': 2, 'op': 'memory_read'} |
instructions[2899] = {6'd0, 8'd151, 8'd0, 32'd1};//{'dest': 151, 'literal': 1, 'op': 'literal'} |
instructions[2900] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2895] = {6'd3, 8'd87, 8'd139, 32'd0};//{'dest': 87, 'src': 139, 'op': 'move'} |
instructions[2896] = {6'd3, 8'd142, 8'd81, 32'd0};//{'dest': 142, 'src': 81, 'op': 'move'} |
instructions[2897] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2898] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2899] = {6'd3, 8'd19, 8'd142, 32'd0};//{'dest': 19, 'src': 142, 'op': 'move'} |
instructions[2900] = {6'd3, 8'd142, 8'd91, 32'd0};//{'dest': 142, 'src': 91, 'op': 'move'} |
instructions[2901] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2902] = {6'd11, 8'd152, 8'd151, 32'd97};//{'dest': 152, 'src': 151, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2903] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2904] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2905] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17892848, 'op': 'memory_read_request'} |
instructions[2902] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2903] = {6'd3, 8'd20, 8'd142, 32'd0};//{'dest': 20, 'src': 142, 'op': 'move'} |
instructions[2904] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2905] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2906] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2907] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17892848, 'op': 'memory_read_wait'} |
instructions[2908] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 17892848, 'element_size': 2, 'op': 'memory_read'} |
instructions[2909] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2910] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2911] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[2907] = {6'd3, 8'd21, 8'd140, 32'd0};//{'dest': 21, 'src': 140, 'op': 'move'} |
instructions[2908] = {6'd1, 8'd17, 8'd0, 32'd108};//{'dest': 17, 'label': 108, 'op': 'jmp_and_link'} |
instructions[2909] = {6'd3, 8'd139, 8'd18, 32'd0};//{'dest': 139, 'src': 18, 'op': 'move'} |
instructions[2910] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[2911] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2912] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2913] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2914] = {6'd13, 8'd0, 8'd148, 32'd2938};//{'src': 148, 'label': 2938, 'op': 'jmp_if_false'} |
instructions[2915] = {6'd0, 8'd150, 8'd0, 32'd0};//{'dest': 150, 'literal': 0, 'op': 'literal'} |
instructions[2913] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[2914] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2915] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2916] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2917] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2918] = {6'd11, 8'd151, 8'd150, 32'd85};//{'dest': 151, 'src': 150, 'srcb': 85, 'signed': False, 'op': '+'} |
instructions[2919] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2920] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2921] = {6'd17, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17893136, 'op': 'memory_read_request'} |
instructions[2917] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[2918] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[2919] = {6'd15, 8'd0, 8'd0, 32'd2920};//{'label': 2920, 'op': 'goto'} |
instructions[2920] = {6'd0, 8'd139, 8'd0, 32'd10000};//{'dest': 139, 'literal': 10000, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2921] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2922] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2923] = {6'd18, 8'd0, 8'd151, 32'd0};//{'element_size': 2, 'src': 151, 'sequence': 17893136, 'op': 'memory_read_wait'} |
instructions[2924] = {6'd19, 8'd149, 8'd151, 32'd0};//{'dest': 149, 'src': 151, 'sequence': 17893136, 'element_size': 2, 'op': 'memory_read'} |
instructions[2925] = {6'd0, 8'd151, 8'd0, 32'd0};//{'dest': 151, 'literal': 0, 'op': 'literal'} |
instructions[2926] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2923] = {6'd3, 8'd134, 8'd139, 32'd0};//{'dest': 134, 'src': 139, 'op': 'move'} |
instructions[2924] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2925] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2926] = {6'd3, 8'd139, 8'd134, 32'd0};//{'dest': 139, 'src': 134, 'op': 'move'} |
instructions[2927] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2928] = {6'd11, 8'd152, 8'd151, 32'd97};//{'dest': 152, 'src': 151, 'srcb': 97, 'signed': False, 'op': '+'} |
instructions[2929] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2930] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2931] = {6'd17, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17893280, 'op': 'memory_read_request'} |
instructions[2928] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2929] = {6'd13, 8'd0, 8'd139, 32'd3315};//{'src': 139, 'label': 3315, 'op': 'jmp_if_false'} |
instructions[2930] = {6'd3, 8'd150, 8'd129, 32'd0};//{'dest': 150, 'src': 129, 'op': 'move'} |
instructions[2931] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2932] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2933] = {6'd18, 8'd0, 8'd152, 32'd0};//{'element_size': 2, 'src': 152, 'sequence': 17893280, 'op': 'memory_read_wait'} |
instructions[2934] = {6'd19, 8'd150, 8'd152, 32'd0};//{'dest': 150, 'src': 152, 'sequence': 17893280, 'element_size': 2, 'op': 'memory_read'} |
instructions[2935] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2933] = {6'd3, 8'd108, 8'd150, 32'd0};//{'dest': 108, 'src': 150, 'op': 'move'} |
instructions[2934] = {6'd1, 8'd106, 8'd0, 32'd2162};//{'dest': 106, 'label': 2162, 'op': 'jmp_and_link'} |
instructions[2935] = {6'd3, 8'd139, 8'd107, 32'd0};//{'dest': 139, 'src': 107, 'op': 'move'} |
instructions[2936] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2937] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[2938] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2937] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2938] = {6'd3, 8'd135, 8'd139, 32'd0};//{'dest': 135, 'src': 139, 'op': 'move'} |
instructions[2939] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2940] = {6'd13, 8'd0, 8'd148, 32'd2946};//{'src': 148, 'label': 2946, 'op': 'jmp_if_false'} |
instructions[2941] = {6'd3, 8'd148, 8'd144, 32'd0};//{'dest': 148, 'src': 144, 'op': 'move'} |
instructions[2940] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2941] = {6'd3, 8'd139, 8'd135, 32'd0};//{'dest': 139, 'src': 135, 'op': 'move'} |
instructions[2942] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2943] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2944] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2945] = {6'd15, 8'd0, 8'd0, 32'd2946};//{'label': 2946, 'op': 'goto'} |
instructions[2946] = {6'd15, 8'd0, 8'd0, 32'd2957};//{'label': 2957, 'op': 'goto'} |
instructions[2947] = {6'd3, 8'd148, 8'd101, 32'd0};//{'dest': 148, 'src': 101, 'op': 'move'} |
instructions[2948] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2944] = {6'd13, 8'd0, 8'd139, 32'd2949};//{'src': 139, 'label': 2949, 'op': 'jmp_if_false'} |
instructions[2945] = {6'd3, 8'd140, 8'd90, 32'd0};//{'dest': 140, 'src': 90, 'op': 'move'} |
instructions[2946] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2947] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2948] = {6'd25, 8'd139, 8'd140, 32'd80};//{'src': 140, 'right': 80, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[2949] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2950] = {6'd13, 8'd0, 8'd148, 32'd2956};//{'src': 148, 'label': 2956, 'op': 'jmp_if_false'} |
instructions[2951] = {6'd3, 8'd148, 8'd142, 32'd0};//{'dest': 148, 'src': 142, 'op': 'move'} |
instructions[2952] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2950] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2951] = {6'd13, 8'd0, 8'd139, 32'd3308};//{'src': 139, 'label': 3308, 'op': 'jmp_if_false'} |
instructions[2952] = {6'd3, 8'd140, 8'd138, 32'd0};//{'dest': 140, 'src': 138, 'op': 'move'} |
instructions[2953] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2954] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2955] = {6'd15, 8'd0, 8'd0, 32'd2956};//{'label': 2956, 'op': 'goto'} |
instructions[2956] = {6'd15, 8'd0, 8'd0, 32'd2957};//{'label': 2957, 'op': 'goto'} |
instructions[2957] = {6'd3, 8'd148, 8'd100, 32'd0};//{'dest': 148, 'src': 100, 'op': 'move'} |
instructions[2958] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2959] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2960] = {6'd13, 8'd0, 8'd148, 32'd2966};//{'src': 148, 'label': 2966, 'op': 'jmp_if_false'} |
instructions[2961] = {6'd3, 8'd148, 8'd142, 32'd0};//{'dest': 148, 'src': 142, 'op': 'move'} |
instructions[2954] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2955] = {6'd26, 8'd139, 8'd140, 32'd0};//{'src': 140, 'right': 0, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[2956] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2957] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2958] = {6'd13, 8'd0, 8'd139, 32'd2964};//{'src': 139, 'label': 2964, 'op': 'jmp_if_false'} |
instructions[2959] = {6'd3, 8'd140, 8'd89, 32'd0};//{'dest': 140, 'src': 89, 'op': 'move'} |
instructions[2960] = {6'd3, 8'd141, 8'd78, 32'd0};//{'dest': 141, 'src': 78, 'op': 'move'} |
instructions[2961] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2962] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2963] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2964] = {6'd3, 8'd147, 8'd148, 32'd0};//{'dest': 147, 'src': 148, 'op': 'move'} |
instructions[2965] = {6'd15, 8'd0, 8'd0, 32'd2966};//{'label': 2966, 'op': 'goto'} |
instructions[2966] = {6'd3, 8'd148, 8'd141, 32'd0};//{'dest': 148, 'src': 141, 'op': 'move'} |
instructions[2967] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2968] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2969] = {6'd13, 8'd0, 8'd148, 32'd2987};//{'src': 148, 'label': 2987, 'op': 'jmp_if_false'} |
instructions[2970] = {6'd3, 8'd120, 8'd133, 32'd0};//{'dest': 120, 'src': 133, 'op': 'move'} |
instructions[2971] = {6'd3, 8'd121, 8'd109, 32'd0};//{'dest': 121, 'src': 109, 'op': 'move'} |
instructions[2972] = {6'd3, 8'd122, 8'd108, 32'd0};//{'dest': 122, 'src': 108, 'op': 'move'} |
instructions[2973] = {6'd1, 8'd119, 8'd0, 32'd2331};//{'dest': 119, 'label': 2331, 'op': 'jmp_and_link'} |
instructions[2974] = {6'd3, 8'd149, 8'd147, 32'd0};//{'dest': 149, 'src': 147, 'op': 'move'} |
instructions[2975] = {6'd3, 8'd150, 8'd140, 32'd0};//{'dest': 150, 'src': 140, 'op': 'move'} |
instructions[2976] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2977] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2978] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[2963] = {6'd21, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[2964] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2965] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2966] = {6'd13, 8'd0, 8'd139, 32'd2969};//{'src': 139, 'label': 2969, 'op': 'jmp_if_false'} |
instructions[2967] = {6'd15, 8'd0, 8'd0, 32'd3312};//{'label': 3312, 'op': 'goto'} |
instructions[2968] = {6'd15, 8'd0, 8'd0, 32'd2969};//{'label': 2969, 'op': 'goto'} |
instructions[2969] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[2970] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2971] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2972] = {6'd3, 8'd137, 8'd139, 32'd0};//{'dest': 137, 'src': 139, 'op': 'move'} |
instructions[2973] = {6'd3, 8'd139, 8'd138, 32'd0};//{'dest': 139, 'src': 138, 'op': 'move'} |
instructions[2974] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2975] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2976] = {6'd3, 8'd136, 8'd139, 32'd0};//{'dest': 136, 'src': 139, 'op': 'move'} |
instructions[2977] = {6'd3, 8'd139, 8'd138, 32'd0};//{'dest': 139, 'src': 138, 'op': 'move'} |
instructions[2978] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2979] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2980] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2981] = {6'd13, 8'd0, 8'd148, 32'd2986};//{'src': 148, 'label': 2986, 'op': 'jmp_if_false'} |
instructions[2982] = {6'd3, 8'd103, 8'd134, 32'd0};//{'dest': 103, 'src': 134, 'op': 'move'} |
instructions[2983] = {6'd3, 8'd104, 8'd136, 32'd0};//{'dest': 104, 'src': 136, 'op': 'move'} |
instructions[2984] = {6'd1, 8'd102, 8'd0, 32'd1565};//{'dest': 102, 'label': 1565, 'op': 'jmp_and_link'} |
instructions[2985] = {6'd15, 8'd0, 8'd0, 32'd2986};//{'label': 2986, 'op': 'goto'} |
instructions[2986] = {6'd15, 8'd0, 8'd0, 32'd2987};//{'label': 2987, 'op': 'goto'} |
instructions[2987] = {6'd3, 8'd149, 8'd147, 32'd0};//{'dest': 149, 'src': 147, 'op': 'move'} |
instructions[2988] = {6'd3, 8'd150, 8'd144, 32'd0};//{'dest': 150, 'src': 144, 'op': 'move'} |
instructions[2980] = {6'd39, 8'd140, 8'd139, 32'd0};//{'src': 139, 'right': 0, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2981] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2982] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2983] = {6'd22, 8'd0, 8'd140, 32'd3000};//{'src': 140, 'label': 3000, 'op': 'jmp_if_true'} |
instructions[2984] = {6'd39, 8'd140, 8'd139, 32'd1};//{'src': 139, 'right': 1, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2985] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2986] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2987] = {6'd22, 8'd0, 8'd140, 32'd3023};//{'src': 140, 'label': 3023, 'op': 'jmp_if_true'} |
instructions[2988] = {6'd39, 8'd140, 8'd139, 32'd2};//{'src': 139, 'right': 2, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2989] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2990] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2991] = {6'd28, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '=='} |
instructions[2992] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2991] = {6'd22, 8'd0, 8'd140, 32'd3101};//{'src': 140, 'label': 3101, 'op': 'jmp_if_true'} |
instructions[2992] = {6'd39, 8'd140, 8'd139, 32'd3};//{'src': 139, 'right': 3, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2993] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2994] = {6'd13, 8'd0, 8'd148, 32'd2996};//{'src': 148, 'label': 2996, 'op': 'jmp_if_false'} |
instructions[2995] = {6'd37, 8'd148, 8'd0, 32'd0};//{'dest': 148, 'input': 'socket', 'op': 'ready'} |
instructions[2996] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2994] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2995] = {6'd22, 8'd0, 8'd140, 32'd3137};//{'src': 140, 'label': 3137, 'op': 'jmp_if_true'} |
instructions[2996] = {6'd39, 8'd140, 8'd139, 32'd4};//{'src': 139, 'right': 4, 'dest': 140, 'signed': True, 'op': '==', 'size': 2} |
instructions[2997] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2998] = {6'd13, 8'd0, 8'd148, 32'd3001};//{'src': 148, 'label': 3001, 'op': 'jmp_if_false'} |
instructions[2999] = {6'd15, 8'd0, 8'd0, 32'd3023};//{'label': 3023, 'op': 'goto'} |
instructions[3000] = {6'd15, 8'd0, 8'd0, 32'd3001};//{'label': 3001, 'op': 'goto'} |
instructions[3001] = {6'd3, 8'd149, 8'd147, 32'd0};//{'dest': 149, 'src': 147, 'op': 'move'} |
instructions[3002] = {6'd3, 8'd150, 8'd140, 32'd0};//{'dest': 150, 'src': 140, 'op': 'move'} |
instructions[3003] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3004] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3005] = {6'd21, 8'd148, 8'd149, 32'd150};//{'dest': 148, 'src': 149, 'srcb': 150, 'signed': False, 'op': '!='} |
instructions[2998] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[2999] = {6'd22, 8'd0, 8'd140, 32'd3225};//{'src': 140, 'label': 3225, 'op': 'jmp_if_true'} |
instructions[3000] = {6'd3, 8'd139, 8'd94, 32'd0};//{'dest': 139, 'src': 94, 'op': 'move'} |
instructions[3001] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3002] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3003] = {6'd13, 8'd0, 8'd139, 32'd3009};//{'src': 139, 'label': 3009, 'op': 'jmp_if_false'} |
instructions[3004] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3005] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3006] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3007] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3008] = {6'd13, 8'd0, 8'd148, 32'd3015};//{'src': 148, 'label': 3015, 'op': 'jmp_if_false'} |
instructions[3009] = {6'd0, 8'd148, 8'd0, 32'd120};//{'dest': 148, 'literal': 120, 'op': 'literal'} |
instructions[3007] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3008] = {6'd15, 8'd0, 8'd0, 32'd3022};//{'label': 3022, 'op': 'goto'} |
instructions[3009] = {6'd0, 8'd139, 8'd0, 32'd1};//{'dest': 139, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3010] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3011] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3012] = {6'd3, 8'd137, 8'd148, 32'd0};//{'dest': 137, 'src': 148, 'op': 'move'} |
instructions[3013] = {6'd15, 8'd0, 8'd0, 32'd3023};//{'label': 3023, 'op': 'goto'} |
instructions[3014] = {6'd15, 8'd0, 8'd0, 32'd3015};//{'label': 3015, 'op': 'goto'} |
instructions[3015] = {6'd15, 8'd0, 8'd0, 32'd3020};//{'label': 3020, 'op': 'goto'} |
instructions[3016] = {6'd0, 8'd148, 8'd0, 32'd10000};//{'dest': 148, 'literal': 10000, 'op': 'literal'} |
instructions[3017] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3012] = {6'd3, 8'd85, 8'd139, 32'd0};//{'dest': 85, 'src': 139, 'op': 'move'} |
instructions[3013] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[3014] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3015] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3016] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[3017] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3018] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3019] = {6'd39, 8'd0, 8'd148, 32'd0};//{'src': 148, 'op': 'wait_clocks'} |
instructions[3020] = {6'd3, 8'd148, 8'd138, 32'd0};//{'dest': 148, 'src': 138, 'op': 'move'} |
instructions[3021] = {6'd34, 8'd138, 8'd138, 32'd1};//{'dest': 138, 'src': 138, 'right': 1, 'signed': False, 'op': '-'} |
instructions[3022] = {6'd15, 8'd0, 8'd0, 32'd2671};//{'label': 2671, 'op': 'goto'} |
instructions[3023] = {6'd15, 8'd0, 8'd0, 32'd2463};//{'label': 2463, 'op': 'goto'} |
instructions[3024] = {6'd6, 8'd0, 8'd132, 32'd0};//{'src': 132, 'op': 'jmp_to_reg'} |
instructions[3019] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3020] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[3021] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[3022] = {6'd15, 8'd0, 8'd0, 32'd3235};//{'label': 3235, 'op': 'goto'} |
instructions[3023] = {6'd3, 8'd139, 8'd96, 32'd0};//{'dest': 139, 'src': 96, 'op': 'move'} |
instructions[3024] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3025] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3026] = {6'd13, 8'd0, 8'd139, 32'd3100};//{'src': 139, 'label': 3100, 'op': 'jmp_if_false'} |
instructions[3027] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3028] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3029] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3030] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3031] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3032] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3033] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20247904, 'op': 'memory_read_request'} |
instructions[3034] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3035] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20247904, 'op': 'memory_read_wait'} |
instructions[3036] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20247904, 'element_size': 2, 'op': 'memory_read'} |
instructions[3037] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3038] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3039] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3040] = {6'd11, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[3041] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3042] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3043] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[3044] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3045] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3046] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3047] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3048] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3049] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3050] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20248336, 'op': 'memory_read_request'} |
instructions[3051] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3052] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20248336, 'op': 'memory_read_wait'} |
instructions[3053] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20248336, 'element_size': 2, 'op': 'memory_read'} |
instructions[3054] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3055] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3056] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3057] = {6'd11, 8'd141, 8'd140, 32'd79};//{'dest': 141, 'src': 140, 'srcb': 79, 'signed': False, 'op': '+'} |
instructions[3058] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3059] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3060] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[3061] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3062] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3063] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3064] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3065] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3066] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3067] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20248768, 'op': 'memory_read_request'} |
instructions[3068] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3069] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20248768, 'op': 'memory_read_wait'} |
instructions[3070] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20248768, 'element_size': 2, 'op': 'memory_read'} |
instructions[3071] = {6'd0, 8'd140, 8'd0, 32'd1};//{'dest': 140, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3072] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3073] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3074] = {6'd11, 8'd141, 8'd140, 32'd80};//{'dest': 141, 'src': 140, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[3075] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3076] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3077] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[3078] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3079] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3080] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3081] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3082] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3083] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3084] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20249200, 'op': 'memory_read_request'} |
instructions[3085] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3086] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20249200, 'op': 'memory_read_wait'} |
instructions[3087] = {6'd19, 8'd139, 8'd146, 32'd0};//{'dest': 139, 'src': 146, 'sequence': 20249200, 'element_size': 2, 'op': 'memory_read'} |
instructions[3088] = {6'd0, 8'd140, 8'd0, 32'd0};//{'dest': 140, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3089] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3090] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3091] = {6'd11, 8'd141, 8'd140, 32'd80};//{'dest': 141, 'src': 140, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[3092] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3093] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3094] = {6'd23, 8'd0, 8'd141, 32'd139};//{'srcb': 139, 'src': 141, 'element_size': 2, 'op': 'memory_write'} |
instructions[3095] = {6'd0, 8'd139, 8'd0, 32'd2};//{'dest': 139, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3096] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3097] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3098] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3099] = {6'd15, 8'd0, 8'd0, 32'd3100};//{'label': 3100, 'op': 'goto'} |
instructions[3100] = {6'd15, 8'd0, 8'd0, 32'd3235};//{'label': 3235, 'op': 'goto'} |
instructions[3101] = {6'd3, 8'd142, 8'd81, 32'd0};//{'dest': 142, 'src': 81, 'op': 'move'} |
instructions[3102] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3103] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3104] = {6'd3, 8'd19, 8'd142, 32'd0};//{'dest': 19, 'src': 142, 'op': 'move'} |
instructions[3105] = {6'd3, 8'd142, 8'd91, 32'd0};//{'dest': 142, 'src': 91, 'op': 'move'} |
instructions[3106] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3107] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3108] = {6'd3, 8'd20, 8'd142, 32'd0};//{'dest': 20, 'src': 142, 'op': 'move'} |
instructions[3109] = {6'd3, 8'd140, 8'd104, 32'd0};//{'dest': 140, 'src': 104, 'op': 'move'} |
instructions[3110] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3111] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3112] = {6'd3, 8'd21, 8'd140, 32'd0};//{'dest': 21, 'src': 140, 'op': 'move'} |
instructions[3113] = {6'd1, 8'd17, 8'd0, 32'd108};//{'dest': 17, 'label': 108, 'op': 'jmp_and_link'} |
instructions[3114] = {6'd3, 8'd139, 8'd18, 32'd0};//{'dest': 139, 'src': 18, 'op': 'move'} |
instructions[3115] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3116] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3117] = {6'd3, 8'd137, 8'd139, 32'd0};//{'dest': 137, 'src': 139, 'op': 'move'} |
instructions[3118] = {6'd3, 8'd139, 8'd93, 32'd0};//{'dest': 139, 'src': 93, 'op': 'move'} |
instructions[3119] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3120] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3121] = {6'd13, 8'd0, 8'd139, 32'd3127};//{'src': 139, 'label': 3127, 'op': 'jmp_if_false'} |
instructions[3122] = {6'd0, 8'd139, 8'd0, 32'd4};//{'dest': 139, 'literal': 4, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3123] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3124] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3125] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3126] = {6'd15, 8'd0, 8'd0, 32'd3136};//{'label': 3136, 'op': 'goto'} |
instructions[3127] = {6'd3, 8'd139, 8'd132, 32'd0};//{'dest': 139, 'src': 132, 'op': 'move'} |
instructions[3128] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3129] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3130] = {6'd13, 8'd0, 8'd139, 32'd3136};//{'src': 139, 'label': 3136, 'op': 'jmp_if_false'} |
instructions[3131] = {6'd0, 8'd139, 8'd0, 32'd3};//{'dest': 139, 'literal': 3, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3132] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3133] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3134] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3135] = {6'd15, 8'd0, 8'd0, 32'd3136};//{'label': 3136, 'op': 'goto'} |
instructions[3136] = {6'd15, 8'd0, 8'd0, 32'd3235};//{'label': 3235, 'op': 'goto'} |
instructions[3137] = {6'd3, 8'd142, 8'd81, 32'd0};//{'dest': 142, 'src': 81, 'op': 'move'} |
instructions[3138] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3139] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3140] = {6'd3, 8'd19, 8'd142, 32'd0};//{'dest': 19, 'src': 142, 'op': 'move'} |
instructions[3141] = {6'd3, 8'd142, 8'd91, 32'd0};//{'dest': 142, 'src': 91, 'op': 'move'} |
instructions[3142] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3143] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3144] = {6'd3, 8'd20, 8'd142, 32'd0};//{'dest': 20, 'src': 142, 'op': 'move'} |
instructions[3145] = {6'd3, 8'd140, 8'd104, 32'd0};//{'dest': 140, 'src': 104, 'op': 'move'} |
instructions[3146] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3147] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3148] = {6'd3, 8'd21, 8'd140, 32'd0};//{'dest': 21, 'src': 140, 'op': 'move'} |
instructions[3149] = {6'd1, 8'd17, 8'd0, 32'd108};//{'dest': 17, 'label': 108, 'op': 'jmp_and_link'} |
instructions[3150] = {6'd3, 8'd139, 8'd18, 32'd0};//{'dest': 139, 'src': 18, 'op': 'move'} |
instructions[3151] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3152] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3153] = {6'd3, 8'd137, 8'd139, 32'd0};//{'dest': 137, 'src': 139, 'op': 'move'} |
instructions[3154] = {6'd3, 8'd139, 8'd93, 32'd0};//{'dest': 139, 'src': 93, 'op': 'move'} |
instructions[3155] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3156] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3157] = {6'd13, 8'd0, 8'd139, 32'd3163};//{'src': 139, 'label': 3163, 'op': 'jmp_if_false'} |
instructions[3158] = {6'd0, 8'd139, 8'd0, 32'd4};//{'dest': 139, 'literal': 4, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3159] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3160] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3161] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3162] = {6'd15, 8'd0, 8'd0, 32'd3224};//{'label': 3224, 'op': 'goto'} |
instructions[3163] = {6'd3, 8'd139, 8'd96, 32'd0};//{'dest': 139, 'src': 96, 'op': 'move'} |
instructions[3164] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3165] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3166] = {6'd13, 8'd0, 8'd139, 32'd3190};//{'src': 139, 'label': 3190, 'op': 'jmp_if_false'} |
instructions[3167] = {6'd0, 8'd141, 8'd0, 32'd1};//{'dest': 141, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3168] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3169] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3170] = {6'd11, 8'd145, 8'd141, 32'd80};//{'dest': 145, 'src': 141, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[3171] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3172] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3173] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20236912, 'op': 'memory_read_request'} |
instructions[3174] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3175] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20236912, 'op': 'memory_read_wait'} |
instructions[3176] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20236912, 'element_size': 2, 'op': 'memory_read'} |
instructions[3177] = {6'd0, 8'd145, 8'd0, 32'd1};//{'dest': 145, 'literal': 1, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3178] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3179] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3180] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3181] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3182] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3183] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20237056, 'op': 'memory_read_request'} |
instructions[3184] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3185] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20237056, 'op': 'memory_read_wait'} |
instructions[3186] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20237056, 'element_size': 2, 'op': 'memory_read'} |
instructions[3187] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3188] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3189] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[3190] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3191] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3192] = {6'd13, 8'd0, 8'd139, 32'd3216};//{'src': 139, 'label': 3216, 'op': 'jmp_if_false'} |
instructions[3193] = {6'd0, 8'd141, 8'd0, 32'd0};//{'dest': 141, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3194] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3195] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3196] = {6'd11, 8'd145, 8'd141, 32'd80};//{'dest': 145, 'src': 141, 'srcb': 80, 'signed': False, 'op': '+'} |
instructions[3197] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3198] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3199] = {6'd17, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20237344, 'op': 'memory_read_request'} |
instructions[3200] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3201] = {6'd18, 8'd0, 8'd145, 32'd0};//{'element_size': 2, 'src': 145, 'sequence': 20237344, 'op': 'memory_read_wait'} |
instructions[3202] = {6'd19, 8'd140, 8'd145, 32'd0};//{'dest': 140, 'src': 145, 'sequence': 20237344, 'element_size': 2, 'op': 'memory_read'} |
instructions[3203] = {6'd0, 8'd145, 8'd0, 32'd0};//{'dest': 145, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3204] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3205] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3206] = {6'd11, 8'd146, 8'd145, 32'd92};//{'dest': 146, 'src': 145, 'srcb': 92, 'signed': False, 'op': '+'} |
instructions[3207] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3208] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3209] = {6'd17, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20237488, 'op': 'memory_read_request'} |
instructions[3210] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3211] = {6'd18, 8'd0, 8'd146, 32'd0};//{'element_size': 2, 'src': 146, 'sequence': 20237488, 'op': 'memory_read_wait'} |
instructions[3212] = {6'd19, 8'd141, 8'd146, 32'd0};//{'dest': 141, 'src': 146, 'sequence': 20237488, 'element_size': 2, 'op': 'memory_read'} |
instructions[3213] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3214] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3215] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[3216] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3217] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3218] = {6'd13, 8'd0, 8'd139, 32'd3224};//{'src': 139, 'label': 3224, 'op': 'jmp_if_false'} |
instructions[3219] = {6'd0, 8'd139, 8'd0, 32'd2};//{'dest': 139, 'literal': 2, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3220] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3221] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3222] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3223] = {6'd15, 8'd0, 8'd0, 32'd3224};//{'label': 3224, 'op': 'goto'} |
instructions[3224] = {6'd15, 8'd0, 8'd0, 32'd3235};//{'label': 3235, 'op': 'goto'} |
instructions[3225] = {6'd3, 8'd139, 8'd96, 32'd0};//{'dest': 139, 'src': 96, 'op': 'move'} |
instructions[3226] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3227] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3228] = {6'd13, 8'd0, 8'd139, 32'd3234};//{'src': 139, 'label': 3234, 'op': 'jmp_if_false'} |
instructions[3229] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3230] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3231] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3232] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3233] = {6'd15, 8'd0, 8'd0, 32'd3234};//{'label': 3234, 'op': 'goto'} |
instructions[3234] = {6'd15, 8'd0, 8'd0, 32'd3235};//{'label': 3235, 'op': 'goto'} |
instructions[3235] = {6'd3, 8'd139, 8'd95, 32'd0};//{'dest': 139, 'src': 95, 'op': 'move'} |
instructions[3236] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3237] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3238] = {6'd13, 8'd0, 8'd139, 32'd3244};//{'src': 139, 'label': 3244, 'op': 'jmp_if_false'} |
instructions[3239] = {6'd0, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'literal': 0, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3240] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3241] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3242] = {6'd3, 8'd138, 8'd139, 32'd0};//{'dest': 138, 'src': 139, 'op': 'move'} |
instructions[3243] = {6'd15, 8'd0, 8'd0, 32'd3244};//{'label': 3244, 'op': 'goto'} |
instructions[3244] = {6'd3, 8'd139, 8'd137, 32'd0};//{'dest': 139, 'src': 137, 'op': 'move'} |
instructions[3245] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3246] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3247] = {6'd13, 8'd0, 8'd139, 32'd3280};//{'src': 139, 'label': 3280, 'op': 'jmp_if_false'} |
instructions[3248] = {6'd3, 8'd150, 8'd129, 32'd0};//{'dest': 150, 'src': 129, 'op': 'move'} |
instructions[3249] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3250] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3251] = {6'd3, 8'd116, 8'd150, 32'd0};//{'dest': 116, 'src': 150, 'op': 'move'} |
instructions[3252] = {6'd3, 8'd140, 8'd105, 32'd0};//{'dest': 140, 'src': 105, 'op': 'move'} |
instructions[3253] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3254] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3255] = {6'd3, 8'd117, 8'd140, 32'd0};//{'dest': 117, 'src': 140, 'op': 'move'} |
instructions[3256] = {6'd3, 8'd140, 8'd104, 32'd0};//{'dest': 140, 'src': 104, 'op': 'move'} |
instructions[3257] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3258] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3259] = {6'd3, 8'd118, 8'd140, 32'd0};//{'dest': 118, 'src': 140, 'op': 'move'} |
instructions[3260] = {6'd1, 8'd115, 8'd0, 32'd2514};//{'dest': 115, 'label': 2514, 'op': 'jmp_and_link'} |
instructions[3261] = {6'd3, 8'd140, 8'd138, 32'd0};//{'dest': 140, 'src': 138, 'op': 'move'} |
instructions[3262] = {6'd3, 8'd141, 8'd136, 32'd0};//{'dest': 141, 'src': 136, 'op': 'move'} |
instructions[3263] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3264] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3265] = {6'd29, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[3266] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3267] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3268] = {6'd13, 8'd0, 8'd139, 32'd3279};//{'src': 139, 'label': 3279, 'op': 'jmp_if_false'} |
instructions[3269] = {6'd3, 8'd150, 8'd130, 32'd0};//{'dest': 150, 'src': 130, 'op': 'move'} |
instructions[3270] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3271] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3272] = {6'd3, 8'd98, 8'd150, 32'd0};//{'dest': 98, 'src': 150, 'op': 'move'} |
instructions[3273] = {6'd3, 8'd140, 8'd132, 32'd0};//{'dest': 140, 'src': 132, 'op': 'move'} |
instructions[3274] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3275] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3276] = {6'd3, 8'd99, 8'd140, 32'd0};//{'dest': 99, 'src': 140, 'op': 'move'} |
instructions[3277] = {6'd1, 8'd97, 8'd0, 32'd1705};//{'dest': 97, 'label': 1705, 'op': 'jmp_and_link'} |
instructions[3278] = {6'd15, 8'd0, 8'd0, 32'd3279};//{'label': 3279, 'op': 'goto'} |
instructions[3279] = {6'd15, 8'd0, 8'd0, 32'd3280};//{'label': 3280, 'op': 'goto'} |
instructions[3280] = {6'd3, 8'd140, 8'd138, 32'd0};//{'dest': 140, 'src': 138, 'op': 'move'} |
instructions[3281] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3282] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3283] = {6'd25, 8'd139, 8'd140, 32'd2};//{'src': 140, 'right': 2, 'dest': 139, 'signed': False, 'op': '==', 'type': 'int', 'size': 2} |
instructions[3284] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3285] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3286] = {6'd13, 8'd0, 8'd139, 32'd3288};//{'src': 139, 'label': 3288, 'op': 'jmp_if_false'} |
instructions[3287] = {6'd38, 8'd139, 8'd0, 32'd0};//{'dest': 139, 'input': 'socket', 'op': 'ready'} |
instructions[3288] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3289] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3290] = {6'd13, 8'd0, 8'd139, 32'd3293};//{'src': 139, 'label': 3293, 'op': 'jmp_if_false'} |
instructions[3291] = {6'd15, 8'd0, 8'd0, 32'd3315};//{'label': 3315, 'op': 'goto'} |
instructions[3292] = {6'd15, 8'd0, 8'd0, 32'd3293};//{'label': 3293, 'op': 'goto'} |
instructions[3293] = {6'd3, 8'd140, 8'd138, 32'd0};//{'dest': 140, 'src': 138, 'op': 'move'} |
instructions[3294] = {6'd3, 8'd141, 8'd136, 32'd0};//{'dest': 141, 'src': 136, 'op': 'move'} |
instructions[3295] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3296] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3297] = {6'd21, 8'd139, 8'd140, 32'd141};//{'srcb': 141, 'src': 140, 'dest': 139, 'signed': False, 'op': '!=', 'type': 'int', 'size': 2} |
instructions[3298] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3299] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3300] = {6'd13, 8'd0, 8'd139, 32'd3307};//{'src': 139, 'label': 3307, 'op': 'jmp_if_false'} |
instructions[3301] = {6'd0, 8'd139, 8'd0, 32'd120};//{'dest': 139, 'literal': 120, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3302] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3303] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3304] = {6'd3, 8'd133, 8'd139, 32'd0};//{'dest': 133, 'src': 139, 'op': 'move'} |
instructions[3305] = {6'd15, 8'd0, 8'd0, 32'd3315};//{'label': 3315, 'op': 'goto'} |
instructions[3306] = {6'd15, 8'd0, 8'd0, 32'd3307};//{'label': 3307, 'op': 'goto'} |
instructions[3307] = {6'd15, 8'd0, 8'd0, 32'd3312};//{'label': 3312, 'op': 'goto'} |
instructions[3308] = {6'd0, 8'd139, 8'd0, 32'd10000};//{'dest': 139, 'literal': 10000, 'size': 2, 'signed': 2, 'op': 'literal'} |
instructions[3309] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3310] = {6'd4, 8'd0, 8'd0, 32'd0};//{'op': 'nop'} |
instructions[3311] = {6'd40, 8'd0, 8'd139, 32'd0};//{'src': 139, 'op': 'wait_clocks'} |
instructions[3312] = {6'd3, 8'd139, 8'd134, 32'd0};//{'dest': 139, 'src': 134, 'op': 'move'} |
instructions[3313] = {6'd35, 8'd134, 8'd134, 32'd1};//{'src': 134, 'right': 1, 'dest': 134, 'signed': False, 'op': '-', 'size': 2} |
instructions[3314] = {6'd15, 8'd0, 8'd0, 32'd2924};//{'label': 2924, 'op': 'goto'} |
instructions[3315] = {6'd15, 8'd0, 8'd0, 32'd2653};//{'label': 2653, 'op': 'goto'} |
instructions[3316] = {6'd6, 8'd0, 8'd128, 32'd0};//{'src': 128, 'op': 'jmp_to_reg'} |
end |
|
|
3532,78 → 3821,84
|
16'd27: |
begin |
result_2 <= $unsigned(register_1) < $unsigned(literal_1); |
result_2 <= $signed(register_1) + $signed(registerb_1); |
write_enable_2 <= 1; |
end |
|
16'd28: |
begin |
result_2 <= $unsigned(register_1) == $unsigned(registerb_1); |
result_2 <= $unsigned(register_1) < $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd29: |
begin |
result_2 <= $unsigned(literal_1) | $unsigned(register_1); |
result_2 <= $unsigned(register_1) == $unsigned(registerb_1); |
write_enable_2 <= 1; |
end |
|
16'd30: |
begin |
result_2 <= $unsigned(register_1) <= $unsigned(literal_1); |
result_2 <= $unsigned(literal_1) | $unsigned(register_1); |
write_enable_2 <= 1; |
end |
|
16'd31: |
begin |
result_2 <= $unsigned(register_1) >> $unsigned(literal_1); |
result_2 <= $unsigned(register_1) <= $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd32: |
begin |
result_2 <= $unsigned(register_1) << $unsigned(literal_1); |
result_2 <= $unsigned(register_1) >> $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd33: |
begin |
result_2 <= $unsigned(register_1) - $unsigned(registerb_1); |
result_2 <= $unsigned(register_1) << $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd34: |
begin |
result_2 <= $unsigned(register_1) - $unsigned(literal_1); |
result_2 <= $unsigned(register_1) - $unsigned(registerb_1); |
write_enable_2 <= 1; |
end |
|
16'd35: |
begin |
result_2 <= $unsigned(register_1) <= $unsigned(registerb_1); |
result_2 <= $unsigned(register_1) - $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd36: |
begin |
result_2 <= $unsigned(register_1) | $unsigned(literal_1); |
result_2 <= $unsigned(register_1) <= $unsigned(registerb_1); |
write_enable_2 <= 1; |
end |
|
16'd37: |
begin |
result_2 <= $unsigned(register_1) | $unsigned(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd38: |
begin |
result_2 <= 0; |
result_2[0] <= input_socket_stb; |
write_enable_2 <= 1; |
end |
|
16'd38: |
16'd39: |
begin |
result_2 <= $signed(register_1) == $signed(literal_1); |
write_enable_2 <= 1; |
end |
|
16'd39: |
16'd40: |
begin |
timer <= register_1; |
timer_enable <= 1; |
/tcp_socket/trunk/README.rst
6,7 → 6,7
:email: chips@jondawson.org.uk |
|
|
This project is intended to demonstrate the capabilities of the `Chips-2.0 <https://github.com/dawsonjon/Chips-2.0>`_ development environment. The project is targets the Xilinx Spartan 6 device, and more specifically, the Digilent ATLYS development platform. The demo implements a TCP/IP socket interface, and a simple web application. So far the demonstration has been tested on a Ubuntu Linux only. |
This project is intended to demonstrate the capabilities of the `Chips-2.0 <http:pyandchips.org>`_ development environment. The project is targets the Xilinx Spartan 6 device, and more specifically, the Digilent ATLYS development platform. The demo implements a TCP/IP socket interface, and a simple web application. So far the demonstration has been tested on a Ubuntu Linux only. Some users have reported success using windows. |
|
Dependencies |
============ |
25,7 → 25,7
|
Clone the git the repository with git:: |
|
$ git clone git@github.com:dawsonjon/Chips-Demo.git |
$ git clone https://github.com/dawsonjon/Chips-Demo.git |
$ cd Chips-Demo |
$ git submodule init |
$ git submodule update |
73,7 → 73,7
|
.. |
|
Connect the Ethernet port to ATLYS, using a crossed over Ethernet cable (which comes with the development kit). |
Connect the Ethernet port to ATLYS, using a crossed over Ethernet cable. |
|
Using the script, configure Ethernet port with IP address 192.168.1.0 and subnet mask 255.255.255.0. Turn off TCP Window Scaling and TCP time stamps:: |
|
/tcp_socket/trunk/README.pdf
45,7 → 45,7
5 0 obj |
<< /A << /S /URI |
/Type /Action |
/URI (https://github.com/dawsonjon/Chips-2.0) >> |
/URI (http:pyandchips.org) >> |
/Border [ 0 |
0 |
0 ] |
65,9 → 65,9
0 |
0 ] |
/Rect [ 121.8129 |
507.7736 |
495.7736 |
156.2729 |
519.7736 ] |
507.7736 ] |
/Subtype /Link |
/Type /Annot >> |
endobj |
80,9 → 80,9
0 |
0 ] |
/Rect [ 163.4929 |
489.7736 |
477.7736 |
186.2729 |
501.7736 ] |
489.7736 ] |
/Subtype /Link |
/Type /Annot >> |
endobj |
102,12 → 102,12
5 0 R |
6 0 R |
7 0 R ] |
/Contents 26 0 R |
/Contents 25 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 25 0 R |
/Parent 24 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
130,12 → 130,12
% 'Page2': class PDFPage |
11 0 obj |
% Page dictionary |
<< /Contents 27 0 R |
<< /Contents 26 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 25 0 R |
/Parent 24 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
146,46 → 146,29
/Trans << >> |
/Type /Page >> |
endobj |
% 'FormXob.09b26a0166245dd394f397d1cf2199db': class PDFImageXObject |
% 'FormXob.095b796d251cf05783ed4552c87ababa': class PDFImageXObject |
12 0 obj |
<< /BitsPerComponent 8 |
/ColorSpace /DeviceRGB |
/Filter [ /ASCII85Decode |
/FlateDecode ] |
/Height 533 |
/Length 50835 |
/SMask 13 0 R |
/Height 522 |
/Length 63710 |
/Subtype /Image |
/Type /XObject |
/Width 866 >> |
/Width 721 >> |
stream |
Gb",k#?VXP+2GimXgYXFXaX9dCAZ]8mU?"Gf!]I9i3r'e\)Q7eTdYNN6j,qEPbB9L-ptEkH`r)JOH9VPfjsolG8ES(!O6>8s#pD&-ct2XGOO@7hN)kdRl20GFQbDf`!C:"n#KNnq?$]t!!)M/j,;s\B?e#:fBTVUD1/SO#?jFjJ`*!E3_bUrSUm+=hcC[;+.ioW/dr[W$oq`8*Su5=h92-<B4PP/6m=Jgz!2'jj9L^)EC`uVQ*"JmC;JW67WDmV!63;0oA;6Ho[dReBA1@@)&-u58z!.ZN@bKBth!\,]Nkq0`2)`QDcG)IV7J<$a#&k!Tg.kC5]n\JrSgV,Cdc.:+_bgnuPz!!"Z*a:aWhTmnLC6""(CMoBFnU^1kp]\.lC`l5pMgY92Oe&KSS9-b.Dlmi):z!)k")6mbr<>$BJi":#/fREQF<MBF;qW!*hc-n+TWoL,!imFjFnL^F+^z^^S9s!s8W5>DSB&OK,=\U8"BK2SlFqY9HWPIf2;_jOQNhz!!"Z*a:a,WJoY(OgUD)W(lZ,?]U(NBIt)rYM10o&..;0Vz!5K#a&qbgh1KoU]cqlcoSsc#BdO(p#`7@-B!:WcM=rFu!r!<2)_\`38MX$Y='ED;ESWZR-]YMIZfE8<6a:^j,6CtOq@:<T0Q'G.;5(.,Ye68S?-E@4K^e/.FA[/t)[]Z/[CW^VnZ(n5B?*rG,-b>P'DBh_Ai6&=B7ZAIpd#T`Cb7-A:]_$K1W]L%Nq>HeLc^6Ts*S'ZLdq>c;GNO@'[FEV_2$J2"lrZ,\b.-EjB?jhqpKVfcXek^V7)e#(a,\'c[i[^'C]Tj`g5I9*E<e08;ia-$eKjL'(c_eK?#cDZ`r<.RP[%K]Cbjm"Xo8<3g_?*cphC:S!m:^[4YcPBd&G8_k)@3,*'8K;m()G*4'd9WQC'ck?D;$b7#XLbA`:XWXu?tbI#D-RH'$R>'<X@_=MJ83oT:O0%b%=/g9B&n>%E3'CY0ipPYA)^fpn3SX"B=ACj]1NUbB71"2Ne"ZG]tVDEVk\mbPL1Ub4M^ol!Lm.?:sB`b6r$.[A-V!3cM22rg(]Zk9)#LQ8Y^130`K7bJ<Cmp1h;781>(!e2=Fnh6=Yl3t.fM?SBY=<a_CWms_:V9aq$e7\<]TkN%&-TFd@V`Cd)%dSbg6IY\<Pl&CIc5:Z1-mK43m>:MVYJ+<e0`1kN5JqWh0Q"h-Sk/%rea_*!9cZ#hHR]G5da<.[5@OFKm$s#>G(Yf#!D>s[G&to1/=iK@h4IZArCL,uc;X,8?UenC99Z>SMV;mmAL$R7;as9efT2!:Z\`1mM;Leh7=Y9`@tr6PNhDh$#;6O2\XID<Y!ul--bEmsjXj_>%+-N5a:auR1N`+&2bkB*lD>sFaVqc?N0=n^`6HI0!5)Eq-/Q@a4/IXeLkr".W'E+MD?Z:tAN[<.L%R#FM!Run<se$PkG,6E?_W/Eace+7'%C*Z6m?@4Et88S!`J`e6dpdN`ZB_A2I:W1bSJ;8F[?Qu/^3fq'E^L))]jgLl,gZO=3VUmmkAItri>9'm("L@"g0&<hQ@S<'uRdq'jlk],D&^o?T;PkrM8\Y&,BjYl5u0uk*,+d2D1@V*igA%0lc@B27qXR.SW,o726?H0&=WY#Sft.;T=05CAMUK_j1PT9]"[DP0;$gXdXPmSh!m`BX\s%OHL&qf_'bD2X+1=DY!eKR'quX\82Rc!Y]dt,K#]NC269%57ra>EGr`Kr8]C:V.29>OObkQ#nf+]\/\X\]d3s-Df;u&I^G_n16oh75;:>''>b'&mT%f:Q&7Ug^AI7O8:$&o\sC[C;^rM;FIk:_!cM^N.nlCdee4>EQLJ\#oTJinVmf@?-.@=qlC0'9';bWT=J+Db(/C8OG5/T31KX&>N$6^ak=8M>[hQ$$>jRXcH.I!*T;*aY?$.DHYGRU$kIH$:XANISs1-N?JgA^5:2*Gm"4&!g(/.%rBC,7TQYeg(4.@\)Z6U<X=]X>:5DaD<HF67F%\57OTH"?LeBF;Al]2ki-*E)<Nt3o3>dMfL*fZJsgrX,AbDLfcF)K%rl/P9-=h*VHXjdTfm'/V1WILbq@+d9C7/TI?=guJjM)%2<m&%Su4>ChSd#f*4^FAYX;sS?/mmm,uCgK/<V#<E:]NV:gb_jL*8r[N$Q/\.K>V^`T!MCkQQC-/g4F$@G7\_7W-_"<@3T2b=/?EbM61hck/1/B1TT#Ond:`(ZZ9`O<C+W:.&kN*(BFHWohWiL`1%CWY(n$X]WPBS3p`c+7h/RJ'LoP_CNZ:8'X'3p##S!8P,)%P0MPrI7BUdlDLm9hJ3%SCJc#N/RX>X[XrOV<+!X[R$,BC*m[f2)nlQ*HO?En%$r@%Q2?6p5pbiI_k:+"R4P(XjbFW=^"\)LGBbes]09(5`kVU".6VW=.C/sA!WDo<Z7_Tp301)#"r0HTQtNLAs'fC\G$o>[FJ+79u^O@V5V!4bkc`o4FrY))#eam8t:PucN6)eOp9LE`OJn",.05&/7",nk9hS$ju9/Q]!WFThMQk$XK7A;8R(9QHC`]:1iT&l%Fn]9d*\Bi<`-Uf)[@`PqUD(cD&0Tb,mDhW7`^mBL1lc!J)2rktKuF_`[[\qT4GMi$aW%]^A_/&[1&)Dc!iapFj/X#/5S=VFIETTd48^:7trEJZ'eRQ;=gO4@H0F%Ku#RoH7=:q9ak#2dD\KBNH:<(_#<dc;79&[]Rd91IhE5@hW)_`d#"@q+]E`uL=$#q+DOc3X?r$lT*.,_n+l`t=ScPQ"/jU'oLJ1,2F$e=dQ;]u',m1-53\\DIdaI&*`#7;<94&2h'h^S%D5e&P6dFJc9'n)CX8VD='@7n>sJ$K&dZ.tq>Pi^u(s(BCZJKgH(T%8CX^U8"B\<%=%cF"7ffkjIm,L8.YGcrUV@>>?k95!CYS&EQ6X<2+K=g'!fPrITJWQ_;nBKgMI9!.`)IB=^jVT0^B(-Lb!u@;<0(O:n43j@sgi:TkD_k$2#EJ":Y\5h,9g`1#QD1*Q?+Ipt%F;CYQmQ/^5-Mm,^^4Yesf<)T34DC5&gS:<T+V@K)M!H#]JZD:*H9I^ebC:+=('mEj"gbc37\/!4I&C43%ji0g5b;_Kcf7mElATB)[&4q#eJMHpQMhC7lRF)d:9&LWci9,A%94ao7bOB07b3N#hG-=mX)]C94iTtODF=a[lVNW8gHCmrJod&]7Y!T8?Ca^E[m[8m=?m9k51YdHG\9[Ca\cj@Eo*t8*]U+-U=oDZAF3`&WR\A>$<K!ic=5bnmqbiPAY#Hib1JadBa@u:R<_L@4XX2838mk4Z7EC.=WlW-q+'7#ohV7$D%*S4=.#q7p%ULjooAgLQmSM8[\ok+<"4M5L?$NVV@!H@N0,@lsLhe_m9,pg3fWeXNNihb[3H8DHNC6;I=uH`b$Y@8RgLRS+@#mYPGRTnt(MJq4W<d@Q*+(aSI5"^K`8s9(`XgU%U.C=<V_,Bf-&Tl5<oEkDFYVdlM)%,:btYGpWMqh18!0TB<*jL"%NC!md-d-U3`/?08u(_aR75ek$FH+4`K_pf[0jZHVD#OFZ310)6'ccimbRXR,!%b'-('dU?u?.b'%)Io*9+#Qoc$UZ3&ilU2HF$NM*@\A/0(A7&d8?3s4./M0EOBK-YXWXM0t#^8Ei5JVn6Mu<9SU/PIPBR-3+N;;[%=+/9/+2T`e:Y#sT5AAjsHc&$D#:,b1*o1U4,N7unZSG/g%03tGU*cX7)k;COiN@n-DFP2Z*JG9h/I>`DOnn$3AZl&=GBaWdQRC#[7j@#;3CPNij8-12jZDi$6E9`ubD(>s=rMf)@&9"C<-]F7">Zb/oqs8-K8,t]F,HJHn>6ljkf[oAsuZ&/_OUA,ZDNc%rWCLhi@]j]s1L6-.E4krb9@eQ5#6q9j[M>YC!M$sk3224)5p&,`j?bkHlh@fk\a;(ICa,/MB,e3gp>G4rN9<Tte^Fo2S8pMk8&P9*aiSepO&oNRRn[/lf=C&(IZ,o#.Ha.ake/4N&N?rI8+Nd],lH/.G(/6+cDuBU4&g]bfhe;q@YDoP_.Ll,SP?`T"3_Sl1p")W6o26*Ya-Wrd`;X:4Iq.![)k49(?IJi#RMn1b-d(Z22)iMJjJLcJ]:Oloiqf-RlL>9+EU8j';qW=C6.qBYl7LD`.s8YU75n)*!5L-b.Q&b./?X[lP#bmqY*D7^9Nn0Eoc$UZ4$1'WY"i2fLd("_jB,MkCPh9D>;6*XN?P+R?%pn8%%6+>`'kSSKRa]>>goQDP0.>K0fSn]]Rk&!N`:R7XD<Z8;?>n!Enh:?T#helV'n?1eqof>/).A&$>H&1/E5(*6[`56CgJu7l?KD,$pEk+gaEi/'sVY3osJa`in3tag@ElpX!V4;gr?N^s-R)i_Q2fmj[DEE>_51'*KFaj3u:nOYK%[0@E2l/!ps5'?Dbb*6FV^/21*6K9m_B$AatRT+_'6YYsb"'\"#qtQ<7d]Y`O$@"n</]oVb5&QPgjF81]m4rN4&?FRKr4]B%D%8s+r]2=)Uh5Bkc"2*'h8Nkp48j^'(/IB7FLWOpsAc^aSd>9E%3`E(+GKOeH,'(M[*;G:(;A)!$sSLdUY,dh34bOF:=]ge:Xl]$3r/72P8*=^GaEV7UhO:>O)L[N.8q,FHF?NHFm2>6eP;iW,DM0o\"P+'>VG\OuGOdEG![)VrWM"GiafPir69*n6r)dQD>6t;(S+*-nJ,.co/iKf:Kd?\"\''2!-)C(fYo9>(F,rIg[<J5Qj3SMuP!]q.VqRXV!=,Ed+_'bYlN[D*[2+fUFQ`rlYY*?n`DYiJq!7T;.[.*SS=S!Ag2gP&ZObK'_L69Sg$gS@-W(i8M!48uEjTL\T8u5F>66VQ7cr]imnMqa9_-DRq9B>VfXaTU<i)N%\Gdr51i@<k-4X4u]>_/i^RU2M)qqSaZUft%ke!;Q&</%BP'gX#k1i%pmB:X:a'hLen8ZpN]SJZi9?)X\8=&TIICk2ld,e9khErl7ggmO+c:a?a4A;^5mMlP:QPVPO9ZIe@JQkU!6H7GpmU;SOlZk'uVEqkKn>IJD(H28+?.)LE]oNI-AhDFD+Y!cMf]",WXGESMZ/G+FIhU>EA8NAWPgd(#DqbjFOB;Z>7>j>BC&dnCPC28OE0e,Lk&-J=Z`US';WjXn&l%hi;CdpuB[oOcWAS1_>a"*fPYIr2E)+q!e?ETE*q+OCHl<TH&IqgHn<a7#oPYt-CE^G]q-SQj8l+b1'JscEaF@fc/OJK-Lip)>^HV>U<,=O$$gr!Lb*\q_\i%dEoOdj7%aB8\3%hD@SpGMtuM8\?=M+q5+K,#5#7#U>$q_9&8h9.9\UFZd&__s>RU6p=L$%B`]D@WKK`!1RQ;74HnYS=i5$SIP+A@/$+V0C<b&[198L@P&IVCbYE*k2pAQc#LV'.:r\guC<sdFHV=VC:J_/DLqcQFP"s>^p&,T.n:<+Ynt]UXE>?2-5YJAEfg-QQlJa&$j-#p[6"fa'cOd&hOJA,<[968/Bc23I8Z]qN_d_^C,bZ5@&8:@%b!<pW]0dd:\S4KWNU,Jm(gKWMpI1!+5u<N)\-r;hbq@j,$qsq_@<Pd(*K%@[U=pY'hFekEc>9Q*)Ej.!ePVQ1;o\R%^:q3rD!t:okfb='[&o<!m>VagHh4a4\dB[X?Qt/R-e@lD'YPV^dodZ-e^(o$5N&>;($j_mD38:-Xoc(8AdYkNCl8#?K`V9;L5&_Q)[\1\#@E_sAa2N$moG`ieeaPH#>nkmQ`Q]CF%9Yo=mS>2<%Ta)?1;"E3A0-mkN.rLU/<C6N$idPM5i*]@27.`I8A&i]pn<S%k[%D/aa4Z-k'3jJ?*H)tT^*etc0oK$QSEW-F@JmT3Y&a(-nW0F9HFV596_fIip]ku!WH0[A+F^2A"enDGQX>AOWM1f5ZAPn(+9#TL1*VYYQq5&O5[5Co=&NB[d&ktIMjLKb8e$NU[G###;W8nTO_eZVa4Y]g:FBY32,#6k&7E!"Q1Z"lD4!*FY;i[dH<GK(3'n:>&B'FsdP9%XO)`,'SoSNpTZ`YmpY%*=P7&=6mCA(&`\g]85SM\:79i3=#=L]e69,&6r`Ch2kA9Ld]Z0Vb#/#BRD,?G4XFQ,nqP8=5'5Xe,\rVQ=@1a8PQFimD`,[_Bg:.e,..k@qi[78WPS05,Ue#,ugG^'>p"ei-`?On-N'%/%/9<>;!('4JD'`pZQV^U]MJ^(6-s#C+$OpNr,3ZbmQ6P?Hb`3j.Ce$`M=4A!UhhQLFG3Y+Wc'OM_riq,g!\[ZM@N0,@*:K`/)>%Y0INRAHidM"8TfXtnKe<*j;Zi,^%F&sBrRSY;WL+P5CY+!#PppahOQuM8gTFPmfSVKEj=5RI00-IR;B4Tg^^2:j]$)<:0:Ren0n(APX8?"L@^6TD;*Z)%8>9c.#Krf`sJGrs>7/Tor2OK5IYLKsJWAY2dlrKmL$uu)7("S5?G8`"EH!J7$An=3rG<`H[iN-agnSLclS[\O#9+f.N$8muWj6L0aQOsmCc!@sE`:]pHO[>na]GF5KQ;nLXZ[;A^8IjB%*BAE=_Tbhg6Z[O13XNR._%O"ga%>!giuTCNM6;2]7=n]TmemOJQHsV;`\hN%eAYWfgr\O)WRV?Tn\o33\JdMXqXh`Gp7)GH/*>!H@>SH?N:>W-Ek]FnHfI7-06ITG6R>=1P[""Bbk=&\m>![F=ai=Y.<Lc^+W``2r.]5bXhubUEME00?"Dq_RE-FunBmS^D[N19B&TW&/Wh$G^JpDkL!9*[)D':9/&`u_k\^0j2sX?Bs&pm&.jH5^/.>`Xd)X"lLm4-gdaD%Z;en3a,!cThTHE-[qeD)@&igq,CS,qRGbkrWKjnb%SQnH[XJqFV"kJqLIom((Ei`D@,?rf2Jhg%^UK"%u<,7>Kr5_ui/o2RJV+QI7n(0\8"9O-V.b!eim0?iD2;q*Eg-VdI?*aR=B*Cn'J;mH*i*TInQA'c%i=kDd\POd;;A07l%U31>hcMAVrOl7-q&N6EI2C)m^Pe%O1N?gt.B22oWTR=ar$9IEZ7e"RJ7eM,<lZP!dE`GfXPTe;b@M=HCSu[HF;AXL*@3#25<]gJ&s5r\0ibC;f^KN98@sJ-4doa#Y:M/7eV^/FBUMI^&)/fFf;]iG24DBoS2gs)b5-a/nkEP3V9EJJ3EN4PGl[nD+A7ZPN3moblpaN?9e@eCBrTUh$!N^>];]HqOj.JG!!)e`iK=$qQAAOt&0;&V07_d!8B4S;VpAN-kdY3a_WaGjm^Q7U8.q1S$3^q?XFj9G5Bu[jV;@C5o]aiaio67rm6r;![6tdg<=8fBhb6b4?\9XsFm%6VJ<knSEI#UIq;]L,>o.,!hg"L&&lkl0.qKnQG5u"s$jIq'-71;r/\Qid.Oo24Ug?H@>"brsWbUpB%flW!pcQ8]dr6W99*AQDHp1m[_-Z/"hrK[&hhn,S!C5,TbfiJ@R+2hBU^@J;>9p0aPb?S?OWO)pz!!)Ui<`UOo-KaCMj?>NUg"?N4"j`gdMb?l^M0(el[8/mbz^e9Yh/1rA#8OuCnbfn;WcS'MQOG5o2$84G+h>%\/z!!%O<Uf&Y"`C``pZ7oe^56Ka;&o.IIzJAr--L$HDhj-R"J%=f`+z!!(#P/Wn6<<W`=%z!05VCf,kN+B/.su#Hp-+\E_0.jTg1"m.4Acf,Fe.FR8TbK`i,*<+&P-Z!=FS+<VdL+<ZVQc*?2-&$7.Pc`<+qNE&_>b7=b-g?h%=e#CG>O#S]I2g3"i#RHWFM?bUVW2Q?jK8L*f4;Nei"9\i1"9cZd):hn6Tnr;a?C\[naBn%f&MZic7TF5*Jc[SY$jIsS@Jl-1kGPCBJr1"n+p8#O"9cZD(tMgKb/6.SmIm-Wb3?!'?k##&%N[LX&.muuR`jZofdG'PS%?`K'cp>->.pk%5X7S"5X7.T)R[L`:-hPQ\i+WYWI;f?f$m[jH0CmcRVFJ'!!ii<_<%ocPndL5HHb1.L5HOA-UL'`5X7TI>1'8pXuq)Q_(IBr`Hri)j*<bgQDi@,"6,ROA;O:pqTW7'itq)K70on,+WqmM+<Y!mY\]/sS:[%In=-]1D9(VAghNo:d@_8;6n41RM$OR*'cJ-6-S5&d>nfSKmtE#4`g2mT[(<2$Zu3*N9M0U+g>+,hDK&#J8R%aqGjgnX>L(IJk[o7ehL'Y.Y"L8The;[e"p+i-!Wq@g&sb+hjcQ%rd6)F5ri#T+?;6E!6Z^2`E"85:<%1g.eCDYX<V2(P@Hm#P>$Y)M=ttiu`1T1(PEtW,"UPpAebGaXZQ7k_Gs?8_*cHHdq`NZm(,TZ^#;XM(^M=r7+<VdLrXE;h&sj^4TB5:NDU6Fnl5J]?6khS4rKU!O5UbR\X#\]]-C\>`TN9Dg77@@eL#PsW<-h^]7?J?LfC"jq0iX1LmhHA"p\SW,"GOa-IJJGu54Ii*o("A-ZSn@@`G'J.,p'f6m;hTVol9P+S=>#@e"t-r>>?j)J$mgF*!cfU#RH69Hs!U@oJBpfp[[A[L[R_F4VCJJ=Rcdg<N/qD-,mFk6q9bJeS:pY&TTD+[%td%687t^G>J3FruR`c\*qbYs0)$ShT9?W_IiQ=Gb))cZ3p#k5(0nj_/5JaEiF%rMhcf]T/YK5J*iefs&e[]Us`4'>\\lFN:2,.g#:345Kn:HXC.MhOHjg5@)pmU)Wt2Gj:ku![Gu$Cg)Dfg,KR,sQX;i_=D14+9TNWNopHn$_IV[UYXlTOqn+l;28,_0r8=4)pO3Ken64H#?]TBC?-G&`0Lku+s)rcaPNnW#^DJ`p5Ys@kh<OiLm?u#8YZq^M4(ZB><1Jb6kP72%GIcUGOsOjKn_f,jH/$ZSqMbRX!<E3%nW+1gQFQMTc+2TS4"T0<`/M_mdG0]?o$pCS'(K-n#/.$g7]2L"b0%kbA)j<d6Z.R3hC0ks^N]]1;?`h4RCQs#^"`@X.0m&sVABqZ`!3h,+#2_J2X0W\PEq%%#.M.G_C<%[\8o>[=FBt/#bUM%hs9pRY(R.W?'O5NB\W3,a,oqfN5,n[][_6%rGn*%Qd!tX?Z^S.?e;cAHKDCk<HK^EL8$A0npBha^QqNd?si.5E?"dsr8320_YTX60#)W-E+*\lS&=3JDD/<_3nX7JAa/m0h;A(Nd4_>P>[I'pU$i;sHR6[tkh**1O/FdJ($-_ZnTW<^rOk_us8;+_`,'!^7.-D*PHF^TDGC[o?>8D@<A@+'M]ET"R(M`*0ns9(?e8?XjjOW2,XcX)e$VVkHs6L*JUi9$J:RE-LBU=UG/3Rmoe&=eSCPo8B,m8N0;qjmU8"Ae,LSBre$>PZQP?"*E14[V)(H^WBL\'.59*:uA?g+J@rjX]2N(R0$_,]4UP5k_-[sU@o5!e'R-Ki&_f\N)if#`dJ+VoaAYXbSrj0?;^7TNtM2E\+.L=fdm%\c2n'IcgS%T"d7a^i3O,]/#QW5rQio)B!/q^iqfEON/%\3<3O6Igaf^G?Y^e+!;T,(\W2O6(DioZ<Z*9?J$m\;^jFjI4"C#"u"BDQu2-3]MgaYMju/[:bf839#F>JDJ.8kR!&I+7iPA#Y_E7`+;K49'OPQU)T@VSU8MMHf*?0''@kCuR!C,$+A`mDCeYQq4RSK6E7QU.:O[YJ9hb\@nS<>pXZCqCcmB2X^2)?/Fj.`:6T"hT_$)5'aV9Qek*<LQtmPB=m0.kE8,ZhX:0m>BW4_4Hi;n=)2P7O<S#CH8Qj0Nqf'+S;b0+;)DUCc!jR"jW!o`R'H&^.TEI*7d&%aa"B<Qd9.F6Q_S.S]#3#Y&.fBa&.gKObZQ-9">AKr4`T^nWG1&J.M>UKpH5QW.B?QQG=3@?6EMAs;bP<VMi,^K;3[.L<%=11Bic(Nb$[TVU\,^PqURN^@9?Z&$_,tc?'k$2haeth1TrCooCa8=ZC#<rM?cfOI(0<c`3@q`\*Nt`iC$9Q]-?LX+5K09*)j]9d%aY6Z^p6L7U\&&bFV*a/>t>U2U0N.ro4q>D2^3r8.I`[d$JZukF+s^&i8k;=)WKHS713]>8`,?F-(_q2;[l<Dg_#D7b:i'TC9NV.@A%.D2FeJW`8.g]Cl0jpKh-TE_<0LYY)m-R6<U`NS3B94Yj-m@Ci=8@u382<$KNQ1seCT8Pf?OLNbpfir,*8cFe:EU?r1!YN3$gfElrca3D*!aQ/"aK=c<os4p)@LjWrW`:gCHIf3=T"$;oJlheHiq3mcjjlJKglb@c3j4+b&Ap!f9MMTLG8a>?6:K#SqeAj#8.ZH<FcM&DER^DE7<2^)7>Hm_Y%_(A.=!t.4I!*Op(rcUX!<E3%nH-Uu-">-D>L-#M\uQ%)!6;/eHCStBQ<76kBO$m[aNMn.X48i*c7Gid,uTB8^@d5/5T/$INK=;:kiNFQN7Z.uU6bQ@ZS7olB'WT/O14NTL_\S(JJ5YF]KVY$U;sA"qpl:IY/V86=Br#^[V7A]d=GZ]rG^U&itbigm+OX/I_AWQ*"omEim2OjZmi/pYSNH=56$6fK06FW*.%P6O'hp7?S[7DSL&;:<K@Z<hkAkmHfD(_5I)ceY3hc=oS`a^hS+Dn?GEZ8:9Q?6EaqaQAN51gWUIioZKO1EhAbKVKV)HY,K&c8*qfU[b2$5#H$A6WXD,;8?0M+ECUVFTdo\$)N$nM;GgH@MM9Vn^>\<a0\:@KT/9+:#:40f8EKZf)M+IZ.+sK6>Occ5I;A"aN"b9QAR^?VggoY4G7d"=fr0QmFC7Z`G38t[0P%s[E#6Fr.!Wq@'*9Jell!N&>Y<.3_j"aM#F3VrX:7aML:arDHQ'Db]"^[`jX";jl"eC5rn`]M\`g2E0=f:`EZAg?\YgG!"ej`MVf:jX1rT&S[GdFTV-2+]MH=&J\R1[-DDtf+)A/:M3)KfN:YYX0Dd,Fr,*-QuL13-.hTGdFmoeB1+?tJoNd62i:5+Y/R)/CKZmGJe!I"+b08Bbo5YM[,Re@.gU.<sRYSUYh/_&Aam'=NAfg;f]C$'Va5'!&"@Vn^i#@Lu*Y9f@dOA@(KaN1c`V][cg*kB)@194LVj8$BAeoRg@k=hpsgm5hr4ZPPpRpUe'op_;Sio:r_@`!I^bs7YU,8"Nai%Ecm7QZ'M8l;Pi7;Z]G$rR$?&"p`I'4`SZcD[l4gCUtgd+DMLlqYFf8AQi2qBQW+uFCtA1B2l6o1,`e2fn5mjRpDSpI,?6GR]V#D5sR\#5X>6G_k\T]EXH![qpL-DqpMhApu\'8;&hZ;7%mR6faJ(kK$LH*?r;aa$]?JM*EhAFVZXr)a<fZ4rdO&1*IC\\.o@9EDM]I;M^Cosd$%.,@eVg9?7I)_&kQ.pFmHLpL5&hQhQsJe1,!J4:N(?I'2Dt:Z%ufH(.Wl@5.5*bTna\S)c^8Y6,)=)XiKciK]\D89mc?Ba[,#>4a5nO>oWN=3ua[@]"IRQRr<K7db^j\:%)'m.3*+T;6u:^PK>Ghnjhm;BA>)j2cq:tXGC3_E<j+@&#^4?bPV9O>&Yo23>`f;C_duYfVonj;f@M;)g^pDN@!!p/?sVQ66M]#6rNN=m_'Bh25;ddk_k8i5L%>=+#5Y#c)lgbO[610MG9JJF<;u97&0@:I94u>nniPmibjh3$[-g'qAf\>!<E3%nP9UXQFPrDNB(4h:0G0?VT-RO<cmA`dpG_DU9M^\MfV0m!OBZB#PT-@@PtVEb@C</SNiN^1ajNZPa%ANkKN3g'@,m(EAhHdm5b_Z'pr4A/@`+XM_6*TIn4(U),GXn_pZV+CbG\Nq6Aa?R"&I=HPfQ)9^)<GO'BNm.<Kk^1);41IiNL1o>WrmfslZsn':7pp7OSC$H`ao[L__>[j9b%[iVTkCWIH5%R9n?,:=j#(I^g3hQJth0`Na/mE:_?rofJA;2OZM72;"t@#<,"$_+Vr\t,3WY,j$uEb!js/mWohQ-D!kM*IQU@8p6gEg,s!F<&]7I?1@/$;aJJj*-"-mE=TT:WQ3^Mcu>^Hp+ckV)O[$BhPP)7]u%Nk1>X&ngZ*r6FV@:AtNXCUo*iYbg"8Wm>Hc7&Uc5^a>^Rlf'#dO9jYJRcB^9).o_T\cJ!B_annBq/FeC3bacp!0ST`4!WiE)iWY$-9>m9gf,d.rf%4q`1Q$Scp*c3KC*':aL/Z"Mf'o_c=OchTZ/G5!c^m;S]ls^>aY9t[V]mX!qo"%-GCR;Sqq'a*mk8_l#A7+8Xg#`MIHMYX5Ot$+SR6mHbGiN(Og2L6MQ!YpqS1X]IJ_VW^\cn#NkpEqUK<h^qZaEGCLbi%>s$<TK:a5Z`VL7Ro?[?efl$Hb@VS;+H0gB%htHEbiJjGdrTP4jeZVNFB'$Q&guX06GK:6.1CLmN^X[aYE#FRL_@kV1e*aDfq^uArONMK;f<I_e@IUGa5QCKVcGW\<hb;Z<O@(rHFG!_*4!L4*?2sNdf>ErcL)82o"2h0[!d@H8qL^^f[-uB'K)rmAqW0E1<`gPdaomcN"+,6?Xi$XA^7XF(94g&l+q]*=?>bd@?c8\UJgpu\h"i!KMajQ0G<S6>D*t)iU-1^+O'HI<U[t82#;9kVJq/B%J:N/`feBkQPt(llm^hJ`GY`;ca`;GYMHtS;,>0R:.FH]g()@YmKXE#/&;<q+5aJosa(AqK)0t/E3%QBqCDUTg=Y/@3f]X,g]bZsZA8A1Jl[QsEUt8)&1RUpQ.sCkV's+s6af8.ZYY>ueeM]\Q;4fCpbA-g29f9i.NsFF+WStF7.ha@IGGfZGpfG-lZ7lqJ=pOAX=J\#o[Y`k(HKj?>bPDHuVa0<6PHt/o7%:E'&%-jj%^m;!Hqmm.LdpQle?fNTp>U#V$REmLh!O;!T*oG+..053\mVFKX5?;V&.fBa&HBg*Yf'O:6-BcBb]7ftZ#WX"q.UJLZ$!Z'Z:&5U64p)K@YmW*Q,mK6=WJP=.C-ldRl=HJ@VTqNHT;JP9-;5bbK6PobB@<4lT5fRl(,?alF^u3%pa#&0UAcEd-(l=!<E3%nUeWn&m$+\>dVOanqt=Krcdjh`'u<J^qkG(/k<$E5;PZD/UuBD*Cp]E9K'[!?eI]5=BRq25CXC_0N?9'eVT4Y?CA.=A#i8\O\:g2ZGaXe&[OF6o\'if&.fBa0-kWkOf1g@^#dHN7jeM9WmTs@'M1mdq[`&LY\EL9%;XO4=M8nVW\s*CX^8JWp"C.]et?-ZA(S.ZO(']bUt>5mBXEJ<Q%HuV.P*'>^[BJ8c)7u"M'uCE$<Xh(d[Vn%Ao0S?IE^MnG4FG4XaUpL5X7S"5l;iof+M.+^:A4WV+Ji@3hL;#RRD!8rSt+bQD6k`&`V=NU,m;_Z#ck2Tu':CYRLU6!<E3%nIgSZ,qdp31Mtt<27lWEjVM-"OU)!8e3JL=YZ]2jWTd&74&&rFN/Cl@hZ=?#&.fBa&10b[M$nNSNL@P0f#h:-_]L'k[&,#Z!hpQ`NFH<NrI[G70A/7,_6*sR]HA=>+<VdL?Gb&mij].R2f:jIqD<h$7&WY0G]?#k</=1@?FStAfEF@Wb_L_!J:N/pBk,2u2RJd+c'r?l^-2gY(D;BOZ6:>5+<Ve5b%UGQAZLU;&n-_*"9\i1"9\i1KJpUY+WqmM+<VdL+H-CRYm$n[:8^r;'J]sr!WiE)!Wo)66)0`%k`r9Q1dlj?[T$5Q-jalJ0#s#jhm-t>VY(K3&.fBa&?eniDHPZYZ.3j3nRG)K+3!10&[oF.J0hWp<70q:ENocCm<P4l7&*X1.k2Ya+<VdL+<[*e<!jp+5465c4^"1e,,)6ko`ctP7=muX5C*/D;FHdBAaYi7z!!&!V<*8)<HrM_b[CY3WO!Rh-dc(pLDhSBA,fDGT0<,I%*>h]?P2]pXV4>e>[VXr6EbS_>PJkL]0l[^JUVe-!4NPZ?UJT&,:<=$@mlubZ5V=^*1`Zpk[!g+E.]'ec9,7L-!!!#&2@@!BX5aD<6N67R@Kha3kAEgb9smM;b/esfFR]MT+YJOMJm*Ut27L)oLrHH1O^tFjE`,MG?='L*==]`]<B)b%N5K)%AY_M7&/KRF=<QO#B]\t0ghl]E+A:LqBg%GJD=*Jiz^akK+L:+4f-.6Ik>G8m@[="fKM,]AQX7cq2qL[G&91k(Wq)gjE#)OP-VRj"9i;#er.lTWe8V0>[_9Ge+'FK(I/dd_3+IC]R9Hd\h(k!JXXf::SqYPdh!WW3#!:ZMWe`r6XOMcha?b,0s:adlrq<D--;T+[OJV56<q)'@YYcofG3]cg8=^jD%$u$lWLV5O+&B08!r9"[2_SWsUge>QqCMKjQ!ZmLlYui96LsUq2=ru*\>TJO^C80$<^7NY\M7\!#hJ!<PRJapZ+TMKB!!"Ym'FJF'Y$E"WkOe#f3B=Vcenh?4,"FtOA50^59;GG.K5]T,o,AC+6n\*(o:_D4?A'Ms@'c4hKnW2IK6Y!bf(<4bc-+:A0cA5,ND(s_:PqRGO0k"pkFmACN/FFO#nNg"KneJWI?I"!TV+uP75ZqBZl7ZM7IP<D@u3_^dGG<]*R:3;L]0a9#bos<e58P.]3R'$2fUWfBooB"0Nn*9NX5[c!!!F`MMgusoL'd1@U]B?!\CG+<(fW>FOJ->aH.R[RqMNciKl4p+I.7=QA?50-mSd1Pcc3:\`QU1Q+eA0,_F":.`fqK<p>EL2)d0I#Q<)HFAO%I5I`5/8nBaqT3j/_e]&uVK\aD.T:\iSP&p6#D?Tc\?,#e^k!:T]U)YB&H?q]O,oR2>5(EPoqR81V<"$"WDjokYgXgl@m-Ho=p5#nM2_:.h,#0[,2=M8@]7/Z80m0OHOau):P*b-OE93n3?[n"mqWP!;VXO"Kk:4uYe'C-h/q&*`j`_4g)Y_DkIF(0l*;nu^AA/[`Ts!C+bDJ"V5=JfLq;hEM9:bNMAYsWYl1gaXVM^^hc/\*<C:U,q.lQIGVh_=RX,!T[6j?"NXBA'(j5K9qhfML"F?(4,_C`$q.P3F:]$EAqPkO@R'U)[7'XbG1`8/tom7(tF%!;dT!!!EfGOA^&63@#!@^-Ca4D:G9\J^\mI+Y[.A&jTO5Mj3jk]_B#qq8;g2bBO@[mV^Rr+>G@Sus9#8pu*#87a)#<"ZO4R%K_cXJ-AnV1^7/B4Wql'ZoFajN!,@pj'MeYum7g3$C1D8t5A*G=.IE.TK+%Dg3iXVMJJ0bPeO.Mm1-4oqH,3nf0MOfk(%ukOZFN=+8p$^Ir\(8Q?G9ji9Q58+,l-cRI(0o\VC)n&J@TaI(UNF.=V;?aBER5kq+M\8\XRUHe,$GG8`L.HaS"P)c#,+!JaK)u&7(K,,N?()EC0*#EVDqds^tAr3gF'>s\!rj9g(3if25/,J8jTBtqD30kpHc9fG=YP>],@JX$e<0L[<`\mM6WE_k4/NP:20rKt"V\Q&apMi?Ar]t*9[VcITU9l+).OHSrqe=^YPO>-hZU>NmgY^Q[nmr?`/#d.9)uos=pp\-'o69Z[_r5QjY:_FT$O[?eXkX=X]QD82rquS5bqj:p]V(pj(K$NT'_+YS+-0d(X,,V6/g<`cTMZpTKR7uO#ReC7UJco5mt?G*]"8*#gaoqG-(;_`;(:VG`C6#31AX]B67/$6']bHLAS`-G`FS&kjtQ"a."g_sC\^*":3K[8oqIhBRU!h-bN3lS[6,puK!\?uC7Tl?^PW@:1;iBl2NgEcVi&H&0U\3/VjpuH'".)YZ,>oBMeZ_VFcjjT><R0C`%:1l46UXl8?'UkAH2=th=iuPf:k.P88usG_u`pZp!SYf[\GKSlV,n'R7[FHSDl]jj3Qild\KK08f7=Mgfp!/Ce&f<bD6</g?$_j[M+9r8lHe28cSS3Q7^M$O^P-_RFg5B;E/]=#hgM#.sW"6:V,C2'Uc0n3NkFAf%#\V?!U6so=bg%_j"m>>=;&sIHB65f@+(*iT]HL2menGN(@0h:%:F3d6('$Eg(q,0#l9V8Ns9n@i9=66i[4;Il.fM&^J\BNuW.#<"ID/mF'M6-c_6-T/be]_TD$j>'f:fY>tsud4\?FW0N1XQ:"Kl[m!M:/WiMt"PiY0nJW+HN)]*(j&q,g,2S@h0.n\O-ktn&4*PV:FDftBc7d7+^S$'p#%"dEa!2=k%M9^GRoNH``nV3K+YlFW$h?P\):kaG531d8e*.UW6S`XYA7oLb==K-:mfq=ma[@<RMPQL3N6J32a&ZAIFSY2J2\-^+pCeq1Nh:8RG5UDuB9si<`t,SZ-0k2$1gXof?1H%Q[f)ON\<EA2DcT*W5MSo-RdK/^DSOp!rr#g$eBgkL`@eptr,>](V2?k"oUdQ_YLqTX4O`omSiJ$E(bjm[h^>Q#9OSO],H"e<qVR@S\Kikj-d&HP:-*e#nRV)DWHeZK.mEKE:VHD&58"B)D76(K:GQ.Wf(i=f0*o=3nn_F5:h=<sWnQ7d1EP/BZHATjC,RpslH6(^\+9&)Gm,SWMOWA^#<=UNQW]UeicXCZN[5;E=/Yi'l<C!?QZgU_CPXm&Iu^sS=\b$hE9_1ANCm?CIGOkW]lKmk!<<*"r+k52\bl*fQcnLADmFlm?fgD2`9138oZF;_i5\WV;,1nA\,p3@'$3/[di%Ca`$Q9QSjbu%e.HC?;CqI8MlX0h+\0;se5RN53aed1&i8D&=l:&2(8,"A$M'$\Y[3-23Q,YI1hoKL)H!'H@TK0;b"@SuZSJZ9`>(TZ6?FLddIiuX<#W_`"dC>T//0(@i"__5BSk:n`@uH_7>9XkO)2R7H6nbRVil,-Hl%4YX&lJ*l]MGJ,$%4J3kKmF6$nc?VJ>tOV_<M1okW==^$NJ&mi%XbQ?)H<Ors&WL:cN'nDdL=T"%Ml]T8VcSXlmbm:VVYUi>F]1@Ug"W34D=p[Cpgkt%P#QZM?&gVpcbS3"&T^I1*\_7<MD=kYF-jc%iMDHAVjU32^)e#o#MQuY<;[7XDGbM<LuI&7V0YZ[i3f1;-p[3VQp1[[R)6>T#/l0U8J6%qYhS-T)pn8F$$j6bU10/GE-b4SD"9(qW)>?P*#I!p]<Y>EB`=0D?5'c/(/@^2roo"(9YRL>^"Lq:OOYZjoPT$Z^:Tm(DY"lDT0"9o#TV^,8Acu'$k>k>^>V'VFk8ITnkd^*t7)4?/kmY"P?9!>$68Ll;C.4m-S`p48"&/*74kVHD17\ccWV,]86f'MDMod_ecXL8l`g)Le>@!uhcb@QN$KrUl.ci'i(*Nj-aNn]"np8>U<h#(9QZ\khHE7M`7^KKW!-FU!g-7n]W`\2.TJ%@b*,KJQ(Q2LFM?eKn=!OL.a1@LW<o_j'SRIHHbXH\(p=8gS9o9kq;/6&*%T-^K@3<:2XaQsfj;,V_`_p'i/f1d28;8pkkl?`$^8Y,.\PN]_@'2^2[ei`VJ4aW5>X%u>fRsEO&9=+o2+SUWfg$j"gnProki;BQikn`q3!!!#oB2_W'E:iAA)`MY,,SCKc+Us6bMZ2qF"-4Ngf)F;19,o[6Gb_$8k007B,e^Ig?QtnCk2kWk=-1>]Z7@H)F`k"TC@:>-mU`66'FHk]G+acJn\F&_Zl8@ZA_.%^%NO2Hp"F!Ca0r3T9I,Dhq0=5`.FDE4rJUS--RZO5U_nML>*tSS;+.46BJGL(.3`e*.sDRBI(`Q_.h\NeglDleb"=V%-A+Sp]c5s[qP9auDj_>CpmWl*);bBi/u`85GZ$sNc$,ChmucJV3mB-h@G[i+?[he1lC4ThD9"VaH&;D?[_7Hd/X'mt;H-mBD;0D(&5+HEh>E9"=.9iu$DLn%9))rOGBR=TV?kC,i,`%q>*'QYE@HoNf-#oB:6L\(\]>,KT6)ZIQfdW!EJGf:Wq9+tK78n.erP"u:/e=1FY1nQAm:f(ZLJ]CA^-DhR%0bt<E#5WM(BL]!WW5iDakubq>4M`ET2Y[.G97*g0--_0+SR(-Bk;'HS[5#g\XmDUK9cK6=/#43(VoOH_/L-a^hZWasgmWR?YVN\@K59Q5$$03EReK6OMI!CmL?oLt4u-,-q!V)Pi'X)JR^l[&6^$=%!a2iLuNq$D`K*IPmB[]lMZq93'?$?h3a0bKEp9PnY_$gZN%hp.McA.>DP0e3T7EoTrmm@kMFU#:b!J`uY$NrI*G68di<9/Z(0nh=b.C!Gc01X24ugS%lE1@U5-^,tckcL$^g'*c%TKP.pO7gWtit]CjTj^*Te5q):IL*`_GCTitbi,?$UKH.-VMY./u4p"Xu$`-?3Cj``lCr%e*@D8^Q3&a-61E>EP^<Mj2)9<`K5?p;0clM7ZO_:5n^1J.+#Y3.$Dc'qT9!!!#o#EbULIcQ:uOp^5<md;-?mbBPb^A&%p?I;5F=c(2P;sB]Gl&<dEdNXNI_WJ(_],WCO/nugS1p;]Q8D]FPdchK_<Y^mO'_//f%F*VJb"<2WKiS%+R<5E-&fqp6lV=\P0P<N#5p696ERF!5OX[,#(;oCh_+$r8]Eh/093EQd3B7t$\,KdiGH+GZ<d&?]"WrGlk!)%Vh!8!_Elt/hhKpSuf%Y)\d<+0mPaprCJ+U#EEo,L5[&iU6S@fJDN3ACiGLN?ZNq\s1qCT+>BdS8h;jSj(Zi+ltB2!JgDVX>r5MPlQH9>E1;QG&I)o&egrGC$F7ldEB\a`b1r*e@WRgmbMj@[GVCQ<o9[lsE5DckJ/:=Z(j5`^i.N&nY'/)9dDJ<1JBgpA@k;t4p\4C$284NaG'C3\9&>"O$VjPq_+<si!&O6a@'>](Q?g6nCKc!=uSMF(FiAhk7C%m<^[\sZ\u`FQ7L-AR<p,GX$UlfsbNdMlSH='_E3;^)E?"98GsQc!:;O<kf0ma3[_:/3)]-,uFe6DIWS7'X,Op!eiJV^\t[8q(3O6m?6KWfA&^=GHPhHkF2(<b5mm.q3&nqMH!Wl'&!p,&5$YasAgR[(;^Njtb?[:J=?ii,pY,.D?dI?<PD!Vl?T?S[s1B(/i(k8h$aP,U4i,lrj'P#I(iH99eQY*;#qqX_mN54aZnhe_:l0iQOh62Vh)Eb+WOa%-W>'*r0O"m(Kl#KGlW[4^S0!D=@>O2>j[;!ulJ/Vd:?OB0486ITd_*c<k23a%@sKf@P#bmpGgq[JP'=rJK'DFA:kf8l-4BB\ou^5=)@)p&B3Vg]P@rpe6PldPlCJ%;VEYl)Z:a>$)X&EA<ob-]-.`<RID@BC=14bZH&qgK9mYlK<<XPcLjcqcRk;]*ZILZ]5DaM'853H(=Q?F<r>!0>4'u=i$!1jG#T3]-'l.XiJ7'CL52Y()7%aT=gDe57/?JWP7Z_(6AV3C]aY;r6'qUHuSuVD3Kl!5)f(*oel`^)(j-OY-,Zt%j,PX;56Td\T7Mb]mGHhdZPg;'1\6b'$D`"m$nKh=HoAGjmD+$K&5Nm>Z/LL@IJ3=W1`.-88bj[U<([(nanl#/<NE"<m[fQKn@M0-Di'"T07>9n++B[#VMHrXp_Y#;G``Z>#ob7n@l9:eCJ>R<i_Gl"10:sZ$F+S*tTpXp/p?l'[$9l=_sMSiju]onU2hU?)[Bb*NN1Pp25<TeuYhd(C-T+Hs!@$M9h"2'b)\We10:\JBrYrcmM\mH\1OLBVq#1fM&D&`,NcZ:n'Kic0s5\!<<*"r%gW7Lh"JqbKD?\n7PR&>hkGd8$613.McN:)a^7f^k%,S2VVW?=74lp\ku@1Gi\))KZ(Au;K5`4>%q.0mQEY5R5(QVOe.k>bNC$#A6(E5j[]t^S#qK7KSA7PoK#LCUsLU69?IUo*2Z+J<\!2:M+#3m1GcA0()?"pb=bX@*5-PLbaL?Z!rF;CCJiZK4FLI2"62TG!!%ONR,[+72n)`L=c]r:f@TcdiPRB)1$BET='#TYJQB:%kK_nqG7D!,j[QEb_.GDp98_3ISq`#SmFo0.i^%g/BjpM5S*o^I`C5JMIJfZed,'j%k2k_J3CFt1UsdcBa(Xq,'f::VS7Yf-U(*ll,*+c,b03GT<DlDaik0kZA;6L4C"[bLkVIobMGJVAi6^?Hf<8AW^6U@u!o(2&#>6n/?6p]o!!!#3Jj`,L":#05<)d7H?X30anTa7f\Qg0s*e*V:_6gSV]Y(m5B?hE3odYu.WQ*eM6H[HpLjKh_kOu#N?Cq&og:M(jL*KHKn(e@=^S@VWBSjejl'2uo;H[U$qW#UF:S+BEjlMenQ69m0^Gjn<)>$O!=inR:OaeD*lg!FAG40TT:'R+a<`G<MSrjp3qr!;%TfmaH"pNh-qBRpW-_"(9g1]lM"\U[ea#)lG.&-bB!!!#+#$`e4e^a'^n`+V/ECsf[6XQrrQ^*i,3HO?$M%drF%CU#O-,-$c7Z0'+'1j+AXK3O/0./h35;*h$7_cU/IYgT2Z'VOGkXa7N^Zb:\1i9#4O^t12:JZ<U+8>!=NU*`b-[+q7[bc#K`m*hYCu)IBn'9C[:E]sl&/gmt&<BjZ/#,fi9;r(f"98E%!!$[FYHB2N"+h@<?!L?rSX#K6oLVYq;Bdm5pc&uO"8[o90IJq$XajG>.lWn>ZG^UL2c@`Xeh0u'z]\4dpnu[ok^_1";W.05:6SpY()Pu6.q.O5b*;$$/zi-?_#/3m)VYEQB*+FtiI8207mnW.,h*S=GTT;PL6>.]._znEPQ=!\*-F^\28O4;A0VXfaTjM(KH"e^YQ%:JRK@[UZAuQ;-Zg+<VdL+<[`r`slf-[Q8:ciTueoR3n+h>$YsE_%Ks/KE;1cXEAY@#RC\A#RC_%6_TT/&0\6@]aV<)7"?RM5X7S"5X7S"(^F.e"9\i1"9\i1KQ2Mg69me$5X7S"5T#:-&gJUg7n,s55X7S"5X7TI\3Rb/nZ%8n&sZ(c)?9a;!!(rrd+Zsm!)5puM/`7jz!!"TYM#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0joh<z!.Ze3M#[MU!!!"L0n5619!^J2FmRI]QN9j,8sNBq1ZNY<qsU!p](?oJ,(u`nQN[?h!!!#o)ebfh8rFmASN"e7qoe09hsJi\COTRGm5Nt8U%U9DmVodc/#BJI+[rfK1-Km\B5MM>eFUdjlR\/?3VE=\`-+%Ug\p):WI,RGOW!?Jlo9@YYjXgAokp+Ngj_8)k([r^A4_sqOe7&Cf:68VoR6m<W98[S1Ug`;W.)IN+uSiH;9-k8Qp5fCU0[^Z^=L#do\4?:q0U;S&$gH9-ltTVhL%j"[siD_UWHdMrntR%@9]<o[kog<D`Y(nJhGAr?$+Z_nnubS5GR4`oQm:!#TZfQg$[;Mh-P>H43l_:W-K7Q,ldoF!44.K[7"`V9ul37GA,m:?/)eG#deSA]<;F"(uaC,nu&\g]\NnkYq;\U]6<"B7#MuKrm\T2TA)5:U:$:hjSX<#L95bQ9,,&BeVV_aWGcrnLLmlgh8&R0VE+SRoma30J`j^P]:S^k8_$i`VR4ES]PWGtD=OrH2fN.8)uL\MA1!kl(H4F^d^[90gU1nIJB^##bKQoRZtRKMpf[$"fDhlnJ,=*D8-b[B5I%K@8YKYo&`^nn1beLp:HG32IFb5pj<fWY?#j*Bq`DA.F<!:'i,Pr9@8U`MeJ='E9n%2ohjLTrIb7\FGN`j:FnG/1N(PK32f()iV*tW9T3V*)f<JV(*4Y))`PAFZ9'mPF,2YE\IB<TK5.dP`3Gn3>H1Rnor:.["`"bV*kRTmq@t/=EO:n=?0"J&(V3dr8h$4GhmC+1PlJJLT)sh33BlDV+I@'D7S4g/X9)nql!-knbMBtkDf^fp.)3"cH294`CM*S4?C/HC4PtBiu7t6=Z_&]7lQ&^@SkP";3Cl-Ta%K3Y<Fe*]Bo.nfA@MN)1T_]ahA(KgL<9?E?B>*BY[-]uo]?I:NplS3c4(pB/d(QAQXq2o0kLcYKhZ_E_k#jE'EpA#=oUX1fdj&JM3FRaba%,^dF=sFgRD6G-Y%W9,]NBZo-tYrXFuIDSKh><ne11%"mr[1M^H"fe:gm!8b6#Dc8t;\uXmm%tRhnem1u'(!Q_^_LL&K+Jn9D3CWR=q#+$-;]EB6/k4s%bm>TK(:qc?l8mPOb\ll,iR\0YmMM/J]UloKE?8M>uc]DR.^M8[?HS,M"aWAR`^z?3..:7"43cs)r(#L80NCC+Z:_7Ot3GX0U.m4^;hnL'a-kCPgBe@T'_bN7#E?m]cD"NppV!`-P(`gRP%c;)gEr`4iRd1<em5jc?7a)EV,:p9$'V<Mb>OddZnYA65n%fR1+Z?"@7@9g+k&a1]mGVX*0tHF.D5/t3C'RnepH`'0[>$n?#XWu*^Am:'08=h%s,]=,cn25sJ+I'7UJgO-<Gg:jI'e28C*]'7cng3d:+P:<*<@R[R!P'DQW!>QXT;U[ef/,*M`d=uCU#4A0c=X$V+V&UY`<E=i*kh0pn2Jmfd\m>+Ee91oo!!'h+A$%'J,Nl_sTqPA\is8G\nO'eel(a[&g=cBF`dN;/I"jeDM&N(SVEGI!`4)X-1m$9<+5MgP:Q?2RCF"\`\Cp>YYMZ)STj3S!8i&D@ldTb-q(oVHNU0>G9V^qoT;3RsY?Mh:TD9fI,:r@TY6onTd\nHm?2hB_$X+ace>0F'g?EnB[mn9*Gc30fZds,L028.4RB"HFB_L?2ki*.E@^1O<6C(.^YrHHOD@NN^Ylt+-!.\,\.kS$ipqRA#cYhc8*(.lp&*j)hW8NuH`0ZOb(k;#44L)^_P=CMYa^Lh7R8V3gPbtVOeY#=F?/sG,&L:]m^\:j%e5T/<\Gq*Gm]5@o$8pL*YK?G(M;b<GVWcOVI\/5c'H(0*7P.K+ZLZba^M>Lao33F0\;Y8,g,0jh)k5GLqs+]>.6<48(\U(\/Mt[CTp)nuCQJ:g>tpL@m<$9"?YngAD;5c/]&.RTAo%"QZfX<!!WW3#^ak(\Q<:Ncj7[e^R*]NqY=bcjkc^b"M-mfX.TO.J;!6A-If8InCi&RPrP#Vqi*Xhb?Gl^=3RYDth$o\B>Hht^/8S-ur<UnZjp)5L;gf[arq^p/GO*;Lp)EMmcq,a9aO\P%aj,(R/%Rb=dCZE@\jVGQpC4%.leFm:_a%P0`_.gpAk/DZTkG6c\H[AE.+%r&'W0@C?k`3HG\sR&mMiQ%K+2&%&tc.=m`jsqUPW+5I=in'"70C8)OonP?lNaRr7lMMj0`UQDj"lKh.SJuecF4q8ni&ln_#^QId]^phu*t=FRrFZGKh$eJ/H5]*Zo12co$Q\4clCJ?g/*mmU@9`'ph/!l+D'-c_'6eFj]#98pM+i9Y1Sd4+h/1-Ducd''\X?j]B]qpfRHd-`q@$hi+9(!!!#7^C.(nO`KCch+)%G_1BiK6_\LU4[r0D\T`i&`)+t[VlNPHG+J">-;@@hPU1T.mqZD3*-HC,;XjP^H7naHn'fl05&pFXbIUOmC;umSD2/QKcl4Aabs"=q@gD'hSN[oGB?c_oCZg]RqJCUZEMqqUmHPn?gA+TuOEI*0gIT(Il(_DM2TS>][10eNV2n^OCfo,.H;mfQ9U`Q(2`coo?B3>K5""sX\u_MuW,YJ[VaW-Klf!-R[uS&O[dF*"M*4M<*W+QtZ"Z#HZUA6%jZI$_:Yj%J[dDdm).:4roi?*51C'1IB8P'$Q+Hj0dqM.Yc5#B[m2Gm<<oia9m"<@Yp.6XV0_Y2B<eM."(tE(nP.t=#\*;JGICjZns7;klFm]cVURq1CL44gDS9I0D=bPZorAGMD3_PBYVqSl9T%J6W[-s,AC51*qA*CUu@gkL#!!)N7`u7V#[i+h2>FT6Sen50_QIt=5LUAMBmNt%j$pQcB"5TlMDTrb+7<A(`W$V1.[:pJH@CISk<j#E\-nG6:]%/O?Bra#iKHI\A(2l8&^*J^l<tK-t'kQ6c]!^qT1`8*HaSC_uVm9Ou7+19*)6.aEm'OJ'0]1[<:FFc/RB$6B#M.M3?/(Aa!k!/fN9`hll^hMU1ZB85W-'Z]feZ5!@JrCkhO,4t<N3$HLNaldXdKY0C9k<T?3u%sAu]S&CX<-\OGp'^CM97bl?<iUcI=/BM,SfB^KKIg[)\>#Cf!5QHq(UA;=*+Ne9:pI.-b*YH`"+0$A:+Z<W<,L]fEI0(0dNk,]3EPkLOJHLL0"'5>Gk,=ars.##Qk\d0o6!eu!:k,Hh4M!!!!NelX-rc;;3S`;YO5(!V!ulW[iu6eQUN=]/5LpL`VGYdXAlP0TiJHuDJgKWZWpd?,tj):A&eC:@pp!(%Ne2@g6WQGh#2f'UfHZ:([0Z[Bg0(MScH[a8rceiTr-f\qRnlV#gT--d$lM@FHp)QH`l>B=SCSn4:[&]]u6Zc$MAlKELVF:4X6ht>Ck(A1/2e^`WUM8j/pL33Geh=Nk84pA$&\c%$^hW[b%Y1uWBjPAD%7C;/UR_%3RHO>,De+D/J?#Sp1J9M%0'/@-cZmA['NmYI)IVe5aW^_I>k`cdp]7Am)Y[LE2XHT[(7LP^jB[*h7oUuBf!!(5PN?p@QT9O3,3aLI0LVJPj.oedEIHUHCeToY%cOul#giM\\e%Df^So!n%S(I\L+[i6A9eENLXF?b$=qo<ADq+6[qj]`I7H8gR.&V0u-0h+aU1:cUM)T0^%5;]17qU+r::soR;4bLVS"1/3OOga+9_\JOor81Xj'giZElg8jfW;EQOrNdLZ*-_te?mH&Y^."hQ'S@5DQ0<dC0LZ'cemDRU(=0odEF5seZluJ-Xu$=.6KXVVohj1Y6O7OKfY4L*?E#(J*BclFo$r:eJ[s1]g&K)ml''R-3=/I!+rIT&pXLBS$"/R)AXBGqGf7r_UhISP\)Q:Bj<fXp\3.F7(6s`^>GS$)pUVHqphK2T#9I8,i!OTHZgV9^bt'!a>@F%=$ZEN%%F!2\g+"qref!eh3o\q>ll9+$Zn6<T+T,$jBC"FOm_<mkm\!9ke8=rE+HMY/QGD?AWm)%)?9SpN@A"HgMKE9FgDuiBo,O^hA"\$@Jpl1dre@gYOp5DD@JTF)(*98Z#G>[TDG_(l+1G?ek2KQnf:5TeW3Xq7S\6(+Z2@;?E[MC]f/#IGg;<b!!!#758NS],u3l;WhQ;G=Ek,:[qW=),sEi$dVZ>h7,p4h!iKu0?X$%m>3e1Z6O67^ZUhX;ADFD_`f+&GSSn"<b)BS'hu0VUS=<Kg[8f$Fh,p,Rkp,#5M*Y1&(=Mi6m/$As6OXHRaJYU$I-L$TiB/X=CK4#TVA:P_cl3_JB!<Yb$,b,p/uQRl,l]+4J+(iU+.LSOk#lb#XgCLpC>h'f^*9GG1q8Q(mHR1qlXf?O5;&O`Kc<EEI=4anA_Ib+qD2s8ld*q]RJe!'!!%P!'ip<6/pGdJe+p[+UFESJ]p>TY.>lDoC2s5UHP?A/YgLugLpjdeSKAI4BK!e>G<UK2Y(<e8#M=1g_)PIo3c%D10@ZuZl`j.(&g-F'qK:uBZ'\k+US_\"WM;DnE2V*mH&]NVVNi_FYK#-6(".MJK!<@2?rPrjYNH9r5Nm6\0u;EU@OoJYle<Pn@RLGhrTi+5l]:)(9q-%A]Yf`<3&e_forj'8Ite!8r>EmGP;<1=!+6H*k"@8PJ"LY?q2LGojJVi83sXup5km:i-#V<L*1a6sC6asOm_+)AVk"78al`9D+ikW3e>NE.Q?I^,;T/9RDn./gW'm_br;:c9kI]-F]u:MrnYA$ji!-b/amc"/"pi]N?]o4]k]0[5#Q/$_;+c\WIJYb:;Sb.+(Z/_/U8<TbC!hVlMg+#:?/phq]I6S=`@bMiZ).lQ8kV">D'+/5!l&3!A(CN[qX;8O]OY2_.^RH:M-,63SU3ul^nk0qFIh"ZrX8c,!5Q>XlRYp-c,(<9RsrbS%arkG[N4(_%bIZ_qcbXLR^-2miT[$8^,D]?P+*8:G5VPL>Js%BW3?TE9js]08.c*AL<X_dICsoMXVI+W;C5=leimfFmPK8T2S:r.Gt#bJ\hAJH9iWC0(r&6'U>]nR[$fJcgY)jYpRPMuPt3RX')@[MhJCe\VT"_J6q`K0pdY/+UVk>W&ulfY_kaAL`ja)'V:ds'WY,PDXO*2sWls;a/GRr>U6rBj-0gu#IX_R89cTm6P..1g!!!!P)qMaD=WF3g6`e\%O>1\Od_9"bO^YA'M,ia=VmG&Ac!stH\ngTr>M?Y8U+MNI^#:clW]C[D7ZaJg+,ipHf5[Hn,cgH-7#LH'042V((,K?L5=qnEP$"8@-(f"Uc^S6.A_/r>hahP`s3<T?Yeo>!1pck8L9>IdfsX@RKO:N$9&jNugTF8CD7Ps%/2u)l-Qk//Zeg)=f`p3:gMGE9T@R*gf$^bVXus,N[4qH,#J<3p#tk-.QAG4EBXlb:F_[rP&UH=b*`gfj!rr<$s$Efp`+Nh)]'d?ES$q3l9/8`&#iRe7*25j'@u:-<J(SGDl8YMESYQk83cl3Lq!Ja%[Qtq5K/M[PV:cn7LmaFn`\1W,@A=^#"]1#nQoBf8<^3jpND7#Lr%%)3Oq_`]f'h;i?N9LJEc.6LVnZ`%2)`AE`FcpM=PqVB#/_5e2`;o+$a`<9l=*^ZgAL#;@7aFf@u5%d2*3LGiq\KZ3P3O3XdU-AED)N3H2QAM/Rb-Odt;dU6'>dB[e%94VocD]S':5?>GD,Iep5MMd8$6HQG2oDq%anL!!!"4JgFn)\uMO7%FL46^uh2WjE/^]()\PIc?&Z^p`phbVs-s^nb6015B=jN2VLT,*RCl)!bhek:YS[3CWA6k'Y4614>m!Xbd$;e.?,<;F@O3pJpC[ppddgF:=C0"J;mLT[QLU+mPVWaK:'5FRd-iBT%e.>WRhk(6d1Ofqna)s(qcs]T+T+1NaJ;&9!]PC7bWltmTZb@D3cL%[-]bbK9,!Hg!ZTk`ud?U.MA)$>'4!fZUB7>kcWn5[r:J73r!rg_*gG$L@-VM2Ot(in5#t6^Qh=3Vdqr>>U<C>aR&M&ij5)@'j=&6q,Hqi,$s'ahV,>5q.e3u2?<dXJ:@euYf(2LaH+JWf,<J[dpS'cj;pGh%'lK^F7P\Q^O6%\p?i):W]L1[3,ll6.5-cAe4iA5"F&*6;m8t69a'2b.m^MS<GIshRTf+XGPAS3Pnu:K>2giH=F%_5Q.PS-U6ml3"]B4f#ckbB1,JjS3HJV@c3t,+_:mN4iFA37o:>@GbkE*EGMdJ0(:@-4G;IF7R9eZ4A^2FPg_9!\ZTaSfIfK3KdYtZ?/keuc_tpf!ottD115=,le9ri;[]t6qqlsttLTG>bFRp'VI+tSe1`CN.>30gsIicB#fCIuMVaU>B3.(eE8&W(5_-=/hqZT/s\jUh`Om=XEWn?2qfbr-8H]2mX?q7$C`Q\#T]&fsbQkl<S1L5.jmSPnc1o.[mo>WE=Gu5QV'd#n'(Z1N_rB:m,0AF#.:qEFVK8]+TYF$7Jg<f!)SD'OS/DP1ug\(f)WCQZ!:097Fm?-Zpeue94(d3;mno^Gq*_J(>fQDWg8aQBbNQpSFmf#?o,6uqYLsThH#6ju"(kYGEd>&\^in%e<m+o3i`SqEcLp4Q6]m\D[\Vo'Vg3Mn`UG$61mYN\>8sSg_,jq#ad."l(7uSEC0I"H]94cn>4M-PZn&"^"@Hu]DlP=t0f'XP9m%=iNW7B=C:^Q7\jraUa.FI)X9SWHIEAmi:A[rnCFA!T>kUD#UMDjLNiYQ-,Rf$A45.+pWYOubq?]*a+-JunC+EcR3)XDa2\"C/R3N`4o6&JIY&+K6G%8#A6Tofp1^6X2VnT.?.]X&sci."\U;PHRnn09`7_h+kkp@$DC<Km9Nju]crDU>3XT:^Mrq%qqQ^7b;WoipOM`MkZmjB9[oqfP%)q7J\(dU,-Z&F?#%_RJ>LhYUQk#6`#HK[.SY,&L8Qk9'`pGc.DJ9_Wr)D">UoT-+*tIdpq&AhpFFi0r=4UVaUNJ##AIj+O%Om3[>\bO^o^s5AjY#MuJN&uG&dRm*KtR'#]SnZVsnbRR6H>p"lp31sKV#.:;u4WB:orS,;K$9.^.^nX#D89]Ot68p<rhoPTf:Ckqf4?VurQL\"]0fB9.;r80GQC*.a'WpJb;fMt-k;\r67Bpo0WH1LTB.T`gG.N;b=h%c_Xi+';VKXH`%X3#_]g8!/Ib.X/hL@C4X@K2^:#t7im@-fkH2OZ)a+(DVQg:J/(O#J1O1Q5Z:lLakHgn,op^_k'o(eX0rG9[!lh2,R=dPu:h)MfNp++HOhS*]@o?JLsjM/G,mcWL*,#<<YId$,7Ub$"q(\&rdm3)2DVJ*@dZ0`T/H.Y8)FInt1\]9iKTIW(2@J]2l7p@k?1mT_rq=24[T-oU$LRJ5D'rcLO1m0KhcqF-'Ye(=rFDh]'?$?L.f*rZ`<t,Wm.@*;Vj(HRXa0mGeO-<Alg]5@j(*e!Flg3o&RTA\/4/pE^HRKs9ST.q1/jP^@=LtV,71P2p3'ZKjb&*!lKoKZU#.o(Vq(&!.;r%It3X99M1EGhNHIoX4X7+-B]3!RUBudQ0V>9k]U0eJPV+=BBHW;AmY1cDH!<-V22^R;c._]76!!!":""=f^!!#We6i[2e.$5,C!!&\a)bl1Cg_37P7^fV:`jtF!"`&<%:G8^F`;fl<W6B09-#/LRgrSn!+S%*i*8^l'!!!"!p"N/sAHoiS)jC2ch?<lZ^jYN-RM#W$!,u#%&cht4TL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ.a:C!!!!kUdP1_!%<sB!<<+m6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#Xc+=1VFc5YBI;6AtjP)JsVBbbh^iK5G+_@I@Fn*JsH*aUu&mdpnf!,uRMQ4c"):DVta/QG'sR-AD89$D.Z\[bo8O/_GXN-k9'#9OEn^+d+M;'uQrg-W3om+%lGZ'6XPSh1cXI5S@$2BuqUd&25),"*>DpRo;e[:\pFds?#8oiY%9efG_/a2Zr5T@Vi<=D:^srO#;=TFd)P';AMt`2kuZE4^r%IIbk#HUVU7\js\TaK"_mCA5EsfX$min6NI+(Tr7fEQ^VT/AOcP;L,Z)4_X6s&<hKMcc;6@lR4CZ#ot)Y_+*0Z80L+4:K:&andQZsI:J`1akW[0UO)g9r$'/+h464fPhM)7GFn-V>pI%R+@!U@9oL9$kO+fumcfbOoo!`Kcqb>e&jBpd_5t718"TS&T048%R""=D2AZ>npSUXH&e4[FEGE=be')0:kq"DaB6<COpk%b8(jWF=C-#/gnTq1@&*/\g6)khsM7NKr;[TN9(<YCpb(WnI-0?P7Cf@f;s%gA@;Hg(V.a$HdUD^^KmOcINce>^`,"%-fcFg9D\9DIOgb1U)8aFUT2PS.mc,]0KY39h@5`<@WI_@12G@=qS7NIcIbGt*H;;M+mXmb+#H<6\\UV_]#_nZ/2e:k%RH&Sq']2)n0r()$XHK;GC765keZ'\&:h"i;qa(k?'1$J:!Vr$_jGgq35ZX6<Vh&=]WBc_b&gf]S/`7Wl5iLZ\?nfQm?(7goE,@Y/sI:ic-MG3?fjWuQ!'CoP5>&B"4aLlj5[cr_".Z[>sS0K<]!.KE&3T?Pe7kG"-/i[eKACd?>e5dl;So%VlS'Xqon`UGFT>`[V'".UCDV'<qGst8DV1#aM@U[^3QL=DNI=8ZUjuo%NT/5YTECD<RbW@lAmA?>B4hJ&nV@?_7B<[`LHD:AsrkbJI%;U`9\RHPECE#XSI-_K=FlRnF,3"(LDF/-4mXT0*NO6aXmP(b7S+9a(Tha7k,%H\2B>hc-LuBq%lOCnpD^[dddmiir*jEK9D.2GNa+eNU\'/$64.G1.mR^'/1o+tmHb;aLW+&3TJ%aq3)Uh.e]Z$=F)RaB/=Jo"&4heSoo%jNM^i+s#k9\8*Z*QG;CA3^&>M$dKh>_oPEONa/c`0KbDu+S,AuqWsoFnn^+uDUA#;8b/IbNPP`53bjLA$'_3Xi%qnd?GM7\8kd9q(TWmp=GJmbJ+CgFaS;9O740Q\T>OKZD">$u5=*9%?$`B%_q#D`mnbM[+$s]E3h+a=22A7Peai*<csts.823YrhOLL)^FKEo&uqO]p9hCeDp5mVTpcqP_GN2pFuq\5MkaXF-b.d,`_f75cogB#s%tW9h(a`6([6',FN5$uP`(/YCtj&@J-kQ^;(#n27,'7uduOc$6D7A")oVOMJY&EVu&*b\CX&pC?g.>.o402QgeUN,._0r]NpL3r;3nb'14Vfu1b';$4e>?[QZn)kh0,YO\dO<;CEAQP.Qh<0@m5G1UmJpD&?nA)rTK4Yl8Yn>-r'g8<12GJ;YGem,F!20Z^63a@djHVLF]eEQj1J[(2DX/.EiWV04MgrECR4uRGFBm\V&T0%,:bl>Yh1W$21J*681!.`rZf</GbNerH]0*F^n2P[=.d!CR35uj<ECsX"t8CXNNo;@@qBDsG(`gd_7:g;sg9WODFZ/hm>R_Q5knh'Ycjaif8Mph6Pe/;O5$@)/ts%(1$o686`I3;'Ae'"E1=r&YGHtLo)=)M8+^[(hp09pJ*WZNm"]lE_p!qARlLT+j2-Yp(C'H\:[.s.4-2)(7T?BOnb[;DN\V8PZ,?G'TJHK4pT:mFX)c_+=I;XM17Hj#L*$Z_aZLm1i4U1[?3pn$S=7_SfFoDgW'M:G48iZfPJ'eiW-EG`joFq5*SPXdEC:$hGXMJ$U$571@IHf[?$*$_=":Ua*j/OrF0,H##)EL7B8O;OT=D@_A%O@n`I-IYg=Z;6=C`Kd5eEQI`17!f;.LT/C@Bcm*#]`414TZu=1/Z)')n-TFC'=[!qJWjC[Y=O"&[Z04mC-mg/n]iTO@nRnfF1dRYJ$QM0#PgT<lusC7rLmr7d2j@flT;2Z-a!LNE'JF6)J;&WG*?BE_<0p47XoV,;jsJDO(/qN]b"WZM:/Zm:,@kWRE6Pt`oGL5Pc.<%VlcuLlT^bt:7#K59@Jd'Vle,Ah4IC4>)"i^g8N`D8-q+s7>Rts9?,8:n]CWYp[CQ(iY9FK/17?^8*A(SmY%n]3GraqibX!dntdm8,1'B!;DEg'"S],@"jWl?Nl.Hb=]O]LO-Y8jr@h(0s.3p?YiO^Z?^3J-`I!C8#i0*b.["+P0HKSh@^@!?iRkTQc[:2hrZHAmK#Z';lXuR."m.?H;$fBdk;as#E:XG>f4<#E(o5?:K[=s60sUR(;=$4l5.n%c'>oI7:&+.f@fBAoQQ/50J:ARM%hCBGL;[tRFCa1KMSu#<GVjjAOLEBl<YHE'lg!VC+,bX(XhM;FMA?$O,OV[.]8\]p2P@t+USL9X_!dAcGJZ)T`!ab8"\nei%!gG_MP'4ZL)n@j4jjrUb6iIe;[IRfm2Hp':__cgIJY)ST,'Xc/LdqiC*83D9/)QA-TCc4(Tt%pbZQ;?(AYaXNg,pT1Gr'Xo!UY_-TsGbc$-J5E`T0cq2-0$[lZ5tGIa]'K$%,oh)j7nE::@hVp^fCf<[4YFtb#iQ\(_Mo\Gt6.m>r#ZZP$-3\k<8Hk!8=9V)dE;AlGMP\7MCUp6K&:&+RBZ4--GJ^Ret-/2$rW6R2ZZ<ZANBDhm`6UN`:i)]:6mbJX<Ll&U)'#iZl\jf;jh<4BfV2bVD5rr5V1bX.!`1HYX4hRQ!.<D5I'rAY+Vt0%.1VKm6iE"DG;kh0X/8&g$3@3g+ZJTN1]"+5QS+O67_/\YKGQe*:465u2&rd-e-Vb*<Aic?^@!e]Ycu?eM!So<i,`4$*6MrtEo[fSpX*RJV@T]HpYsGjq[NWQ`Wn!DhdRU\V[^G+ZQs`[GNn7CY3[HgmOlQ0/.<1%f-!%J&S418G8(035SR8Raj07^(;I]&$1!%Hc8;p5faW"h&&+rr%I)X$'G4"pQn'+VhS$lkd^<'1DR^t#Qe56\/Pd*s<g0=E>_c0Q)(Xko2M=DD*hs#guf&s!cO.2%V;-R/$-tppl0;7V\h`FAmjg1`1"Y&==W\:`NW4WbcECqe;q5foZqjB$>.4%%1C+c=#*VR*>=(t+Ch'Qdji5$A=3%Y^Bn2o_-?+&dHN?0.%cSOIcUh'4=DfJ>^X)m.9m,9I^,*"NR8h?)7oJNs:O%Yrd0!njk,<gM0:MBF4FNnph.C&*Hj#($7?@KiGl&$IiGErk7.U?cA[I(k[h&6]&b^$&1H[/2oiYlH2;PKP1RLB,C<@A"g\Q\6`MgAZ@]R4G!<k=sA6=*H*iqV@t(ArF5Bn[j[#1]p5GFL$)(N/[&eSrkNje]Q!l^s.J,GA*rB0QY5K_"JE4)V3t`7,Yl(T5rAH0HLl#<>e2AFdp5XfjH?qgNnNd94UrcT"UT\a+T,-o?04nS4K@S[7mO=EH[FDRXo0m1INZA'bf"!<Bl1<VYts.40@'q.]XJ60V''TrH:j&LGK9&(J1aE<j]$>/kh191h#Xdc/b+Tl\F9b9a2mktJ9?[?l8P7[Z(:2QgoQ:,D"<^iCr"M)m#"/>l3fX,T+Z3*hZ1p.eM[U!f2uQXjo^V1%anOZ(fU(S:E#QY)q=UWKO5`58<I/a@ME,.][Hkg3'"o'6W@7<j$DElrje\a,%M.5:%N0=U?$Bm)IA\g)O@P,B3W1)3W+?p]44E8rC%)';*%e,&b9b'P#f-M5d25%cZMC,e"DN/@OkR-8igPWE)^J'?V\8j#3kYh,E+,1FuWIBagXGQ$Tmo!l&I7Cc!Rs72iPaO'SrNApEM][\K-M)r?KDWCQU=f1#pH:.c6pjK-a2tWpu%$1D1HFg*:fX0#Q#Ae<A;LDotR*\*j#?<s)!^\*-YOkBC4E$b0gV^^QeC6@rMY6hY?#bMIIQf5[Mm[8Fl)R@`9cr#gQi&-U+oU<s>)o<pM=:)#?T3C#>5%J$P9S3]Y*g@+%pln1?XKU2U[:,l3>34oX]"tp,Gun*Q"E'Z;43XA;eJl9'j&jufRhp^-0Y`UC50\TM\/\Z2AO,Bckg82s'TBPILuZn&`&(ke3.0-q7ZRoN(n6`En#0QVN5&I`l^M\CAb@71EQaulM+""dYYq8eR"Au*fDaRe$3CRBXfB7.!X+_n#e-Peb20'TZY1.6a5"TF;9qXVdU+b4K1W=\KSDRFF+g`VXK0kI^L8SgjLtJoklB=m28'(X_$WJA*)bf65k0[]@Z9e3G.59;r5[Q[q*pcIVm$B%=1WRZ=<VNQ$r8DokPf?@'r(`c>3mq#n$=*>K?FIK,KM%-B6G1'49Urn*l])Ha9^\ak8X*1*ePM*MNk,[TVguq;5OV9I*eBjPJV_h(O6%Rg0)jJ+N7RY*:#JGHfW9%FMY9S)\oJ2S=U1>Pk?&i]a6Gh/0mN1uHY.A$4@<!W_`%;Pii%f%V9O1[#k7!*[+`5[leE90P6`5;_3[=__?p_I.YSrCMGBX4J5Z4E.YsAO30SXW=Ob=aRj4C@'MSfh0Lp=foqpSHd+t>E+pCbh3L/<;u?X0Rek9c*11F((A4"XI7d6SQie']I/KjfPNSE\#m.-88hZa0=G2)?>QIF<3[M_=(U!aK=C1)H.s(!>-5`OEr5DZ]7\<(R%qL')c6S8IQsis&ohjC?G-C?!,rI2'(9>+6i[3`@n;IN.rEGa+TWW*md9na]"i@""TSP<4[McRDja@oF*8lO!!'gj6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ.a:C!!!!kE_9;n&cht4@#^BV!!!!F;Bc)@!0g$2!!!!q\t;l0iShac6Q:>.IJ*I]I>o$F!!)LQc)$Z'bt*6F\_c."U6$K^^Aq!P!S;C_p;m"n2XWd-ZqatB;hI8\Tiu,1BhH%?HLA;[,>2A2dW)@*#oSS`T@R["1a1["@Q%cM'IU:i#<6DS]9h"?%f<`BcZ-'.-iF,I!'&n'9%4o2c-O#bddooI#27S;RYZt!3gWcSlJdA`iG2-/,^8_>PQL#$c!;<bW[oGs=AL7A]?m3#$<(!D%ZVOUXathOQ`Q(q*e#?\\*n&l]O`W(n`_aDoVA=s>Q&!Qp6j?UE89;Ys-EBG-Q]9cHV=A=!!(;DSeAFY-FFTdh`Y+Wc4u)@m;%cL\=PGaHC`@2>.a7bG23t+GFgKo8;S)3;ec8s2Q.O2_):c-?'qB&)HruC_P@thp'TPp`VAZN`_\=\kZrJ^Z^1;C.FHr-=I$et%f<`BYMF/:Q.d2S^GA4W!!%JG>aS/XT;r`\f#-'D-oSOg[`q?jkNPGHeFEp,=`uK+>,'89c.,G4k9eFmoiTDQ&IT-1?V=N^WHY+@c,UePb!5god#N^5]78/raOhO/H:,N2GscpCTo"S]cij.J%UP?u2rocDZ!l:LQm(;?5$1J>UE6a);\9kilRB0>Vbla*df7SomI?7/lLI>2A7S))@.t8]>\8OeK@f9>)#MrQ[0#?``0e/ThP_eCWYIMlP]U$?E8QW;\ichr%hAsTN0K2LdiOqTkB^tMDpNJE?8L`$7@0o9m?)D5"on<lQC=C/qa#bTGI5m$@'RCf9!kra4a,?3@K2YemG443WP,Qd-^u%T!'oPdH&:2nUO<<.=$ZPJ\/f4b=i-p4o^i-WiLk+lbHk.co=?dH[7iccBujU%&\7b4PY2F>lt+$(\V<.nnZf@56Do)nh^fK]ALr,lU#n"F\U:GWVpcA$L`*iRc'/hGI<k@/C$CWK$URiCok`a.?[4dH@r:M9l!KqNiNulLUu!aU%'&D*P:WRXWs3#f0l7'n=`X6@rL"/t`$?Y+7.#h&m2d=1.$p4,-?a['PS+MA&QlMFe2A+Aim%f_U!rp\3n)RBMq"c<rO4g`M<=MXkNs;`De\+Nc*L%0NVtrng].<SAM.<&@aO3_a%m]5?cU(%6O[VD1$2Ur6X!`Fb'Vbn.?J(fr0YXEUKbAF'6=hYNEhZ]3mO8-,"0stZkQ]N.BbTF*h=qf1[U$Cg8\>irkf1DPUX^<QDQO\.8`d'2rnKt?ck.J_;T$J4gj*_l`o_^C8JDX,`O6r=Z=^)]\t75RmUlSLOlH8mn5*LmgpS7g[%l0=cWd#_:4aQ[++>KC:dGGR%R:_>sGr3:5M!S6W?C5eTj2'.FHT#i4Qb@r[mNL]"(h?]s3'bRi;>-_"I/92FqHsQKBKsRFnj>LYs1iSl\RC;ldQdM_Xbga8M_[oVq3i/B5VDRpR"G$&O[@@c>U]`opkl4jKECXj9Ya(#t7^UQfGkkNYp6H>HKR2C!4]W+THS3HFJBn7E`L_mU?F>Y0d,P(Q[pX&LPjF_&_%K3>A4+%S,12pb3(M>:lU4k4gilO@JUdF-n0]Y25^/aYX1GugoXZ2_u((]XR2+6HHne67;6_ccuABQ'U;`1oc@I$Z`]Xn!LHlbE`;1#H?l)XXX6?BDg.nDNl!kU\#LW.]%]1[QOQCfB=#-RmGG4k=\>.C&7]l9+C1ldE'"m@gPkY,4U4i\3$2_sH?U^+,Cd['RZo<pWafb#i#e?gPu.FR!(Z.[tcMg8@>[HbK%E%f<`BJ&JH\Q.d2SYN/si!.b)dQ)@%;Oi]7p[_BZ9fae.;7qYt"F%]`9<d=rEm.oek)uARM@SCUe[qG_@jWW$n&a,D22@^3E]9!XUW5kq<SE8R+c!L6ASm[bC3'0ZfDu#ZRVt-'SR$"Ea#=G]HA]Dnp"'9ft(qWaJ<jHABGMU!f9S[]t2tulX3,$LcniU`T&hWL1/KD3CfY=8rBDnj<2tgVKRfWQis5R?TM2+S*p6q1MAA51g^.En4>sC>^\Ijf@'89Jjs!XFI=L*:`[idg/l)!s4BTj(d&u2/uUNB,'pp/1"gFS[d9/D7(UdXD==S6%*,HS'+5P7:5FD:>:C8$Y:-'f>iSY%88h<%@C+DPtA^=L:@)7<%'LMk8$=';aV_Rm^M;l0>j?/mKUZ@ak452l%Oq^$^hKMUpcpYW3$WI7Aq[l<0ics_9VrEIu?1>tK`g=u92!!&\Q_@bt$NRK(=!X$srRdc+=9h=KP:\J/#q')*2KqY'8*&Zl=P(R6GH7gc[M&D.+`bE(Kh#4"F`ZNAW4qeatX]"tp,Gun*Q0.Ik)m&c);5nrs"GB1_XA)@BoQDmmD5UeMG%[)9-bRo(I*d=EHucs;EBOp-oorSTs7#Nop\O`d<*nS1'Ar99e>$GJkrVCO$HUsZ1"]!6&jBo:<%AIis/<Hgr+"24*BT"/L20,-Jd9QumV52B39MX5HY;-TJa,;am]Ce)O,<gCm?nUI<A.Jo@f'lX!]?F\'>F7l*2tOWh:s!Wn(l0$H\_Q(g1Qj,Z>n5T<B`J4XFC3M!,#Os02];W`0qlZkcL/mpX$?oZ#kD5WOPcC0O64\5;JTf/i>6mQUo/BFd?ZW*k5C7<WAp<jYb4%R9*NtJ5$]JBrOhqVQQIrj".o+j%GB&kfX49]Gp25bM2?_fY4Ba]@J#'!5JnBYAjaH!5SUI;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)ShW@NA>j!!!##0p`.G!!"<C+ohTCPXpW2!!#h>,m"&H5`(^2!!!!F;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:oZ>uk3e]tmcfb>C8nl"W'`o$l9N,H5(4Z-Vf0o0f1`9qAgG+^>jq)!;2ErP00g1lTW!T;a[hs"FRNNJRZQqL0cR46_m2DCan"j3Z'u^d[qQ?Q!)R/TT1_$)MiYia&`!7/(>^UmM+Z*4(u2ciWq5j]3di<fkO(u:.530"Y!268na.Ccq:RG$O\=(:SW;/eCs:KK>[,1<WPMi]j?L'9]BWI3:bF<chPd1uX]dABmpu6J"l6g30"5R+!!#iZ>WLfF9mOWPn-Icp_\C,58e)@*'g0(0cI>j]B!hGADV'<qH+B(1caQ2e@T$FHs4rm8jr@r'gV3B+M;G(/gn>XF$Bne@fILd]'k;162MQPR7.8:I)[]hSrmd3t[(d83!WW4">I@A'G4,taTu!C?V$5Qd/&ujZW)c0RPeM24bo?>o6aZunT@.",4E"n'_8G*DB6`KQERT[GRXU:QOfp_),gCS:GHZgY#Yk']"/d"I?>$?e=mW&3jOBP?h:k+q9B?g,ZWii`dc[V6U%PWI(Q-J`(^huZ;SG23'u_UDC:ZM>&K)Gu'\IiP)K>oa<XiB-^L6D<%VjRQrTp$D>aNJfiSbr2JWX_'`V"#-9`B+H[Y)'DetP;_Y.<KjSgCP2r?+Ae48M3>nR:%8T6\32p;B?!!)U#%OV5VUon6Da54a4X-6#=oZ.Lsds"&GUcCdDn6%G>K`5H484uUtnkVVbkS#&/onZah2T+,A21V,[_nE(8]\Y[d>nor-_I3;'QBEgiT6FG0Zd$GQPQ^6Jf'c3rLF^C`2prhM2m44"*!lE"%h3iT6&f.TM-Ut`.e#2QDED&KO)cY!6-Fq43SessTCJRW=p[E^ObL-d)f#01:P>^E!2Zi;'MqVd0&pHfi$(^4N1EU^7?_g`QmD$'-G__4#(KT=_PR%6hC6n07Z$(o\d*Rjs59H0Kn]5&bI;q+$oEtD.s4O87Qhk-`Wl+_^]UUnA[H>?$oB#(75>)6@<W;IdA=>Y;S=.qteOGF9A\!_O<6\bJ?4N`bZoMlpfu0XSMGkT+]"I,!M$*\AG^+Ih@50a]1s9OF3[sonEgCmH`Y?%$lZ$%54A"7Dp8K5rrosriY&pM:p1^og6),((IWiiG4D/qq9'EN@07U*^bEl5arluK!#64b&0%X$rq<F6ndMnUdiZ]GHj^UCs>Les?\@IrnMcO+=c^s7"'6@%.YJa\1@n_a!H*iN!dK9_'YtR4"X;C3D94%;fP79YXmq@!<cR'rQ1H'Y@lIctCNZ:,)]U;:WYcU>T=&PcdjP\P5.[A.H*>u3M?rdFi#L`#[kZ+3G`H&rOlTDNH7a[5eQ^4O&XLLDB&HDg\XD4;m=D#pPSfXO;b\=:r.<0!RQkITGI*#Y;VSo^@MNkX'8P7K9IM0P-hQCO1Ts[#EBJWpS\P:mMBDlpX3ju[a<)qQ#PUK<Ijs=r54Zq4qV=KW&k4CDAD9>sf_>er,A_sD)q5Kg?[20p/D>Dk!'t<@^1B7ER=k-0%`aIoUIb$M>%DLq**crkrig_3``b<I_g6B)FKN>8u]qKWr-#/K7IX/9m*<jc<&0O)M.`8QLg_JZ$R_89`>d&Onfg/5P>]X=CY#ZMK]j@$C04/S_1p3,1)=1Y<ml&XgiPNjQ]G_:6E`HakD0`spSs?[dicYG)!4]A8GE$Z5iX7=@O2klM:G0jo*[1mGk"B@YBleL4B$Pp9&o/^K)_IsOl^nW!im_98;j6;C=L`9SgU`qfarTTTO:i(b%.#i!\]@`@_;7b7hH`?+=),@)Jt3LFDZ3QF82lttnr[+S@nMU>2)qR<Rl#6NVL3[f"e-^K4%qY7WcriMZZJ:%QiNcJG^3%@j5VM7>/.fOL=F/<j`?%n<7W)j!2(Z=rnT(r1Ih%Qj5KE4]<s[fU/hL'"EY-#rR2jkQrE%Qh(c`0.[?@(3df/iW)ar\r_[[W`VP`REM;5=Q*35hH?.m,fp87g8i*qN+4s5t'2F3-V#S&6?^*?Ui]Fid4kr+.>Hg3Tg=_-Nnq5?[ai-/\j_UG&)%mdb%afr&0+K#rao3ff=\5[E*VfWI5#(*i+t(+^^Ss`@T$hhO'O0*dPdbG&ZKD'pdki(,L4k:s6@sdoc2@"0dqbJsUk@-!)e/\92tYL2qG-hF=7a[Q>[.2-V<n9`!,@TGhn:4>.O*8Cdp$H&q(c?gKs@oXs+^*`ng!Imj_)__10Aa0Hu(K"cmo`modd.OD7_iuK&hsYlZ$19:%+A^kMR7kqdOC-]MluS!!$bk.n?*1!!)N'L6MrD!!"<*-)sLm!!!#'-Dj1rHS&,>!!!##M(-iC\O6Dt!8-:e1B7CTPXpW2!!#h>,m"&H5`(^2!!!!F;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi)-,.D;!!!!kUdP1_!%<sB!<<+m6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!4X7oEcP2HiUbA[^O5it9lD!OeKLeXpH!c!6ia_k9:%7_JKs/E9MKFF!7arC\\q^]DLMKVf,HVafW=T(QXB19\b"t.S+iRfMPS>N=cm0GR]c1)16OM!jN<`<MrBIO1,ZRI!*!0f;IX*EilRB3o:.ddoVgEX\t=r"H/j30WmuJjEfn)ac?#31`Xe+i:o(jsC!GO'Ode7G\i3(77ZI.O,ZR#Qn)qrdZZGQJfdFb#o,HL5<R&S@fDFX+\^f=[^T[&rY#qsg"rn4FVHP2OTS?Gq-%>C'(K[bE\a#^[TCXu>)"_MMeO$TDO1Oo0@*iO>$PjYpjQKB]7cNL,HhWEEKQN92foT4mTCA:";H.mOaidsNNihsF3[#[*h@s\1>ameCY?a0nKkN<3OJ&8&fQChaCNq,\l46gPAEphjs5Xuh%Zu\!N*1<Ts1[=EZGNE(s%lLt]h%>!bY!d-)r-,kF'&@[o7:'p$_QWg>3F^@DkD,e1A\HQ8X]3de%:sR>H.c,_rFKR+3M4/\T='ZFg+YVpI*PUZh)8Vj3#2C^3oa!3$OAVjl6m0r_q@3R$jA1jdc:)SJ^f2#H:u+'.n[5XU%dL.q=5*aQ,Rnke$-3S#&1%Kn\>%Fc<:JL"0"^AVDL4:)`tFA8jns"r2lM)D"duG@X+s0/mh67/>S-[!88>QsKIB888[M(,>beOfhY5Eqe4p[DZmFGJ=l,omGcGQ7<F>-b%s23$m-DOh'd%6Jq\"lYjKp4*@ZWht$I+f2n_<=&YhnO`npU-f4+913D)Cs,jb"p^98>p/&$Cm<uH6dTK0^eogVj*ICJ'XI\"Ce't]6'"=6^rW>Y]M84%/Pu=@/pqh^mC!MPEDX52XSYH_-_P@thp'TPp`V:m0D.BMGKt3mhMA/9H$EiX4&%O^c8uA1pZH/P!]<h1-DG0[3p(CP)XPcWS%2G;F@q1u'"'@,&>:d(3%Vog#S%;c`[,9C-\pAVnW%]OK:m&9p&Wtgdkeo&j<`(6F<irAkO]=r/lPue?gm,PpD#MNUlfR0TlRMbe\_A?sZdquG/3CIeX]6c342"/:Z5c@fO,o>TE%'nm?CpfoDTT.ioS'q+1]Np(Qe9#YCts'TrZ!:]TD37%Q;e[3Oa?kME':\uX"nK-INpIEGjMcdJnm8?GrBR7=@CAGq_Oaam[Q6lY)GSqqoufJM;!p]PFd5t=%%]gW;GM,aef/s\bfu$pV[`6Lkpk<&Y86t.jj8_8&dD&r80S=C0GrWK)h2*B]l^Y2,[t1=*'!n%4dfl\gp2bPdstn<L;FQ"20@gDi3S$f8EU`<,!WFMerFMh(3SPCd^he2RbSehK&eZcX#69.brjE=P\C'9Sijq31lPDF.4W+ocid<HpUj-R;XPn]t6Ik3I@Xtn(P0>=BJ]*YYLdM;PLS94i=i@gZ/(U]pOMV3L'K=`j8u^@^bs(0B>Qgo(!g9`:ik5j-F3KANPA7nAKM;S3CZE;j*@X5>SaoppGa.b,;Po;tbVt;:F1"n_c(KYIRQ?"Xt&YNOj<_;4IF-T,n?2q6PJ(GYZUQD<9ftWAD+Jd/;Ft0Ahp&2e>!1]h5mm_Fs)Ls.%C,l&rbOXfC-*leP-heLe)>X*]p@'h-+`elJb@=mAM.Wb/G^=2DrK*@p^YltVKTgtg-9RQ#TUo1Kfl0AU6&D["YX2Z%lE2RiCuN2MH4^0%BgfVD@NG;1CEJ"OqZd.dc5KSO>"h),dsA!\4[YNV>N[SgR7MR48?PdgUE#%:H-NYpELHVe*XaPc=;.m!.ocApu(6X"29Y`ni/p)*g.bOH0Wg[9B0SUT/3P=q5pc$(R/NeEn.X;A"*(L=\BQ[eqHG+K^%r]Ri>:rd`2>BYsM0.BV1OKrt!:uck]gNDjHI-,e34^3s'/&)#,qMA"UDq_"9]mBA*BdR^mb<Pu_(u++c50_=3@V9D%B1<-6Ctu=-bB?16`h$ur8W"9^hb)YB=^O6mkj5:M6\"Rg-<>Rj>Zq&oQ(tt#CYZG)=AI'-UK8L\r:]aR`K>/SlN+MFh6W?E9mOWPG]`Y)q6STKT]k%\k!H*tVb@EDiTX?r$0$_Zf;4nt%q2H"csq3iZOc.9.C-Ue]:T_$7<XP]Y>UM2lOL\gk<!'ok1r)0B3XHeWfCW+NaX(3XW#]<UsG9B'jn%aRmfO#-4X?beMh]ghDZWJCsSH6(2gje.8bG>@eKIeXa/&^S%<(%\)9KIJci3cP7jqgMdo\Y1g/W+V6A1ff266\kD"5,FIdR2kucfYI<)'pmBsu)2fX1TW]BcQQ4h0o)g0e:LI[g[T7-F$j,7Y)-&@\&^nscUMq6".1+lqERf%%n2n,*j2P$0M++1PmB?LUn0:ht7n[acLYEP9Ch_@E3nETF7kLYF>X/B+mKD6Y$@H1cX0$-7J:J/<l:DhHgSn>u.l+s?Ad4OZu<h-Y$A;?QK6L5NVFKj-f;opgV\i#N)RW8/OV?)Yq&!1Q@Mu6e(pq$ba3TrgUNf:;1")pK:B.:)nB0VYXkL%#+OTS&2h:f@,nc%dSNRA'uWiHk_fP,PeT-KEB[sW-c4k=nuq1j!M'Ns;Ch+rk;MO].(8k#$\-B3L+AAZr".R)'XP9XeglZB_d)lM9tC&:`R[(CGNUfaF^>OB_p"05U9_9T=!A%jf0hd'!6"ZuS;k!!K!d#qm;gSfLT4$Qa*G#De72Rdf>g;@EKKiYB!]j\"bE,B*`+EUqOH1ud"4,*?oKlrZ1EH3u2E-(?Meo]>0ALT?HD1m4oPG?Bc:I"gMMF/0n6H)L*nY5]NFn2:!gricZr]<s!J>Qt?rk#:Fi(&.FL":*%CqFuG8*1R'0:jsO]=@b2QC^C#ccJ><?@HnCe+KfnF5Z`"Sfu;'fi57?8kaZAbH>+*&Z%H?d5,n#7IsIOI>BEG%0%e?pS,$HQ30<S\,4[o.hr[e`p'E&\;sW=-*CL`ZJn*rT7?jNo0:V7.\Z1+nqG45H:(GZc+K_0PaEYDNqgA-SrkEoIEPF:oMt(HLc&(@Guq/F`0r6_E8T`SH;4A#MXtofmXl]X%#-Re"&rS/S6q/%Rmjp!4h`aG=2c?k2hcP`Jmc=/N8X-djt8hq3t4-X<TK1E4#)ohW>^B8j"%$knB7.OY==Z:PZWXaD-PO1[8<e$\)u,HHO"n#bs1(<Od%bJ=1cXNUrubC9o7T1;`f]OST\8+Crqhd\IN1em-@fXmtM7O76`F5nSAoIm6YtkmZ7AakSa0SO/=:RR]H-u3I^qN^q,#Cq`Cju/RS<3,PUA>5CBH^A*r!XD&_-9XdJJ)Mgisr=;,Fs1,nsg]Ir4$o6M1DSt9[ia2U`[8Z?X]caMqPGHfHi;e!FX/RM)\O=aJEiW!3k%;b+ik1MZbQ"<0l39W[QN_BW:#2m3qV3ED-"l?q>\$NiqHhQf/Z!rEn5LCdt`N[s1[-caXnMA!cqFi<;BM(\(cF%QID0b93RpKD1#Aq$:FQTH4MR7Ke>"Ym$,'+F<pE$Wua6T![`#:-]G@+6_8bp9R%g,g4.H4)=fu1#W)!S-IWYKgH_U3D9Ap5"Q*hT_+a>p/rrS:52g>es/3Kf*nAun+1=enc;b>2gJb4eZo4N.;$N?X?2YtCM?G-tt["fPU#2:!$W-Y=t%O*>mqRu$/IZC)&aDh[tBjgI&^V8Rs+;=47!aK4SaBCY!#3KAO^G$DGkJ,N3X+T7d2>'R(1SB/q"anan&JSm'ZJ!4btB)gV&`QYhB5.GKo(Uoj!aXpip-M=G=NBDikmh)=k\VGm<3U(=*HAYKj:"._fX4Q?"F&.glD]Mg'/N>rEG2Y=a$_9GGrlt5HDCo2MH9Nk6Wa4ohKjnoY)p69'oH=i;VLidiE8RZn8eh;h0HhTJeZ)WM'uW>^i`"iD"1sn%SN8Bo'i_*OXRFE+V:+74mG<uMKndpT2P-5!l8W6e&&/_?h:Hm`@`I17T@OZ*8msSVUq&#-;I[lbR@>lUTL74\YI<o(30[`if13-J.Rf5'-6i/Vq1H?Ln65o[Z`("ODgZYr78A6Kc*KoF[5YR"A*$4NDm.7Be_Jr6Rj0bJ/sp;BG)gBFpX/_23Bq[?ekh>Mbu_)J@@snKS.uW"c(_qp1S3Ved)Wcu=3aU.^!2ZrDXKmSR7"O+4i<_ueaL72?/Fbi`cZ<f'%>mP[NBprins)kM\]kcETDa[c[*EGY<Htb4$,%UlaRc04<*sS:W^nFSeEoQR(HCW:M$G@)<^2F2f?D*JhD28%$HsJrUOMaZ,+UjV^r,ICc#i(WQ_I1[/G"C`J&mC3g-'-AXI,Dra/8LZd5f=hl'E)Jg4u-=8V#a%!tiVLUFK@Ep>`%]5Xg'Kas\H9A(COY%Jua<cMtcj[\=I!dfC#5>?TEs4`*rl8[fc;@l?qJoLm3hl>u939TDb?$8P^b3nS/V=3p%G^Hs0O.*ZB=L#U(_O<3QJNaUEI+e^V7*=D\@PHjj08NXfJ'b6A5Y1\>@K%;hc2(2kST"D'fV$RE&DOCtF9;nFh[*Zf>$B<\lC'1X2eh,1j$jMXf5Z"QeMDMFlj%=P3"KD@[`D0'AZc`Hh=p8g.M$af@&ZSMg!6c8\77u(<FmFserAl7(_EDJ(H6O3T]#ffY5d`U"l&o4M_%',lI?prWj0+X\W@GBVoTRSTpkkS2J&=(0JFnS,@0@M&isjkr[Z9kkc/!cS""n-IrPh^<bs0F'gJEo09,bm*>1D(Wq+GpAGX<UZ(VWGOW=#UlJpSRD>Mu64keN^FK>F4ql]lFDNkfG_=<4VSXOeL2JM&+CtPucDJi2F]Xc47F)1N/DVrudTp'O*(G<pRl?(J@Ttu3N4Jd,u)?kf-p=Z/2VIpD;1Vbg)Xm)U,G4o]NYE<2E5EhmUcL75Y+J=j0]bZ'fT:\;/XBpf^8`rks^=BPYS_B(AA^=%Gr8P*a:U_+cI(o'UB3L+^q@-0sq;S7"M:8*]gnIZ@HM-R2&7:fHg9un1M9jqIK'4)<nC)"HL%5m?5<jYfg_T4RlEpo]3GN__T;NA&q+Q=GW^_sd[HK_pp>5D/NenuZiQ)&0:K8hi<gc7Wf9MYf8gc&*:JTO-UrUmrbKWc*bD^'i8O#2JR_a*[dsYDqfT4n;9`4F@%d4o^dU7HZ[6$F>cAL+OBdCk\[:t!FfaWDnp.7o<@LEujpNLP6</flYXmo0cG$@sma+(kmV$.5B>cNO2rs8,\4=ds'0E&!a8#E.B%Y3iS]."<lrb%$ik[HChOAk/dlFcbuJs6Q=7Ze;ai/[TnP><s6iVWX&VSnle<p-<o(#m<aoYpo.*Mc('\0JpCPR^2SM84$D.1lRJLq'rSB6WV9+"*(B9lD!OeKLhYG>]Ubgnn#J:5NuSA(VF7jNO#J28*u0<!RK$!!!!q+sd9j!'j+JM=+]G6i[2e=HcWlXlcEI!!!"$P>\,F6W,*.!!'*??6T@L!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)ShVU3g0D+ohTCX@Xl2JJP%L!!!"$P>\.<,G[^-!!$,bO#T?l8d#+oJ2OK9!<<+Mdd<mL_S_;PL,S[;qWdfDH:$bB+a<*SBp1Aua``kYCjp/-)\;\GX7LFWIR@gFJ%jr]!AfL,ajfVEGio&,TOq/h&e!;Ue[T1`=r-%k;Q7=_Ql\*Y$&D0e;4=mh/MqO1'"(6Ls06S<l)/ZJ4#`C9/bj]qpFRbNmR[2bB4]sX#(?3N@%j9"8h;b4miLgIgf@%s(B1gOoD_7]rn!&7ru/7R9%^'%_cFuaERc0\8.'F*&kc$8ZfoC-q_-f$2Uu,**4Ge<YSDX,[!G?sZ@Di5jJ?=@m0XC%1Z@eT<r]<%MLYTbD!l4b!s/IAT;XRm-4Cspm=0#>l?'V3j>"A8m66A\nfuuTl&jGT($TcT#H8]?`3Y@G6\heh]_c]L@)nR_N]_EgW[[I1qN%P^MV$XqZL=C?'d5'q@J60Y]6B'ld&l"Nn]JCf:X"91`/eR%oQm&orc^/Jf/J2+/PSupKjTV[)W<(jB!2(&s%PJBIlgTRg@Vp/*rbhu?72m4s2*Qafd!EnWa*q)s0l[[$U7q1-'iatl[ZOLs+?/&!!$n0ALUK'I-lr1^&4BYjgF5;SZo4b`ggI```Ynb'4Z^`hAh8.)"^g7OnSFC78m8%-sq2eb._Y3f/ZQ^4fXn_[3ru?O7'72a/cXsQ<`;CC"@ba8r;*Q3d(j+IU?L>4\JSb()PNglO.n9;,EWDX5f_"Hs:&beW&ssUB<FqbPuEt7fWO(<Y`nQZqH6&\RJ0I)#!*FW,Aa'\@^A]o]ikYnWUO<AOW]?gO-kIiSG(MW]Tq`$g[*Hhg]dGF_E2JqY[Da/S;`DDq3q*o7sfCrUSEo]77P+&=7=l0u\(n.t9diqn4Xm4"jb1dk/K!oJNCE]JF*S5Fu.EH,Qjq3Dqdpc_"AqC>PWGWt#k9DrBcSeB`kAD;K_Vq+&UaD]%)*G\PoJ/)GYkh*6WFO6O7NUCDJr5M[TfFO4B\s's"!a0(\oj)WgaWJcP=&NgsohPY.e<XifqI\c:&X%sP$)W^>aE+#X>ZEPD+](M]$/PCJ"`oa`S]KP'9pR/8X5e^3r2E*KpCMZ+W7-A1]_rf.c[2B:U&]*IBHT^"6C-f-BF#"A7$`WI>C;T8d;^4@_HZ[EXU>g:l2KD#kZ,+l:Yl8'leonMe0@?!sS+_-)a.rW.)`2f8l`3[TJdW(7*U)hJmbV[)HW$O@dJu+>fON'*=k9djOtrkF`MXa!.<3G<nRGV4dUqY5r_)F&HUE0B7Aj'JHTpln:5NVADIklccr+GQk9n23[9VKJj.?0XG>?+=@VO!.F/$86\mQJ#D^OoiflG37F(M5FkBF\tEo&06DK/5`!!(PmB2[`^0/$Wb/\Q.Q6)[DPSpaomSZ*s,*@FW<C/ZIeH[%g8j]eQB?.PIsj_;0f`K7R?a37WaSR$>1Y:mJuB@NI8T"EF.jAXn2b`)DafDCWiSmB'AouYu`iNpT)qdQgP8?q7:58Ogt].[*OWA=DGqh1m`E_=hf=kRTYRu8ncQKn,\LYqme_G>XmF$ehEd;qfQ81g'4B[HbRoo,.>\t[FElBr<Pk*MCf^294[2X&I\%hMpXq87]"8T-^To&3aQ;j3-X'U:_Sb<l<YEh,sl^H8mk"$tC3l1B<#BsE*(6/Pq67k\@YQc?_)AP,0+ZBn'LY.e!fG-=Vgk>)Tlchpp,UjlfJcpMY[%M\1#faH=sh/6.lIt.%d"iEPaFSr8$&)+FR=8G2R=21&ZeR^a%0@?."]70J>9hW<OEqfF3pgCq5djMn$'pKS.p5B9Jo&Fk^D1(s%jqh7IS.L0E?ZA[XI4"iG?<;5kkOZ$SqAd3tmfqAVioQCQroeSoh`SSn9ZJdr?4dQ(jDOm-c`\)PM#!N-B+9>HUVulNh;#>#]&hA9Mrp7K0fc](b]gh8oc'M<"ot;Ch3!pMVQ(U+67L8<1EGeGcAlZu>)HPT$$!:Iai=YrHGt4$fCYRjDJlWI9Yg]-\:):;(+f:GQ9c!%_r&++,))"\f2$fVq@AKcSi%P%2#OZFeNYV[oQ7&hIs=d`#Z=8/o>]uY/H%%m?A8+DVno]K(15U`g-+R/o+rF^BaP7p"_k`;)G7:NW+X(#F)](Njg%fL$rm&;GHt1#]B%le?WHEKa[O/tPM3&7hu0P(<9KZ`D,b@]V"eUoM[N@,&)/B>:<(>8WB<;S`Chp?2rWH224;liDX@c#[@LnJj-o[dC`B(SPdogbqQG9j?#65g^6\>EZAgbRC^X7Dal\jhFC*t,X2_8CE\+)Ii&gjee0oZ\W*ikqfP9:lc1Fr2[P'5dZR39Fbl@E3Z1H=R4Q:af6lq?2/)m<b9?C"VieqBfPiupNs7a<10=G,s+]Y+82!p!n2mns$2QOB6D!)Z.\o0Cl2b29XQ-h1Mn%!70M3k'\caPjg+=.'h:i1D+,oS""mdfpr@Yn<DP(Q[pX&LPjF_&_%K3=45ilAU,%s7X=>s?*Kk#AgaSRPDu^+7t9lH:QOAimBZX"5^)8=EA4S+o=eH_\<&IoO:SIp)^Ca16K-'BBt`7AfED;ds<L9.@-`qkm,S\`>:P&VRl&oC=j5;@-W1>r#dcP-Zc/-1q..4rZ1-:9F(.0#ki9+8:\bd&4<BYS\%WD15od0dN&"md-hal9*cZ130$9]Nb:,4l/D?GC>Rj2E@7QWe;F&!7Y606D[beLkQ.%%qB&"2MTg@`^DO,7OUTt35T#4D)l\.=pMrVB!\`Leusl>E0:j!)nPh(Z9GUh>0_sFq+]:udW+Qh0:,2<S7VQKk@fleIk*Xj0RQ=e4pQ:;]"(>db"K3Ijq9<n^X7)a^V@<N8d#-eg?roP>i@(W9$I]A2U<BUg<@IJae5b][\)BaiSdDO)\,f@1nD%%[j<?CB?L0_[k]6^h3i-O:5gj5>NesWXJB[ePaK',86&_2S,=9=.PZimR`@ta:'fThb[q`6`N^?Tm=FN\Ym7VD%i.Oer1dUf%pj$4#I&0Fo\-.0G1W)Ag877CD0"3N<EWUpi_iC5)V$]`befnQI0BTE:?Cja&M`I#o(nY&aY'-NBPpZA`QH>%@ekbE[Sk,j,BKKL2lQPm++AQ(?Z>i(UDHZ)c4uc!OT*q+e]YZWEO_Xt4M>73FC&E*k9U00E2VKLPZX$0X#3G7]';'26bRlAGM2*pS+%PMgs9>qHIFJmhE:JUX"BZcDEKO#2;9]@>9_C>=]47/:[K!ma9M2CkJc*X#$4]3-"Yi,6uC'cbm",+:R2bh#D)h*iDH*8[\(q3oqSBOT4n\`.du;e4l6qi'^q(U<jh2HZi@%!dm_g@Pd.qhGsZX5_@G=6pI'97XeqU<Ed]Q;hO%3W`^V7P0c_Sn(d;?DGt43GQQ2'S(DX/OERjQD`6$,fjE]+PVSr$7?!(4-PqRjB?/PVYXJ',WBVfbYat3SRoqX4!rc1Yho=;]#Zl+F9r[IkKK;^249m"/e8+W6/#64ah\d'Z]Rl#6N-K>R,$8t=tGF2i`7+41ZBMV=u,jOV9ZD<CNCi?IcaP5?[f(euu&%/=m?5V5ii$CaYom)CKP-!c]Z\CYf37WE0nkJ]`U\]@Z35^t7bI#]#Mdjlg;jFiJF1lDUPZX;0W^YaHo;&\r%;4\M?D\*5apRm&CKn9sbb$GiP[^AS)LmuLA'+/thLb7XVjAs>9KlU`DJ5R112(0oFsH@`:!'Qs^4Q*02&G>sXAe9dW>\g-&p"^nBMl7ZVnZ=@.lfTE=!]]i1%1XmqZ%M:rB.jXXHB9<VHI1;??H%U^H[3)V`H93Hp\_;h>Hfg)tKII3\WC.gq,T?pStlHC:<9RO5`qWhL."fO7D,Hb9bT.ZTWX&97r0,Pc"FiambuQq0I=3jIC4>]-L0NAh85-E?i^p#8<m5!2)Y2VSq8<9.#Y`f>b_a]g:!'0ct3g?gsPIpeEJ\&,/i:(@9<r8PaT/TD5)XYk[:D9cq'G&V'M8RMpZhhpg#5*CE022'G9%K4]RFGL&E44:HO63goJEK3#WF@daW6_3Lg7rt[;0csJ]68hf)J`fP7Mouelcp0tnR?<f3r`878WVD(l='$JGsS+4u*k80.p2s\H@:T'0Jk'Qp4.Ydk.2i`k>h/QJ;i55$1,^d2&^gJQb?a=ukb?6(d,cj%Pb>M,*if%l[Q7\rO3r[P6Je=H5OT+]tIDpFSMa<uCD>M%S]coi_C&(3`FIBQk[.>!\e7-P90`aG(?F#H"L>iSV`e4Qm4K.gb'+bcoZQVu6^0)N9p/0<!NVDdZcpi>>aU=inbocRm*Y8rJI$h[(8$fp.GMCut3bMsHJ5D5-Pbre`3]Lm:r[ZQ>9M1q"]7+qNl-1C]qP%cG52#RX0.+=bTD&)arla0^ZYK3Nbj0SmA`LeqS[e@i)umTrC?:@nK:4HR>F1blF8phXER4M7roh&U58WC_G-mr]T%a.PcqgQ%^\VmIj51i)kY.THNd1/W\:&!"C,%NEV<-Tt%I%?.r,%)K%"7iiMfQoDIDPot-iACSoXusYr;5_pe(*b%M`![-Hd"]M8d#-eMJhm0SF6aD'U*qNF.J[2?Ym:<E7$gt"1IA=rq7(E*]S+Uf%iGXHb148!!(eI24bG9[%9FZq2FK@b`)P=XD7`M3TGDB),Vudq/Um@F5H@:-0D@[@Dmo$Nb@.%[#V3df!5'q],UV'D-R&@?qcEW)GH"!d]9EpbT&Phqpm@4Y-_sDE]+muRJ5SHs)5`0_5@ZY<r(jsJ(6.KpQ6)r7qO;D/MZ<3NU&OjW3b4d<c;@\s/Ni-X8VK.O!Xi,^F(n0&kb$HDLT:\bX##Ob[4fX69UZ@?EnfChtZ_kh>HYoS+j@=m>6*A":?4<rdDg<4IH-f^>FfkmuU!L4PZh*J5:X(]=4HIXUP^>!:IOh:5JrN!4X,5&cht4TL;BT!!%P4S.Z!'+ohTCXGJCR]nZ!B#QOjTqi7$V4l&\d!!!#';<)lN"onY=I>F*n!!!!F;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!%$lVSEos4&cht4@#_]b!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ.a:C!!!!kUdP1_!%<sB!<<+m6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FPP+30@8VmEI!3jIJ+ohTCPXpW2!!#h>,m"&H5`,(F!<<+m6qRR^!.Y\PS,iTiTL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ<HE8<MW"_!!$+G,m"&H5`(^2!!!!F;Bc)@!0g$2!!!!qP#J)?8d#+oJ2K&-\oT5=!!!#O&lYO&4"1aA!!"peX#9qX!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)Sima173P.1lO[!7mN1"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ.a:C!!!!kUdP1_!%<sB!<<+m6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.*3pcSWjB[!!$fY,m"&H5`(^2!!!!F;Bc)@!0fGr&HDe28u+iT!!"Ee`#/OT!(s%T!!!!IOV.Zp!2)_P"98FP&h+Cm!!#We6i[2e.$5,C!!&Z[8d#+oJ.a:C!!!!kUdP1_!%>r<;+4([!!%O,;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi),rm7YUdP1_!*Bn5U-!S9!<<+M/MSPt\s!a-!!$DZ]4qEJ!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)Ojc!WW3cM3J8G!!">0H^sE/+XI0i!5KLoM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)Ojc!WW3cM3J8G!!"<C+ohTCPXpW2!!#h>,m"&H5`(^2!!!!F;Bc)@!0g$2!!!!q+sd9j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$sWO\s!a-!!$Dd\O6Dt!%<sB!<<+m6qRR^!.Y^F,m"&H5`(^2!!!!FN]7+@!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`8;R<H!)PGJ7.GauM#[MUYTP4n!!#8U:5LGu+ohTCXH=+r!!&Z[8d#+oJ.a:C!!!!kUdP1_!%>r<;'7.d!!'g'Qk/#`X#9qX!,RK@dF4YN#QOi))r+F4!!!!kUdP1_!%<sB!<<+m6qRR^!.Y\2&HDe28u+iT!!"F0&cht4TL;BT!!%N^.1lO[!(s%T!!!!I8`/Q5a,cGj!!!"7bU!;j!'lC*#QOi),uPoe!!&6SM#[MU:a.1e!!#9@PR%6h!$tMe!!!"`N%&c>lID[u!!!"$O:hQo!2)_P"98FP''CPB!!#9@PR%6h!$tMe!!!"`8;R<H!)Ojc!WW3cM3J8G!!"<C+ohTCPXpW2!!#h>,m"&H5Y4_-m\E5N!!$,2/eJ'`!(s%T!!!!IOV.Zp!2.8UM#[MU:a.1e!!#9@,L-8h!)Ojc!WW3cM3J8G!!"<C+ohTCPXpW2!!#h>,m"&H5fo0%oCDJC!<<*"R@"Nb5:ZqKoD~>endstream |
Gb",k"aC_O)okV>O:#$a!l575>+dIM/QSRA["Y^1QBkG(P2NK?JeKD#66IG)KGYt:S/?74F4Zr$Q1*P`]?B:e(B[k's88L.[lZZ-C\.OKB(gKK*!loX#mgnE#mgnE#mgnE#mgnE#mgnE#mgnE#mgnE$0bfl\q[4R6:+"*6:+#=XjnSJQBMO6=eer=F`eE3&eYfi&e^@2^]lbDBG3omGQW^1aKVtUZD+(f]Y(mNWDXue,U=W\Ut8g1&c`jN+TNki/SKclq7NDP%EJc0/1E#F-knG)9Ic<",a'>s,U=W\,c'$r^]Qh*^]m%0^^376^^SrT@4#nl='#L/^uiVT`K2%,9MS,LLlRLU6pa4,6:+#ee!$,lQa3M$%2BTm"bZlG!42aM!9=.X!#3g/F_H"%5c(ip<%aLF"9QXo4$/qXkDPIaOH>QcOH:B<bN/dQ!%e1#!'($D!(E9P%aB5*n-Plq>S2f\O9:QaHeFrK84Z9B84Z:T["&qOj5Y\1J00:cJ0dmJYi*T"<E3%"<X+ci>@hAW!Oi'E]^5S^6:+"*6:-"KQ)tbi"&K-)";$7nj8^=%W2M*s/qsfq*):Tt1mcC6fmA7&KS5#3K_-o/O2m0<NFfHLn/5=0L]Y(Q+$$^?3+Oc^T?jE5WSq8oW/C`a#mgnE$->k07RdGD!(?l\)!gD$]/V8j.n`K,?kYeir;?K5Nuu.'\g&@A+X&!PrG*)g*Y/+`@^4iI&-Y7m_]Wu!<)b7[$DC9eVphuYZOq4#+X&!P+X*7,5`VqI//jKP/-/.IE,5]l<``@hQ^>nWE^$*k-Blp,dL^FA[CnsJ._1X/.\q$:9jWa2e>C[)r(MTW]5jAg0qV1<:mCd;87WLIJWO3"!'*qU;h6.^(M84KJ1gJV"/!XXPtJSlDIHs^EcNp%%]!-g=NFu.kVNVaCB-q:$AHK1o7Y8368&p2_u_QL:8a8?[46iZBFL3,<[RNnbFlZuOIee46@)KRKa?@2AXd&am#)#UZ>,3sPF2KWQqtUE"dL<1k<d'":fmcn"iWSN7CeLR<?3+mT>RI%-mWA)b2Z0.E!/Z(85kDgb4H)hLYp/rGU3KXf@6>1d5hR82H@G\bV6Kkk,Rg16hfN>gj1Y!(,3l*Br08B$mpnifS,39e4Kf'84lJUM?&qBU;3[JkTC*oGI4`a<$II_'0-[='-e\F??Y.err!H;=9_u2.]\ON'cWF"79.5*=]7\.K)jJ!YU^E116Mt`1u[<4(+LfL!t(5FDB<g`A`5W-RBZJ/5UtnPn]Hr,3;5]*W!5"6H=2_#4m^ZP)^VJM/T'Pk@E2'TQpK+ND`Mk%k_10MldSp+SlF4QJb4Nta8u2='EK`c6igPDcQG*"*%VjU2`EZ=+T_7V+LP<R$rB)Te'oBW@ZcbuA[1d0VJ3Nm!^<(`@27cdQ,-K)$iNO9O,7ZoQV#(q@9jO_XiM^KEu6`kM?fB,q8U=MLs'CM"<pi;I+;/(+k7EN?l^$Uj8bI]UB[-(Zii+UY)IlV$JtcGke%*c:roKl#D^G:M7#:k7h2W3FB/&=PV5qT<\d$J\r_bMO/D?sJE&3=EO_#%E_tFUYo$-XA^]+Z7+9(<XG;\9lI`p7Ji%VM5Bf42Mh[ca$C/_aP:XYd@Teh-gAO9u'haf,G*Zi9UNL?O%?LZR"aH@OQUW/:6k86GA)O=.q@3"7,KM$91T491\cQ!#&_h!V6A'oo\(8W3&%'HrHEeT6VU38\J]".u1LupeG)[LF-)i>s6bGZ=&&5\HFRH3TSk*]LO]'35)AF;aI!e%Q"L(:ha8tN;EZhcY6sS9K3LR]B**q'r/#cr%W<qkpgKlEu.ZI3$W4E@MCt6<&O%.,NPA.7eWf26<[X!pZ=:i9CXc[3rV!;U>6o$J-#6ls>fY1eE_+-ksrXo+Q+U=/K3HV9qNuZg"A>kNRHAnGi`A$RP)[\tGF2gZXPp4fOr2>5d>6RYF$B7YXa"LG0NLW'[Q)+@YeSQQIYgkj'VNB@,4=$edA(PtenZ6C4j^'>g&A7RE)O&kd3D:1t,R8Q^<Edj=6=i(r3Q+#[2TUTL]_3c=_e>F;Zjsg$bL?5tYM99oRE?/23&P//P=j6h-FR\HVU4u*f6!.kXX)obQPl3BJE'ua'%oP==\CLq@u*dpJ"[7>FFfFeP"fkhN?%H<*9>2_aam.tEZhbh!d3Zjh:V=*IFs.LF&@A7#AnUGn[;L6&rM?Y<W76d0#RuYYQe6q]bljdS<tX(cN0[U@jA7)?Si/nc\<oW0\e=UmKTAj"Nl9-I>V\^E[\hoet<G^@Cudgd>mn8?$$k&p_^a(;W&+d3aMeueAOmT4c3_o93M=p3Ht6a'=-+2RgP5N@Yj.@=rN,aC1)Z!B;)?2j9DNfC!n+/SVMDb;4'J;Eq_#!JJn\laC/].&AqN(<]"sF6dp?AeA#IG?#r=U(I(hD_ouP6?q!6#e(A4B6m5Nr@J\L'?Z5<-/572hom@o_bb?p-#*E5l=rfUG6bHE-17?ef@n)3'*-#t<5S7TP#NUi*"0$F=KcES902:bi`T8<*=9PV;lbHU5ZR/]YR<Y+:_e+OpHjYR"B<]p7a6K*-)X*M!C$&j(g1*K*KH,)4aJ#1bW`fcbU>b6'bs2d#'<GpKaA>RG]%U:\>(--/(6je@Wu<TZ1Ecm_6aMDk`b,QjcAiMJQ$\->#$2Q4.%:&k=jb`aec6YKVmdVB:6qdJC?,p.g=7RJnO0TV)`b9_()\c/aAF#gXU2R56OmolM5#3qW!3c^Z]IPTbG;CAK-:IkM^Ze1#hXZd\gHcESd0o?@Y>t]ju5D,NZ>'j%D3Q[rb_9daYh-?/5]q9Ekj"-3KRDoFe!;r?q'[cBGPXH0s1ci:/ih+^leu6/1-o_e%?`(Lj*,DMddko;q:ZlfVTbVPS<VpT3F`6?na^I,%)=Xbc)78RZ8B\LQlCsNi/fs*Xm801d8.<M,RphMojC*4qU;/A:^rLOJck8Zo(_,+EEQJ#<D(E-[om:FbZ$r=OHWZYG*84I\S54LRKng1a\"$j71cjEB6H$C[r/u:>1]!)AC2#'`"u,(\M2qhCXTV8de-!@pb]QmJ[Qb,"r@f#L^eZ=>_^i28q,<:cZUJ:EO049HS*YEi=>5237Zc!?sX=X^Mpo(kL)6(4[@h2d!$`hKBY(Qo&1e3_R/3;l5U6k\njgI>&S.%Kgb[2:H&W6a`$#`*REuW()rg!fk+@%@<f\5-!a%I/9c[Do`?hZG]'NQZ)*CWM^*(-Z_2%H5^0iGO2@`N97fOd/Z0`o2tKFeNo58MUqE>;&HklZ3eV"n@I.69s'3k>4Xor3AnChdJ365?a1m,<#i3K3DE&JZ<A8/:bN(%^J%@L8_-#b:gX0jILMD9r<g3.V,4.A$8`Z(4*hfArCaF#HQgnfoBMfOc#4UZqN@q#c34OCkLWj?=T;Q?UWCj0W^C503LC"pVt#<QrDTJ:bGY?Y><&YXN*PIl$%*Gg.EGqF%VN*LRgsHe-W4X?;Wo6Yam#R>]rB=,75]pd8u4;Q9qFNu<5nJr$D#"B:c20hg'B\W3Al-(dE(j]T/+P&C#83R2/AWi;U_EtqkA4SCO)KidV-X*%YPfm01jgNH.YoDWSZs:5c\_fVngNHbJEAHPqs2s,b!;F?&AAR%#%%!r"^'5C&C+_A&t@3J>\/Bb!"/K.573qT)qs+V+B1R!fT-=N.esbd@/,W#FWKJG$k2K1;lr4@5`4*bkihCjdVN7.Tqsic=CnuL<c?(jA9KcHA/np?BQV`onR,NOMb&FE(UO4MJ1R6Z6DIrQNQfV1O2*[qAlE@6&m.QVag^ERlUgA<JQrfmPHhi>4l-NVKB2Q??,&A1Ml=q.gS.srY%'<p*(Y'+X+8-ReOE6#W\"G'10ckKS5$N8dcdIdXO[k3KT>aOBuWEj?Q$u6:+"*H3$@RJV8]0KS5$N!ecX;#mgnE#moi"#U'Ec&eYfi'%..!64P7d,U=W\U_b/,*(WUk84Z9B00fe'OH>QcOH>Q1J6IOE@Zg0QYt-8Sn9I,KLWs9`)0?(RL5c&f0O2qC<Pu3R=#aIJXa@JAB9%q0r7W&4LH1*dP0`/TqjEV;o]5Q&i1RlY5\/sULuEZ7X#`9*)-l->S[\%;Y*8ZS^R((FO^FgpEgU?MK'>*A[%*1!5@Us$V'REFe^_a^rscm=b[Iiq_ns:.T"oKO\_;[gJoYq<\K#dT=O_0)k)d]ui#p)PZ@2!31,:WU96<gg"%)Nn@MY.>(]3jPUPHh-`RRLMs$`3;PQ2H:5)mC^G!A2u;IL`>7\`h[<!oJTL<UkTaQfq#+(YB!mq$$?jHjP5*9NVXV$$r*;CId8ZEaf_V#R@n0*27RiG-,UgH./7,!S:V0/p@?>`bR"'-6K'HUfLB^\$7u)&`6])'ObqVN=B`^:kebYcP4=]W;MZq*/Rb;3?p#&"-CAiOhfUEcQ%m:2;jC2`ElOmHW6&#W\!/?Y?hN3M?%i9h[#f\95uq\6)U/<f2k6?Zg'sM<E-Q"o3Ek:7TDNcHZSoaN8<76WUb.\S"[0'(C0"rH:Y"7XeKhJ]L-k1VZT'#qfANVRJS@N#V)\&*VH580j3V'Z]4JkbD*ZORM.J*KUBWA<!q%ZVDKaZF8Uh;Gq=@Ze<K9@nK?k>$;:4)..XDfeG!-;gU$*jB'nt*S9-'oCI!`3B7*f^_P^`cHFCR5'@>X#;Yl9m']1iC<3%9GJjKT?JU(A)1;4g?ZuX8\4pj^keTo=\*prq>#[t//r@DinOEm(@5kZ2-%Hs]`>\4&]/r/-%6g"B>HN!]$"hF`E+VQD,V)p:[5TpVp?f%EFddHBB4)H5prBP.-=<If'P?N_N8+QR'mo?%e_H[27gFB^OMg%'fTc&8PLk*5\NMYP3?0%[&98m<^Wp^'E^8r!`0>V`pEF^Il[8H`K?t1+6c5LX\6KN)bLKD7k:jG/@p+@C=f9#Jhg)q[!Ln!a:"pR)i@C7#'lk0gLW3@q)\qp5=JDV$=IH8,L6s:J#>WJ*N>q`14%*P5mX7T!s8AVR1Ua*TR,pK+IJ]GA\2rk/M\;*Lp&!T9*1:&M<RWO07%U_g1jR/hDZ^Nah.u5uPp[[&V8dPA1-uNO14E'o%dgk=pu83(+Z,rC0e91]^?O(>IE*ch3T=NC9"@'\@u#dAWmM5n-MPX>+*N$]q.$!)&sl/\YC>B8_gkb'F@i_a6\bWuQ6"gdI%sL^0BPF0^4!iMIbd*$et'C%3+D/+4+%Bmo]sC*?h%PfpU9Pgric\nXE!aU'I[.6o_tV?/,$:7V<k9W4$-[AgSh$Op$rMA]_S@2nli4d'BeN=5dl'3JJJ5')>Q.0)^7euhZ?>b*fnLbbpW<p""WOig!Jjq>bBlPdo>M2gV4abi8+*F:->/jk4:"kQT*.ce?THMOrf6&s*=N^5$PfUo_e"!%YT"D][;a)^rBB7-8>5MS9q]&`t.I_Ok?qZ^i>9n#3U!1G)Vc/A''KHH7upoNYTCj(C$r]d\6Qn;b8N?/%9<GcL'AqiBN!oD1&mNUQgt5Fm7mS*HEk6iDHL]Qd^RFNHpH7iM.K=T(_Z'(`m_pMY"9K7eR[I3*@dkJK0PV\I9UYFlJ<-B#itP$e?E5i#*(EGk9SFA)APTRd?Cm<Z"@YNnln!"7`/D:BX'T"J5U&.$6Ju>Dtgb/9=DNaU+M!%i`oa0]Kl(0dMr<dUFCF,9su7:=&0@na;!M+o'[1QrK*1pZ/OP#eg4bKHj!l6:UPD?Z4qN95]k<b+4f[]GC/ap0HfN.4UXG4b)bMrlri?4*`uFN/<".pU]s^5Q<d,+u4Zg@E[OQFIdn)/2eY0io/]4(N!5Krr=[FO4X.Bb$T=2Il.\elGX,IZ8+4r*''OSQ'n&.@G2AqHes";^Xk&Wga^W>'B`n=6ad7\OHEm_[jc>#OuZ_E&u=:>^.fSk(.Sl/WC2?W4/5lf7d&3&jBNUiST=;EDOj;tj`Kfc9MDt"o<R=nG+3P6RDn-)R)tA`M;<XQa^_R.^bGDZ4eHg=%f#:Ef;$EB[uN*-:M`7A:F$tH-fGaDX;Xe!o&[-$(+7RZnU&425J*aJq<BSs*BU\saP".IM`,\XDnn[Y)f$*W.6B'G]Sd05Jp.$-A$ajY&JI^dJ5m<-JDYYd/Oo2Yb)sgioI2AYabq!],b[Pu7#i-d_H`C$+8Tl1p>#u"[(;eY;T<0@d"8D@-XA'/4U`lXr+5_=[r(#]*qXp5cFl_q].:*^X@st;LE'IpH/C7,Z[J_m""4$6Q6S*a&or[7b*V'%:_[I]+%ml<4cuMs?(bU#0'l?s[kX$Nfg'"4biSrEmQ^PEV8WW`=&IuF@3#PgIMfe?B`!8E,*X4Dg.d9k+1e6QiIdCk\=+]n2UFc#fEGm6MZ1P<J%1pt;+U71bj@k>]^Z"i#(+2Zs1U9tTM;dY.ao@u34su\U<<0Q=/o)pPd)<J*)%XM>T1hPA"+nAkr5]Y*Rh2B*3#N^Vl_ot_iuX[<?C##0&Jn-FQ.ggS[o9%qT#jS[[7]3lc1[TFm8BjhoY1HF%!#pAb<3:9.(25fnn@dkMQY>O$.*BliMKu%@=-=\T=/V)2A\C"RsLV82or+X)>KOA?Ip)5'FJ`UPXQV+^9U>aN1Qk>CmiB9b2u]aV]&#==F%mE"1PBSa$*t>JtMo10>M[0-<QApQkX<ZafcWPec1&GPoZ.T#&DN?N:D2+fd.UIW?\D:kG6]C^dT'6JhiUT*`X&a)2%'e\NL^,lgNqrKVdc+MlZMa\R)>l-sFsZIP/N&-f<0c";%_/&p\T[r'q.[Fqcm4c@G?YZ]Q.<WiK?C@c$qMeRQ_\Bt/F4aTYJ@)X,Hcl#q7B)0[>9^'4S0%9=b#TsA7d/JYp597E40KLu)q3Sh6GNN/Ua.E#cJ`"40SD]8L#F<TnXjNVcnjJWbB!h0]4Z\VU*A<M>Yj_SHUZ:iDQ_#I6jeTp[^30-C@"BK^BP>MoI7"=3B&>9r@Np\5B1_<p/<m'8Yi,&D]a9)f-5;3?'g,gMVrMIF<1tT3oVAsB/G?!b[?:h;/F?%(?r\%>T+//h6W#%?LKT+#lo`b=pW2DSgOHdbMMmfRMHXpikW"%k@nMkli%^d>Z&J**X!==mUAJ1!^s)W-h7J'Cns'1'Pa(riB3't=Zhr>jF,SP'Qh^P-59IH7,UUaQB)GlOpV3.]q5^n>Jg+^mSQS"(ps*\Wj[g%I4#jeRESt:r^Z`TaJ#>^;M=&>)8e`01!d^[PQg:%qV_ccMp?gV(SsF-<8$>%F\GF2]/$=C$\,2-WT!gSLrNcI[pqPWTs*j4]h_'rbmD@_dJHe&dRg?<RHe-,pL5_)hhf]q_8!c6Vr.7:'mUL\WR7Y`V7?6nNiA3[g_FZl\$,N@,76RD25^h[Pmf0n'^u[I>%X.dL&VMdoHfoCu/4$lGh)g9%LLTLm<]ijQh8D5YKQ\TLKT\=+m@/hkHM6P'[]luLPW-DIN-=L9a]99]Oes*<6*U.6.AOuR&;`0p]smn_=/L@'QP>r3f=phe!GmR]HH=M"pNoSjE[uE4Rb]@0mQUlZ,WR6lG3H?PQR]nIT!ATr;;N]:B:PRBNA,<W-r[:@R,e(g>D/\s'?05D99]+"9^">%%b!\g$JM$Smrn[C_Qg1E61t)WHfnO5$FMS->iYlC'>tphX94Sud;bmJP+]MkKFtM:p4q;]N1M,Ns5nN@-]^feJVb@9ZRq'h15K?.q71kZs5@>RFW,HZ6S)/YQj=qgp$4Tk.79ml]^IKaAP&,e32++[,Zp"F8eibh8dit+,Bj(&T.MSP#5uu@fRIBJ&+=Y'F2QW&,BdE.bgDono5?<fX!^]7!'Jo?Hab`j)#s?<*>bLF?]3Zcjlrp@:]EBm3b-Y+%4B'%\3sMmNEGH?@-"'2`fL;.7EC%=r&VG!Oe_*fJ3oQBas]d5c4h`5<pGg"3:0lj>Li_Wit%(k]^sC-Crd[u5],-nf'4I"E'fm5DWc)ka?dhW%7V=:,6p0FonT,lG4"/Mq=?IT=h</$W<6PgNAo]JLH!$<gir\+ZWu'(N^Q?kRfa^n9RB/sRW;dq+NLb2,/Y\!%!Iij(_CbR9DJ71mReIKWNaGDEf@V4-rj>?&Gg`L_T8LoihAQE7@$@$gB/i&Y[ZdpgT_G!T$R@(h:4@6qiCWeHJfBH\h:;Tptkqtc\)KO8;S>(0]^UIJl1TjkF\7C:=$oY1mrA!s2"7:3dpF`0%'lNo8s-"M&Z).2aZuJ*q:2"O?t:\Y]D%;>TJ$kqVh$P7,hEXlj.7gO7F,RNd.%E"H1UOk)2!c7MGGDpYF^o3L[9><H[XB-1;jHGjhh+>h.6a#Q=.Pnt\h*O,P9+?0KV_e;tKRTJL#@6b;KXo0]ihm-K*N/N%,&c5lE+TZ@%OBsmPr$*-50YP+Epenah;mjT2n:Z(4he&qD8)o"&.mL3B?bi"5km>rpTI4r:]6UjOo=`+OdnC0FkB2\5;]#__J(3k=]+\+SWc/[rs9l8c/6OpP>/]hqY]7cc6DIg*+HF^:YQ,mqm?^Y-WXWP+cqQ18OZW1RjY-oTt"U8CECDh+e1HH0SYB%C`X<4_%S<IqdNe&*hfW;2Z[ocj=Z'Ys[HVn]p0TS4S.b$6rE*HOb1@QcNSfsM,-Ilq/@!I1u[RKrj"gDMHE`8HQCBfn\du0uhr,D\&DT$N2o#1q>>DX>d86?)uQAk=dRCj_d-G4\`]+[XR:(kZZ$7W_Dk4Z@aCO_a5THj!OcZb(aUbXqp00)3[!HUS"!FLj_,E[',SEBM0cu8HNPks&F3Yk2dktC7=B.-R))t4\RH(QtQ>e+)eYrMF7E!YLk#hhSWh4Q>qKei>h4BU;>O@*e9#=Rf(3g20Qqu1!F]7^\q7gS_o;GQ248`eAE7aU]:JIX<o96AW"bZ;`n3NEgel_8`2;4?l#6Ke/g-u`0Z,oTF@AZ<rV6Zl)@.Jnl4qlGY4WQla.(!;^a8NT%td,h/jQDTDLTHCcW7bO[G%3NeqgMj\a3BEr]-NTF/_EZ?ZotB[Uh^AFc47).Z6[q-WlIW@H00K2V=7F;MVZqV=1haV`i;!je*,c_M&8i]5(2c9VmPn`fjSu#_($+:.SiP,AS'Z<;WY7Q,@hPLXpg#nmo%37P,aL''E%0c#L(fAq(>4%i76eA#s2tD:`Q7G-.9KX3-bDill83,)UI$l>i5(^V*T$YP5WG0IW05O"RG[j,oBYVuT[Q(DIf!-kOA$TRMWJs;76Lp0Z%q@bEpX:3X?s3XJH\.%N>4&+=Oc.DEch-6Mi@E.bJeJUL(HC!n70Q#g(B_dZ+`H-n#C=J(3UG8R?j4?-.5/)N:5P9fF#qEO^\7*Z_H8^d$6<#.Ya#QKeV)(+?$Sq/lLn$GsUNf^?mKOFq9LkIekljl%hE%*tdB01PDT^qb9Hg/?rXE:g9CIn0u35'?;r7)9AN05-b*CB[Pji5tm\u(BV/A>&oC1J@/?hJZ4VKIC53ta"GMu;U"\2#s1&-HkfTMU,MWkF9Ml2]QAU9*ca6mgB22,fj\G"3M%ND-75ZJj9I'E>A6as_ZkSQTO*rR/2=sXE^7&=3KTA1B=A"(\/_ph(C"<hZ,FD-af/X7Ig_@uMplAK(7153%?P)beQ`ljIOeH-lrEB?`X[7&,EY69X2i"/k&7o"8:q&h'IP2IjJd1[d*qn&/H!/1p\)Q!h><1;Gec8/%]`_-ri65:43r#-TdmD1:a1roI_5Q_otbn^NmXkqAS?JYCi/k!BAL%(NHJ:f7S/chWo<=OSNd$aO,I*/PGh!#f2(g>r(4*>LRs?59gOe_>mGe%k\aXOntV-CN9Xe*`$U?h/P:/jg2bF'6#:jRDJ%Dk9qQUq1t<mRX;fEBV%g\p:l1cN+1W%+(%jC1)B>)C+Mn2hV""6/.?g*D'c,b4$);?l'&!lpo?=nG1&'!G+%EUSC)t.>V%ae/?uadW#&K.TaY[fYQPH><)+Ec[h+\O-6:R*4laQ$u7)gXUJN5?:?=X=%3!$cgR.])1F.RrDit>fBqj^de`EO+rcOM8b@u2tqDVr&q6G/5%''+J[@Ek-eiLgYZgH/32"GrX)?bJhn3dJX=Ha0Q<a\a3?*S:8(2\P-XZ]RTuLu1"O5TIH/A7/[5e)1nS%OMfPfc):mJT.fsiGu=hH5)a_b/u1[3>q%tZj4p$3$"BuqHQ-*8#(o>;c4`B2N-7O3tW>Jq-WNt5n5f.`IO0m!t/+f_-toEXuDilAhmHs3g7Bf0c=d:OK`kKj04o4JB=HC9ZCVZL29R>(7T$2)U36LZY.W!la5!LDnd2F,\tcMTo@9;@8>aChnJr'E:5^l`:dL5Hp%)2I5_h-78<(/+AP"BkKq(#IGZAplnNUjNDC$"FsX]Nf?YDbY<0a@`%HI&qe>NTI%bG%"IL":Zj.0^p95[hX7+b5X?WL/dr$Fn0`$$[8H!k6QkI&U_<:d/&rBmGa*bW\OJL2V16UDY\)/%4,ECZ#PpFoZ;aQ8]B6(pG;oiBUTj863iD[d=+\s1?,hZN$rq^s-J0&V@?jAc:rF#E%Q-LP,70Z)k::>*6)Z7Q5ruAS?b`^+*FloQHmTAtt^`FL>\$p\oT(&N"F_*_\7h3'r9FA151k+Ap*Jj+?*Uq$WgCU[i_>0E70%V>'%jr\LCu2fb3@P7uR.elK*)?e"Y.p(ndJ&Z\-3f4XZtU1?%V4YPfklB^s"Q`bQ3^3ic<QD.qt?g2-^j+V[+(=gH["d!#A/Z`.[*J8asdJ_5qZ)qG:97U;XLW9\Pt&@kcM^3U)0Rq,*QIl&7e[5R$5YBfj`-9`kn?A0%$9.TX6`nKhR*CC=#^/a(hYK"*kf6KND2M^Gr/&[Tn0'FF#3s`T^>kRDs2TF\O-]*B,nCU788aGr0V`PAB9W[;.g9!R")^fAmRh8PrP\Q%T"lftUCc7ZKh@%jiR?DqqkM*9>b$m.RXe:;@fQ*50T_Nf=u9+QPdWI\#:-jM7Z\]FI\1Ld-"FTFQ"<VBc1;i%mF`s2loR.1m?TTCIV^G41*<3ZGM^FWSG_O^#YP*!Zu?O,o3)^O@22G'n\-BnN"s`e*/:UPY1tSul5+%f\[3A7XcQdg.tX0f6bo'H8/"AQM@+qAi[4]<,57rPP,,C4mSJX`(^Yp[6iNq_VpPg9p&c8!=A&Z"D6qKH/(SYHng]Qt'f_Tdal3cALagGPhU^\]"d6fY)W59Q\eLeZ7C*3EE7cKocBSq/pjRO@/=m]Dgh#%Cs5lhqhEA3KTA-h0:TnrHl?tE[3!Ma2PK]PFa'e[S-o(V;KS>aN-$X#W^-!L%?q"Y*T]?+TJn[a8sogH'`T-%N]9kj>_PN+@6QKjO`':6&n3[^XpE9GO<JtbC/Ue!?&FB%EMD.T=8J-c82@oh72m%mE4Nk1h:k)bisYi^+]G.7Rhk"%<osEdOd`p3VLUhlufPK[p5&Xs-&2<rUm_/Oca!.^[r;7:#.#SOCLL$JW,PHN/W^Sgo-^%*+@e<#W\!/OcbcgOj,`JjZl:)7Rfj:IK=?>>Rm/g/k8B#7Rfj:7W-^hqC"*S1,:U?ndFs%'KMh"+eR)Ve*0g=1,:V*>F<O*$[=e`*;p+Yk,CadCH!1m+sOm2(32[NC_efR3q@s1j3DL"gMAbm,9nGBY+]\mIa$bb<2=O;))Xqa@[hWmO^EWCd`Wet8`ap3]l4ASI(7"R*]aiSqijjN0c:C1A7XcP22t4V)BEtmn:C5=Pg[tme/\F6D<@fSm@2_245&BSfYbt9mGad,;O!H;!In<.cb'>!QG'aTIUtTiemYD9JB,nqN;5!J?[R,)4DkAc04l:'!rbqrHH+oEWPAm/%N_5]*?,k5lkf7M;BXu.Us;X<rM6bu6<pTs/q72/pDaJG$)nA5='(`\QZMHeZ&4EZ'@"p]@udKJHGsI@WAJH^4$/:`09ljN%1Cnr3CG(MPOO@,Bh;+;+,E=:f#lQi\+eZ((OuBnc2.,!Xf\^Lm+AR]hnB1^FR\3S4$,N:BBO^?%t$9XA#iS%7E?X;b%3>Lbi*MmK)L8O8kM_6(d<?dWVhH;ZaSCC0^I#$2Xit/f<Ci;84Z:RX/a<7BPf4L.nhcigUC:Yk31>sUSlPIm;6]k0pkY#`\P(9(7H<Mbr:F&%Xelk&JI\ArW_6ji38WOP4QUPNXJmYIhEfdQ'Fe5d6o0U77BX^A(lF^G2,d'<iJ@-O@+X"2R7%<3:)0'5JWbWRMpk]c;0ScD%AG32/'M?\(PS01)T5C!X\*UUWUa%_SSVPM$.['gQ_iB)2VVfkY^Q_9.hh5:1*a7o+1J'1)W2<n+mLf>IV;=M::-gRuN[g:)Ro/[TIB'fGrF<Br,HIj=Ags9q#3AEJFC`[ABeIePN2][s,$LMT`"P#*W,Z8=X;jGcK<SQ,aOk"HsOr<<a,+5*`!^HfTuN`htU0)GB/n=P/d=B$_64@F2]<ZEdAaQu]_OrkdiK5X/.T@EUG3E`g'?ed\7=m-JOLSLt\9iP'+"+PU_i14H*KX6a,uOX!!4/E?ffn.30ao7fpc.4H^kbKC2"J(Qg'@74[<A\#@^Ocbe#P_t9QJ3(TbVI%J;84YC-4<@:l:]PF<g$CUH!ZEeDM?aYZ\6Lr![+3^W'c#gSOjM/Cf'1Z(Bln)^9%$EeO1L)8?nQJ5$$%G8^EFZk\TlJ?n\C4)",:6=&+F_[fWqRGW(WpdPaEtkAT`L9D;ohbo">T#FDT@b.)(U8rp6`tic51ul!&`Z7h-UnP4C%Y]#GAN!#E!qEb&fqL->s!J6Q;b"cqgRKcL*/B2DED5Xn4XbE9^A;X=q;/l/)%1jQ7aUq'56k;l;,lSrmE_k^Fqf]P9If1E<>-I6ad1fM+P2YC;;%G%!qbd)T+aC.gs#D^4h$h0;#l?S"K-$smIZ'b0LeCc[!E&aALO:\@!C2,4t(&h)ZPb=Zl?k4$2eL&m2&e\*c"AM9M5lps&5!XbLl:"7?P06o[(6T#T1uPVNSfaX\LVNWE,WrM%)MplKjD;$K!&bQPJ2cO>f80`n:m$LH#7["Q?WC0+e*?h_16q$L3nScpPeEa8j-CIIR)>Q1cMtuUbcQ45I5,fdLP*>0D)lsePZ:dIU2p[;5O>nPOMfQ#Ua=*%khnaH&W]>RC((4H$`0#\f&D[B`2=2EO)&NH!5.:M/1iFcM?NDb4p)bA<VkY$rTNIdQ4u'&VZ"5eaUtMHaCNSk3,66m*1tUMg\911Jl?RjVHaX&EUui;H7.s_cSO2-cWiTm&"Ru.@C?7\a7r^W3Ij&9rGTki;Jk:#mcd2RcrsOa'?C4#7h6Y'i:Hd6\<N;F#+,Fq&K;Z.&.fBm*#oe4W8DBj<h1H%K$CSCVN2eNY@#%QX!2,_oli`.)?#-X5P)l(ldp(%R$k^*pW?Rq8#SnGl?Qq-_J,d#^d`r@S\B@3od"Ob_-<j5Oab\[rlQEu_7"j>T/*E2Pjul&?QBbi29H&eX@L=_Hopb+fW+tUcf_EP$>!0R.\Mq%S!=TmkljX0((18Fa&8$j,SUSi]neba\!\cOrpUaB(%145q=N@(=0GneMgl)0;-o:UK#4OR,=e0VFdtCj*f&:O3Aih-`ERQ;pN<E]4Nah<[:!pQ=SGVEg"EB9kBQ:)S'StTE`#gEDW^NfRs&s6%5NH?E>REbZ8e[qMO@$ZhUaBMG(LnY:RlL>&JUGH/\s_I;-Gu.h<f%a'B]=@l(_$UrjgVR[*(<c&+>!+*pGWMQbV+AIh]_f[e<aABnK98Q6=5!!saKgDE`oYYt2`aKroqHOs9GVY_UPf'=%PAZ;QLG5T2)Nc`Xjk-D_t'QRG72JYH6I=6@uAW8RQ(OM5uD@Jo$pGKdC4s7p:HO+dLEjnZY#mRoH`r,1otkLNjen%-2IO70Z.rYl@Q=s(GeeKMlNrr.SS0][`n?TN5C;ZdSb6*iOE+$X\C2K)D_DB;mDFGd=tbdT=fJ/SJj5^NZg_LmeP/rtjG\U4(RT2MAVU$:h+5TM-s-&/Sk3bdrcSU6n[H<a]:[dQ`dBEdC!8]8(-r<LX(jV=>SQhf-Hf;sNjIW;,lJ\O=rC#Sgdm(_b45;G.^rfukX&*c+C7otis-E*-I*B0KQW%@8ar/V%W>4-Y,?:8%'e,u=Y51srb3@]'?BD&a(Yg,*W4[1S_m.0uZrVFc\bV%B5Pr4tZ1K,J@[?]YsL%^2?j2#4,SPFr@7FSRD2fESO/hCP<=HEMrUo)*O!YcR7NitAu$t?Kgo9REkY8_"-3Bob.daa89a6[\i>o*kDc]uT1i+-U73D;8"g;m,YV29tg_7;lfF)Js6TA$"`!0<:Kqntik2P?)h@j#c4GGpCAn"d(L:HFESkHPo#gl2#i)lFf8?O/57DXP=rM&\Rq`O0E"cYH0&O"WTIg:R-5-"Rn@=\N"-G%tjWXc'?UbXu](F2#a(f(uOO+$=T!(74Voj5T+X8[G_.'&*Adm[cd1?1)eigr:MsS55=A0U_0(C"iIXm1Tac3Ve@I"+e6SM57)(&PXYfp]oX"0?AjIQBWe*$2b6jGT7:YbN6%u#5UN0nc6P*5ens$'#DPTOd5(nm3*&1Ro.bT3K>&L0]^l+1@Cbt_*>&A?guD'T@R7O]]&^*<]??GFmSa']uP'iJUl!8K"!.jA)_;>EjRrPb?B]A&rB:3eMiE2]^>#2Pt;n``q:j()MQFF4a7Z]e]mddrEpD)$&P'D7UWJ#ag9%V#5Bt;FFtIrfGJX>AnFM#7)2e-[=tXWqto8bW/QZD+;"<`p^X6$cHWK45<d>t5p03]s#nkPP&3Z[9q>0n)2H6+qg;Is*)b;:f$qK)pkmctL>1=GQ=%6[.Ll)=(s2f'(&cj<+iF>i_^qugj]&.h:$T[r$i=)P]gf'<=&_!3Tn"6`">tq,``W3l8;W#L2WA[8>V<KZW@FaOf2aClYOT"c*Vr-tLCYIjFQcQ'hMd8c7utN-rSi5']L="f4?l<U7,7A,KZrCuo(MT!;b6]^M^JVf3,5@\XX['`DiV2eU\'M'"tHVdSit\9<Ei[Bl_lVV;L7UJ53Wcb[^"Z9?`mjgj2%`J:V?WT@m4q<[65R!L.@D1=isbA;th-o_cg-1F2PiA]+>MBF]FU;#k'9VSaC61m>nm7GZ:?7d:%RjU9$TrLQgSO]^f7nip)t:h!M/%'Gk`6?<(69)*.2>XmP5J]F)p*;73YdWi#7Z]m'J4*&;*.o;^'5T0@Z1]MVO'%[RXCWT<.$Il9>^q>0UF95.%Cqpa3^+bpq47c1iPm,89'RCW,3o0jX$-n-W\?A>uc4PieN%h=p84"$B<'FL750(fbI%=K';;+=[_)\Nd2g\7"1`96^D>TO7S.ud$/i9J0fZ^Y.RUcFI)SE$.L+ic?RCR`QN<c2:!!')%e"/VrX6S"d74*U,JYsUa*A'6`I0llKHc">eGisEat_]*Pn?ZitSV3,1<*6*TII(1lgDpUXsWMCprn8;!=2CsEo5/+L6M12$W2MN3FTqQG160e[?&JPq$>>GbO5,;)UOK?aGX"KY@-`1#V?!/8*lXV/3#?f>7;cp1`.TM2#VHW\aEOqfJ2j^OrPLD)g/A5\,CrLAmcYM1b^Zd[fM6$NfhrfAA@`2n8(2e:i']E1odG9<JBZU,30jK6h$=<(U+,14"ko.+f3$meOht!"&8?FHD$)(1/l:t:dRN6nlSV7:Z*[DAT#7_a#DQFsG_a8V;eB\8dTTYHNBZr,8^-JUFn8b_D?V*sbQ:SsJ5&b2=&`bY"*,-W&2N'ps'X`g-9dXd]4YG(%dQnB=MD[AW!(!%**M^\qiZ>GBdnO+>Ni0SXZ+JNV\lr8-'tY-qg'lnJB7ERr!4B*h:FFoW2oDuc4L']4cZtgIP%uj=>rb!t_qFJU]kiO?jJ4Yj$d3@f\6Q\V]!B3-Njd"+.:pLPO"lQRYMK+ir,bHlP?/)!$S0BCCMU3CD>_'pkED6&:Y^B72><;AS85KlT'90fg,jNGk4"dQ=ZIDlKIg4R.2"Qm6epYZNs#MJ<$&nfENrao(4+bXMiJ;!8JW0]mX!t=P==YR=V+9-W[]g2ddQsW2mkUkEl9uq/C6ls)s^p;?GtF>+)3%@G/o\99&u?rgKlr`5RRr-$RK(8=STlTDf"=>c/el413*L#q'A.]KCj-S.MQoJ8@dZ)/hJpaB*m0?(P",g6\%a'SN@;hO.UNoWigq"&kS4VrK3BgLQ@MBrVQ<k!s?6M]l3-A+G<E8MoB.5O!Z$jo4jTSik^qQY.U>QWiW<8VgJ>)W_]6N,<!Li)TM&7lAa\U>>Elg-T0BY@6FS<V!Xp/qtB:Kfq0XEif`=h>lOPnTB5F'fd4eI:a:C3C=1-%r@Ij=Za@(Zrf_E9\B<<3GD$r,rrtci_M74e(<]N:XVZc1JMp#J?j4!UWFNu/*Vd5oHhZr^YC$!0J^=2gS3D"gXK5AN/NRn:=E1U'"P=^fR<'bM+5F3k!-n7prO_digUVD"p6HhVACA\JjPY"7gAJHaH%/gqE,,3?AOh&GHG<C([>T8@QCqph[-,S;e)-_P]6Bas*?u!^]UBp^cM$Ie'NpD%#,l&8SZk8"T;HmQ;0T&"%$8BQ%Ct\AbTiQZ;W!SD6?/hZN>,HoY"t&Pksa@%Y0SBY8%/ij*@LMJ&smPY`[.60ZsBs9hS_'CSiM:Q_4Xk2=5r$Y2)SD'orQ@0c_hb+4J"<;_9ph#NpSoOZ?V>(N%BrK![]I7+`b*']41Bt'XEl7"e3cLGhFAh--9Q;jQ+6XB27M&jKLYgr5)\CMg"7LWMUFi&WjmZp6\$aCq@!'`uql)O7"%&C:BZ:3HcGOSM])8K@Qj@ZQ+(mg9Z,b!/?chAt`$D(5o8rXl(]pM!5#ilH$eP1-BHck832.a.@MU@hOXZdcL'W.L"B-h=FE7I`C?N!e]q;q=t"uq"ij-MiVGSQp/7@SmEHi6k3!E!F!:rJ:IWM&GV?PPm'kk4BhiJ1^uJ'IcH,&qdVtmI`f2#ao%]Q^O=o#PH>/1>"L2WGLh`m0P:-?Jl:&0g]2@?=HBcSqsis,U+59o8W>9Io>j+jX>$HL,[Xb2C>e/10)+DTdc3\IY+%1[jH?QtHMo@kleg-T84[SB5+bWE:^g+LJ7aR+UVRCTN(Gj7\lZ(A]mKL.B.i3FqYBB^-`&ST>V='C>cC]i9_>0fD:=SViX?9:</*T<Y/,.Zj)1j@HF#N9@r3-hd\D`mb5pUR9&pgJosoD+S$Y7H)*eba-j.si&mT8omu[3l1]SB.f%08Bj3_@C8]$2q6X-6D]k58tEGFR]4M0-D9)3iUO.#"lE:iL,-#tQB^:8-Ma,FpiCu"GNV37maOYUT6CZ,AT7bP<=r:Fo&XkOKZe)h%_6Ono?7ul;@h6pU!\*NHU/j1@86Xq5MGE;'ob%Agtgos";AUr.S&2ok,=3.[g1=)LUSY)6Y,&qL<VN\@be$peQMuMeZ_co=6RTeL"faaLAig`+<G+?@0j+$AQ=Kd/%B&e5B2Y;fdZ\:c2Q0kkoA+si0hm6I&@C:U(0'A"RjuFoR_biWW]N_/C;E/SO>(K^E%dY6Id,;X`cHR&]KkrXL:2s-nf]BtQ)O1`3mKVH,Id5Q+5ArTBMC#,u]tHRifH.]akme$D3G?Eo,<.[XL/K`\0q"Gtd',WWn/rkt_9^F<(?XcA_GaH\H?rCa:fEM:\T5tb<LJN`Q'PKQ1-Oc&p76Pi;5m/c=.F\]fd?mAYP4aShcGg#?WD>_VIeX<c]]kYMlKqJF$BM@JZk`D,]W,eb>2uHb,Y!B*4<c3G'qkZoTj`Ud;fe=+T8>D>Tjl@op8=J;P4WN,;4;/L?K&jS]Lm14<QU+4X3[pON5D^]")1KWNCpqf]mqL4m1j#^3B%1Q^@#VgU)NsJ(E1HeSmR0O.4WsVUrb1QN,gNkgL]"s+Y8rAbi@h>.CEB48\a=1U0$]7QO05]^0L+n<&`qL($nAFksKt!M"NdqKn*B44mjF]Q;BL_(CPpi45^"MUOYL7Z4;t/+@^Al5W(>fqspUpQujZ::NHS]$P`=dMk!V\J-(s#Dc3YPZ0,hLl@fYqo%t'ps&Wl3TmH:L?<ND'qMP=]3Y#IUTl4h2AOHod*cuV@[#7t:4p'uV/,F@_qj.d]r;FUj0J.2^N]P@M;tLp?#ar1cc\2.\0+$)o\&8J:.K0gO5.9eS'PS')*,EOf\dHf9T:$m2U/mXIK5WiQS7,q=VG%?Rp&r.,*LU,W8HG)ph8Ejch<lR3-h[U#4#!IB,a)GR<jP*9\sFhE^YS9)++lfND@$/q0YYDRR"rhdE1&0m>+3/c5rl]$F'W\,-c<0#(5!)dQHS]8P/IAn9FTh&[Yq$V)TG)I"d:+Y@#%ioB*rG&)m,dB@!$,**Oi8EgY:qo%Qg;#o,>GpgZMs*B7P!#i!9+$^:CQ,jtH/mt_DbC8b4PD]SN0aA&psg6-^H;3k_#-"mRZ/7nS=Q6Z(BFIH,-Au%g]C,<+s/;$19=&Di20`H-C)W>,9YlO_b4$1XaqDG7ZW2-6AqmP,,CR7WR!kDR)T:^?,_V'8Z_=2.)mVt*:ri(A,cm7[#4a"3)."5O+RQan".QcLb3jM[YI##l!mms>b<\_^Q1XG_4>C:WgO#IqeJ@Z*]P7+fhNsCcOT%<H60*d8:"_t9?jub\W1I,4l4j_mUFGTq>p.>P!R9-I<HuR3arc/j`Uo"lb/(`T#h;[Xpl4eAPUq=p\[TDJl%Jj6Xl2Ju:.cc[+Q]:r`htR/_2J8`<=7b5Y3;A8!B10[K*cgnFrlp.B5@+6T+5_NGf6_i"WmuT/`OnH'Vc-B^4a$.H4,ls/b/fB19TD$lBB^:U%dg9OgY)0N//Gpu%"R*or#%8XPa%ErHK>3Uc,n5AjQ`HZo#&KE:7XP9SXg)1SW>kJWi5.N1M9KAYFtEllo3S;Wd6[K#QMHfH2Y`YG$B0'11qC>Iude^q"i@_pU4lYCOP9l^/L(>cVl%.4N#5`;i\)LaVuftNlR2&9-b-88n4_r.Hf!K8P)S7E7kDjr3GlKTh+*hglXuS1pN<+VAhg]io4G*$9'oQN/S1%>%q\b[r:/YKs8_?a61I%)[_;9i&t=Hc7dDebY/K&re9IL?ejYh1U;&cb2;*TP9l_`G/ZZs/j;&cg:eYap['o[+[m:@CIDTXB(i_3AD-d_jReC)V6UL)8iX$5#MUg)ED%]e2'?%'/hiGQd/2@IK.P'HE=L5BaGP#q1tf1\=3!+SC[5`3&_:GD/Z7@57qRoT=j]1:c*Zh!`[XXjE.[2dE8d)f_V3$#2a8T$dYh-l6%NWU"[6U+?%HT80/(YA*"7j^kQl4CI-"8q]g0Alo($fDNGIsKO4kWJ\EQa8(KOU=alTgt?655k&]TpM7!$l9-!;ul4R?":.#LKTJ$&u!l'*(F_8D."IT54J1$hh0XT(*@k3S+c!KQ!Xi!=u;*g9chQ2'k2);CoVcJ?ZF^0Zl66ZV#!_';eWPYb:PMt1gNHINFscWMJap2I6!knTW0&4hZ]be3"LjSDqKo#m]b.A_`([^X$HTMSKqUppY(/hS?gFE)I?+0(6O/.+`sg=b2PpPV_eUG05`(-OnDafUasO1IaM<#cOAPX"/sh;A3PAcC[.ZPIf0qVH#=I*Yq'gjWLSl_iWY%[k"Yo9MP3$m-B/*i:rqVGF&&8`W2CB4lEa%k<JMQ]`7!s%LJ;&:anf`6m8+9Hc8TW#[k1\#-#@T#ZC:Y_eC<O0^jJ.^]74J2(I-efEEC&Hbi$2Hr+!YFl2/g97i2W^.,B0#sUMkI\87d3-KC]-B7ORpi.`bAlIaj!e=WgL.F/lF^UY%,A?sMB!s;V3"KEEDB2bB<p_]H!+]iV#g\DcLD/D:/,6QR]nO-!)Y//CY,]i@u*OI,,KrZTpM+trVQ=24F#fCiB\ZMN-0-)B-*KuTV&&lh``-2pgKf/QCn7O*_N[r@HI#L(JPdp+.Ku)@GYr"r<nN`(f?I#H),"YF`Nb]fUn&Gr2a@4T$sU`4?)pPZfRTFN9%1T@C&))r&eK]+No3UO8EP6\JUoQPbhECJ+r04=e?4WjSagnrUQ#eI_#5:Nof0EEo(q^9k4!gT+VIpKrUlA6?>ddHNK.gT:`;)B7\gji(-B0"HOf<:3KFM*YfEHb0.u.X"3]^n:Ap4eDKu1ASZe6@"4(a:)Ru1)Z1:O?!Z.FCY0/e/%NMAeU_(frSe'!ahf8M^=@[<V<lWq(Aog_8d78$oVce&jjBh5-dH#h%Z)\IQ.Jh-X=hYEGl>i@H`'dp=74#f,[RfW]g;eF8qeDZOlrQ>Nj,e%Z\ul!I(d!iCWi*mmZ)JRmcDNi%2A!RjPmgW:R`shb0<4XSFSX?a_;(U]WSc7FG++3#@0IoU2tRJ=fBt0<1o7I^>D#$^A[DPkC<E%a222%cMQ:;gpd!Ce(0SLrBKUBlYQ<6rH,u^PiO+f:n'Y6qN_g1jlU.s[^Eg:Fb@m\7jTEDM+Q&2^/C=4=EX,sdDEbJ8DNR)[V+Jm\.h@U_6,rUiTlM0>H=bRGruS+c![g?$mlEn%#MpFAeT@2O:*sLX`%N3j(I)LZbql74,t;]h#KH9DO_S`B;AN'?0\af,1/>F,<rZj3XSB;K4gdSOCPFl9;8l7/OL"-_MspL/oYiSLl6`i@$ZqC>$>*mOd1CGm4(;_dQF!a%_)edA?rhZHU'h]6:(b'oBtGHrr2od'c%Q#(7H.>WN3/#eraS@;D$`d<Pq$Yg)Y;?[]-E,a)5^!NQJQ]CR&J\.#ZFnIDf/'.Gaq"RoC%HU_fkjOqK70MLu/'XnmNCGW[$pXhs3$dZ!ij2GXATs.\f_HO&;mVigcY\Qga+*e,4n#]Vuhi,[eHOWOnZ`$qJ+OmWaOf@7s0YJu'0FDo$R2$n%77/jV>@en?49C'W'QE@*$iK(S%l-=UWdqddDl!O,LPlDS&=9#lXfV/RAZo33G`T_;PUdV2po[q]UT/W8\p@Z^>o6)`kGK/l>M!JW]:I]^oA*2!0lW7u[ZuYf;iHS.eku2<C7:K,+<r.h>HZ+.UP3A]3dI@aBikUVMirMJ/]KLK+gR"Ipfoh-q<\d,Z0ZMZa2Xkk42Q177K1WK(C.4t].9)In0o@l*>$G<1Sl_#eG/NV-'f9g*h-++F3+K;'6XJ(14^5MN=:NuqiN92gWOm"nCclq\OQ5i@0FTtC2^slaq)bNp>9aB?<*3PkE&cuo'T#_LSs^"?#"/^ZYq;%>^BgO$8k_qNp%?"AmFp*k=7=qT"8F%+bK]hp!$ihc(FHX<\QgbF`R5(eAS#F<+<1m3N$3qQ#r7/LbglC!]n>.$S_Nl,hs5F..m5]E`"/@r'fiMsWi7GZl7O,Ak$$+95q0RGY,3U*r6X-cnaVjL935<>)b=-6(ob?CbEQ&5#rq:nj,kF52#F=fF(S,Dn@bF<7LkqL;Gr^fm+giRpJ)m&'GBpM$m3.[I&seq:JFJr8N=V)Zd#MMWfk>q>M3iJCqXhPonJ@H$4=0P8>D9:?Vm-%G5^\`lW:2k\$E*J/1W)rjm!T*-jAmm,DW$,3EGJV;BgmSp"HQQ2KW,?p%P(_Dlq[+HgCM\2JY?i3cl*uj+p@\e8MSkens-R@kSWY,/V5971QRn80O0p;cE,A^UJRiXp:$U(Qe4cr-ck\3<^B(CYJnNE2e;d:;b'W2NX#^P\U!Wgj&_C%-52,EKER@]BN=";1Xu\&kc<//NnQ_VP*F(CNC2Q^>PBVVl+r$H5,kgk@6_n$$+t//1s,0]sZ+U+TDLH+W*DYfD*;ZAd:*HO>l7)a_HHKOp8ImUppJ)3>a!#%BFRAZZ>Ulj`6d[[s1Q^Bc5%9=8WA/25t?p&p$)"n[%R_*f8Aha$L1pY5Gs+m/Jt)rap<E:ZW+YYM+&CrIGp_^l%N5#lK18Sc5a4$[ZntL`GRLEkoqeOe*U7'bqDsGkK4EK890TCu&pj@/D)=4tMJsbsm^6>HR-n0@qEl+X+7IWiN.CDR2'W*8@r))/bIbA@,bLg/ThQr-;.;r\@Rb4sKs\N)Q\tUVT27&DY)a0'>h$j&I$VqM,3)i<+I]L%nhBL8SqobV0q,_ab36UaD5Fq=%@T?]^J<T:MI<'mr5bjm!S3_07]@;U[F#daF=Wd[hb_-MmL_DqVFa`FLf^Fs(dR?LG#?:Oi,:a3e\5gJ>as]c:hCIpV0DFRtLRgV)5*pYC3BE4aTt]dFmCFpW53NB6%leG`q<P]*),>B95GCM4+7l3/:8Ib*GQd&7Z2g$Gfa]\FM%$qjd@92%D6\<FhZkU=r)JV8^+VCK[54)rKLZEi7RF6)\$O.)hF?]CXL*FhB=^kZS,_&^=S66YOSB)CDtZY%\K%G',"!PZE;=9T!R)'j+b#ReR:fEs*Oa3SDQp+?<GqKp3(ja[=%fCBZ+/mkl"lSe'-B239Og@WFX^\tl_l0lf]r:\0oV8*&AfkQ/#cgAT$I&LD9O97i=)4.D]raIfpQJKJ>%MNL0:RGuX@1MFVF6k6uZ(Ekn!V9Qmk;c68g(=aM=)Ku"gV+$9nPTcC2``_RkhuWS3SC9:`^`?^6>E*bD1Mp<gEQr%;j'aF8k_'3;%_cc3I6s%k,Hk880m9d\4e6%6D5)-jQG[fA7]=!V^-sb4q<X"![$>N/;.#b!0TWWfVGM*$oVNJka@hVaiR-:)q%*19e&mh(=?gFW2RcV2a#BV^NAc-H#nAqgr1d]*oZ&i<%8&lBR0Aj&TT;sO^<pA77D1cS8`Z,[=-4VS'B$qaN1LLS_It@+*2sU#()7D2+R[YRsuoq%1i,V2[>\eAheiEBQP/X7\rp1R,J-pKnZ`<&jS3CN6e\@P)I7&9dro!3S"nB)9jnbYR/esfJl#W/M/R)*(.l=ln$crlI[Skqd54#i8S3777DK5AHahE13-U/U7r(M):TZ)#AjC=6uGs'H]\CJ)&X;0)>RWMKH/(SaN2HDa=k=73KTAcOcbcg?[r`/+<r*U,9nGJ!4N(kMSp]LA7T4]A7T4lN0",Z)&X;0)>OHG---\VG:12P#8nBs)&`8-@Xm:ia=k^g5n;0>LkLG7KS5$NlHAhgPTmNC>(RaXoH>A$+X&!PR43e/84Z9B84Z9)5R9B3OH>QcOH<e!&98m:+X&!P+h[k!j?Q$u6:+"*H3$@RJV8]0KS5$N!ecX;#mgnE#moi"#U'Ec&eYfi'%..!64P7d,U=W\U_b/,*(WUk84Z9B00fe'OH>QcOH>Q1J.Q`D+X&!P+X+N!]m@as<TlQB@gAa"`k*uURo3R<iJmLd#'O]V,^(+^B8\FF*:XUR&eYfid`^+?LE+hqn%U4\mEt>2*IWC9.EGB(]KES(d/r44>s!s>ZTU<K#We'/OH>Qc?C%%@*)FG@KH,+Lr7%B4#?UmYBuGN4]"`sn>dT!Yf:XiS(9Ti?q(\kY7[(3fVP\q]ZF2uk?*fZg/BPIF_*Vr76+^#fCE)1!V5[Le+*qAIZEM;uo\M[snY=R,oD?EPI/W62M[p11c)u@u$0@$0XsMOeo]u<2Q>,O="%LW6a4<=De8bU@ce(<]Wun@nT2-.*;O&PH);)4-I^bSF)KVXGN-p#STl.&[F^+c7>-#7oZCnb!9GT_[.SG$mi)6g:S79k=PS3Xt/>YkI*F/4%\'r>*H!bh>M&j3Wq!j#Us4Z]MP-:g0DMG14-QC_N:o>p/q[E::p<lZ*>_=iO<@p3o84Z9BYF&Wa01W,qmDd^;I6.uH()@\Qg?J6:^]IV3+ESK>jj0m(ca!,1Fao!3F-34mo'k!"[?.6Rg*g[[X4k`oaUGJCe?(l2H$%d)*1V3)_<LXC^*eLZ1I@WV_tEbtfPthk/Y6PJ)1*EFRl"*@X3r9ZrXEVsD96;@F1iPdj48V)JGu"3O,rFfEUKor1Nh^@I[pnKmlp+08^i,JP$G)D*$t.0ArZY;BK4aj#(/IA_ZQV'MQ"T\s6J1>_g2t7-L!R%_G]!;E_'$K$Jmr3^%U+?gTI*mOi3;l[qU3,"P&JPb8QD5nK$"X47ta&lna(_q#jQi3?o[j+oNq@CugBX%l4SRb"+Jk)Ua28#s!FrCcpr$QB[r0)WlHoo<b[n/U0>bije#ojm&QjoB\q[8#iF0#Llq>lY!j+QZ)#6qnET\6RX7,1$M\88b/HM*Jg.)mI8(1c^7%mJ/i]\klB!-@gC$tZUt*PeL[mm^"]TmX52\;He]^u^UjBuI]?)r=g\5,cneh26**%XonPS:]$$fZM-bYMOir(1-Z[iHf;M#bEFh#+S9/5!2Gk*!q$AON?q#d.POlk@iVRjO#Ob6f:j.39e5T6s:@$7,>s;L0+g.o$<<gdO]!H2Q5mMTtg(c9Af%NZ[4kG0t06P^*4/56+1F/r3H2l9q]rIqmBCGDM/)Z7eBq_]!`c]_DG'j-*/8XrTi[%UQ0$im_]d$gL4;:jt<L(`1o^'Y':2=IShlcsk>7gW^30Bk`=HS],OT'B;gKonT[eHNj1f<_$%MK=:'imReY#9+RERr6GSa'G:Fq_$`e^*fOq0"!>=q1'>Y)F\kk$nR&9mf\&.uP>hq;]HMLmluNC$p+57?-lRf%!=/<bV0U[-R9UYh8<`;o?<A?'fl!)8,R/>^>+?APm7?BK3q>kan$%jpg%cT)?tDMo<:6^/Z7;hu5?$TNak(j$d7YK^Z+$Q<%eH6oFYe=J?Q>&7u.]WOJt0WtG,UpGR3cqeo%U=(bKpZ"JkNV6llThtZ`?&I/3fUB,IYptB(k0I=nb*0*Me2TMf.`+h7j^O&J!'L1<:+K`U9H8ppB78[9EBP%(WqDeGV(;m/ngcnbb8%L=$,#`?Y]IU!nWFs!3TljRAFT(o2@G*/Y&L/GB+do+6SBFc$\N%'>IFKK:5#Y:TgF1[q_H4CJM$Udr`Q2hR+NL8sh#CggF.MgON;CoUr_$$^I9:qN%@l$I.pRP50qenNmGmo/UIUi'NDZ\>4t8\oW@$Q2lhnYkjrDu6ah==Y6.J$AEHV;X>Q&8^o33<.:3Q2iq/8Sl_O!GQXmQHna8r:biKa=[I9`1d=_5<7K.Gs+"U=g&oMq=Jr'c6hSR2=a()u&(7GY0lhjf%GXZ?\eU_BNX]qO00dQ4YC_0o2*EgoNtY9cr]%^C9a;KkX<O@*<A)HltJD(KC61"J7he?%GfOH>Q1<OH*c8"K"oTC6JOXPFWq$Ot'5nXZlQ<:<T:L!<[q-db3iinV>Dl8!,4_'RQbp3[OCB_Tf-_^BlAlHI_3KBS<0@k3'(;]"88L#Xf4.^?7G]E%iD^Dbe7)n,,#SjOhXg2cF,ccC?+>m]W?KjB1U1M+eW^@-5CB(KW\6(cJ-^AiK\hu#4%MTgLd1pLW]hXj^Ji):9e=&5s&r9gir\Tq$]1**B;n-8>Qdi)=<M-eTA51bg9DsK_Vj/NjjIeO?5n`I<p!q+n?Dq>fU61<>H=l=+tUT<"hHCTB>-uo<)I=opJY8'p'5[.CL0M2R1oOj.%WiRK4T+A:j3o6BRPG?;N2(\LT(`C"ABNq4.6s9"<m58*rYV*@-Ekiu947!FCe9)kJcC7^LG$g^+Np%\m<bq6=-/.02mCN8U0/D<+<EEFEn"e431Ih$$Y.QQHDnXnTm+agK>`*'VBl?k7A3E1r7W#VAT1Ea5jI'=9(JX_(-[m([lJD9a\UP^pbu6$+<EDd"ZMeS4W'6c;CV0<_4lb_-2fjjNmr)JL,M[G1MXMp?oR9llmEt<RO/MuacH\MZ($7+n+X-dleblrt&J6@PUP@n(<@=maZf<ugKf+TCW9-S+p'q@$kE].-#Qm-/dI$[i`03"7J`*@^K!(WVp[7BXC%ZCd<3s6(:E807`&kE(8\;_Wg:^pH/rLg.3.^BZ_5CHpbl@(PLLQ0`Jo[tEq;h9ug>`i&@0=ANSJl=nj\)L.F5JaPPpP(3eJ$ihZ0*O#>+7h!dlrN(D0*pZCXpojT5!?>/72h<BRf/#XiLFd5DKq1ETF*RHXdglZ$1X&.]TQ.H%)SIa+?:gS_5-Y<!uXB*^4rk92TAhdMR#S8op^K5C=01,LIKljrt%L..uSAmF`0?#&[(K:n-XE.6@`DH+u/mMlh8!UeZ/M]%0<uIri!(@<!$PKS\8;P,PIn8I*TnjEUZ/&[B!X2CZ&'GaYP_X&CTp]Os\Ee^S*2b2V"rZ-S"8nXAKA8Tn;uGO52f'=^Qb5J=i-@r/`AcHKAu!b(ldE3\WkmP,_#gioc`"95l&X"_3De\"EL^?htnEN<.m6Mlgm]oXjrQ/<]O6:,Dp[8ekMS^;^a#OV5*Uf2_rO`hV7fV,oV#<=h@q"c4HS:%qM2m$M-AM_nGg3I^egP=&$/*@'6e(<56[TJ,:lLjVXC:3p:ITo&0/SH6`s6RA42QU0Qq0Ug)XMqe9hr/677h+q4YJ&ZM;^^Im]J"p^YH4n0Or)nVs+u%AWEkj_n!b?=TgGU2PYggaQgY]SC)r.Gg:>P:_Xap`)5ZJ,W<iO3RoZ_?T1t.O!j(Ct_RHo_cHnp]APHq<Wu8'=Y^1Hf.7f%2%ed;E>%bueb%5n::7aKKB=K\W0X+RKOTTbeG&r:[Y2>c0Xu.0/Q?VZl0%fGtHW.<7)4*JaVl/*'AF](ma&m<`ShbQT2C:5Bj1.!kr`e*AmeHH\E<Gp:Pse`&XEC!A=DWI;/GAUn4`e3c?bC<,Gq,^s?!Fi29@AiZBQ3j]dfV)khS`d1*87aaRfNuUR'Lu6UVUkP[-KF4gXUY3m/1WgmflnBo='&Nk02D66N65Q<ND__G$GB59o6T2G4W'nWpR'`b*hU`;2hFU$0eiq>Ku7XN`ak"H\U;pdr+\kRaf(8cK0T>UN[M\c'21,=-kZ?<t/p6r:e%=\;!e]cV"p1=_]>3Hf7E[2d?1XLN`04eBSnNAMrgl9dSP,EDPu0")OQCVGU;-30$n_PN]V-?;WrQYp=&<+Osd3^[c+:[7P3akB8aCU,<qbRIr.Uf*,JS1FER[0JAF;%d-1h1h;l7W'@]1CYnp8r6UG&ML=]1m*'QU&mD(\n&eV3;q5cu$cU39DnR&Z%R%3&3M'<YY0VH!qi(6XMGoR6Q"TM,L7Q\o5P]?#ZqisskP@$P)ql*s"ek5uJ"M*VCXI(5R#;rL3Cef_\;>P1'<=!r<[Wf-h62:E:8cdskb\(0ll'm-T:36-hItM\k#Lg:Og5Z?b;U>Iq`E\?/hF'+JLeKuj1"*_#-8<,LK]H@/$ZLiAU12O2!?Rgm!*u)_a@9O^@usbMu&)"adtK&C;tL8[5`!O@*MnNm4A7_hKd.1D?#)JQe\k?'Eo'\O<KM@()7(W\n<%+[>qhBl_pR^^M6uTX&a#lF`53X'*edQ&4',N,4c:(\/B`eDWN2M_UW#jIQmOZ]B#1%lgm\#moM\'^+3[/F9'++M0`pu+J-p6ciXVa53-GfkP;)\%`Di7ko>9HL+E7JVS=!sUYl+..,Xm$SRYlIGJ'Kp^"$[`'Q(jgi8'DOo^jcn7`e=5qdOJhg$C*CU5-G1aDnZL-ANX,55s&WNO#tq$EJ`5hJ6mQ;M4^YV&-i1r&-!*%eoM;L@hdZ5EK0'^3+na"tF"A9YOdV>lorR*1c>c,A?Dtl9'iq/I0sQo"EI6&X/dkW7Dfu."%6gK@nO[r@?E!,eW43FQM(/l2_pC/:7[Tg_6)V]3-EU=q:JjYqAX5!OUG^`>fo8%u&Hc'(!WoU+M7#H=qiHF!(nK%;upi=o:5EI1Z6`h<$jt)#!NU`5P"q0c"dpiH7R2rpEAP*3<Hrc<C!lB*ZEN(Bj,G0T/`]/9pnn&?RFaLRhM9i<0.r^R'7MQ\5$QKi68bS7b7S3V$%%WoYr"IH#mRb?U:FY8oc@3_t*qgruI\>_D.*T[XH]1&RKg)AQf<VJgDPUU9n!000u&-lsNNO$B!S+1?`eV8%8HQr2)V]Mq9.^c;qf\B>6;4nlrdJc6,R(")W;Q<nF96YV3E<FtM@GGX]AV,l>#Th$^t[4X7L_a-_Zqij35$Pel#No;Q[Ppl+F:`K6U]%>(aY*e^E*Q[\ca'9sCVg9us-Y@E1/+o1O,\%H<>C=!?E_9'()=)&uWn<[8.eQO\XnSX5Y%$pVUKn^o`WSbtA,3XOEelJo\##X)7Ygr"bFbE&CcQ=PhP;`eLOVDuU,9\6n<^U@Zcd^#>\U'UMk?2Y[,O^sfX,OnVG]:J(!'q$q#^%*!:ZVSSm".aO2#P-]\`GS\/I!>V<Sqe/5thGB4'n!+'E;8q?HiG/4[l(C!&VjF*.b:`.RT19@B20&O!T8D$0=TCY*1bR\PqLW%#N)o&^g[I=Ju?[*@BDd(\T3)Vp_&US]oAf7)J&b"J2m?B>P"d"\CrPZWo2:f%b1J9"!+PYp0(QAg6_kTS7Ga(iVLqu`7;.!YZE5l/]']<Ttn*\V1n/l<Oo3DjVt[ffr@SpG9oLn2Nh<$gQQLMqNCP;Y#k/]X.U`_)Ple]rBEX17Na=#RE;%TDdEc(Q^Qf99OSDMt:O^E-CuiUqh$^K]rFV3*rDca.^l+ACNU+.8'E,Ni/XZK5=5@7@5*o:]oYRjAksd^i_G"uE#H5Ll>-!:^#BH5au#)UsQK(&`uT,B.E*rHY@nEi^k[`b7Bt;_:N&PD.0@iKAb]4rRsmCfDZ5H$aa6V$KIX*i<r+hQqF_I&Hnh/'PW3GOrhHeCem#M3aF.K\<9C329FW2Z7j4imdTTYTd\nRo1cVcM'qBYD?K6KYG.][M5=)Q@i@]PXsO#qcMtO.E^;tM&soA6BQR3rs?kG,qb,n:[;sb9KGo86&m.4S9.KgZJrAraA+k4@7"1&6k^!YW6NI5]j6EM*@h:@]..r!,$e!fqB88[Is+Z:J7?Zb?^86UCa\$#BX8\\PoIQ^mO8+@7U2k+.R9Nq<sST,4]g"VZRBlj>P_C@Y90]$DO0*"AP'3JN,GPo?aUUKJ:@mu1eCaCrjO#HNYVF_G<`?B71o&=b3k4pUP63R[N*9h+uma6#>qm'IN.C>"ZS1&aI'sc*dam;G3?U*DWSrd.Oq1U2l:0pWo:SK[>'tIEUj"rK8c`r>PHhIS6_%q\p1E-n=hH-hisolQK)3"YoJ)P,$ArN5rJ&.Y'csK*=S"*3nH7fB.O:u&DFSd9_oB+`:;1a4&W,OI8!B0W5s7)D"ZH3[]46Q+qE+5_.,X#fCcNkK%+.3.TNP"R+nq9cVN73TQ^-FLRs4"jTsH9b8RAPb7`tZcs\s0M<k+^1ej-44ItS#+1rMfieIO7p_Qk9P@R=)Nj2H-cK]GOL'paViu..=Ea2VP*%tAB&&R*mms`%U`Nand$*r"3g5]W[?XLng9"SNo\S6Mn)>VE1Q(X(WU,Ram;^'QfMk)M:gqFq_GQMbY=73KmPu:*5pEhoK,ZtPfVV_KeCroQQE1?l,a',JBPi\hVZQm5);%i0loc9(l]j[`.&=00Kpj&qo;n4Aoa(ac[WNIAt/-j^g8"Wu5G-?99-i`j#?[Ck;ZQ`:'[?FgrBZF#W*&[P'<G+<M-s7%@A[/7P>np/MD1Lh`Jcc#2?VGlN%WUpQc:WYrdG2e=0%MVj^m5)eEiMshEi@:LBY?K%Bb4kkq)43&XJeLe`jBkfHg4$?^UdH::?^'^Eo<I#RmO5*^X7#EJ[]3uDf8\@F`O%N]MLZPg(4YGAtO59HEHob>B5r61U.qbh/(55VJL%%d+Z\_c;L4D9V[%gLR@]$H$%92b]4/^afYZ@o?dJ5*j5JD>T"_\>29(gcW/T?`5TU!f7+49V,*co:`V'cB0in,%W[T2;Bpt;pFkS03COh##La&h1&P4S*a)F^XZsuPb1`b(Fre?3YBgM>7?4gP[rR.lJ2o+[n=QE2(-EDIgTEB0"S#gsZ:53s);9*6m87$?Z1R0LqFET@^@\]'3%mKBi>jqtKkbPh'tu`@DM4A)A$>:p82dlV=?S]D.#h9H3O,'MI`$6lWV;[XF^+\,k@#MS6DpC+kD^n,ZsE;A^<Bp+,66V>VtYL?NJOMcfMfkW*(AYLBR!T@Fl:bV"6n4Oq3u_7Hdh91EelLFFu2*d\hDPiJ;=W&#b;H\5AJI\k9fO:eq>"ZJV@cPUr.o>#<F@N`mB&LY'u[(n90_1[u/e;pe$5ti`mF2:+o'*hJ>?)?M.tlW_.2X8N47"Q@*+JmS.'R`*pg%>.3Mn!:^#LqKp8?pu@c.QLlV_%AlSZCqgc&5JNK!Tf)igeoKD;]VcH7"j*6<cjudorJ;ZWoJ_>5/1/sDY[U=)dWofhr\[gJ!`1Y.lDPdcUu1B%q$grZKb6<`(>u-I>LJbGdkf_G;d)m8k7t^Xq<UOB^<.^&?G[U&>2bqK5du*_r@5g8:?C`H?FP<MO@F;`BPY6lV#9#"?De8HDej-DW)q0Y\O!pA[].]UARt"A3VZ0MUk<EXK+^$-P-Cgo]YM`4A52>?K'%YuZlGo>F5?(B0gkZJ(XfaMZM(]&[jda=47uJ2(fVYS`@TQ;jUgSr$D@oo62X_q9CieIHI685h2^UJCpeKf!<+'=T.dD2^0'9IIa^]uk$6*Ynr,1P\?ic1KghBgAKZ`9*(Z9ioDh>94))0)LWPZ)Z8o4s)bQuk\>W0l_^f13]#tTKq"9&qcMEYL.ZN1,nJc)2fA=j:CD]pkNr?MXAEceaqfF>pmhjtlKTRtUHi,O_rm$DDppGR.d]l+LB??\OnaoNH;H?01I*cNJ&)!,@Ltu-pCouPZOM"0,F4bqe:!9j2ok?E9Sh6bh*GPM:`ppV9>)naRI>m8\9JfrhUS2CWE,SK,pP*kj;pT[0<c:"fo&gsDC$d8Rep;b7b!MYnN4iN\m>-^E45R"iYCa)&/8EXJbpshuqg,Uh<MJit]hB/`bNQ;t;aB(gbkSjlXl7:0kFjF-3">r`cVU7"UC+1uqQ2hrO\c8)oGR79V"3h'EScJK8&+NAJ:-+Mj`&1(7dcJnY"B?sPZt7iDN%]DF36:6<G,mA:"iRQ*/IblD$eY9IrXH?)'8FKi%j?,XSoX'>c;HF-M%7fB.4]9p8tN/%1#uZ_@&f_T)`<rJUt6\8r%PY6"@ooT:jF'OhFt\Ds`][l$?Oi7DcSqb#\$taY<.(Q9O&"o\njr73`J`GO8&FZ4/eVhMap]Ou6UChg-a5d>Ognd<<:-+MiKqNRE.+VYs<OBO'5TTD52Pij,-Ten.E`W3.eO`H'ndqc(Z81f+)s=-fMOFsLaFVT':gN?ZLhY@"'MgYu5iSLR1fhcIOF7H<'Fo]i's:_4AbJX7\\3P#gYE*2hjq*t<>i?btJTeG]W0Q+Adq?L2@o<PR'ltf8SeG`i./N*:mF=4Z]BYOJRY$Y3?V-Z/^bL'_;6^9R5dKajK'U?iI=SY?kD)g_+GCE6)`eMqeorU"M!<*GWX5tJl0r![k?i/7-<l1MA=$$2#lLi-#Oi.'O[e"Pt@kslX]%OqKfr\=TE8t0!'f$B&c,LQrMU8#:@mo\(?)30*6-f:_/kX5':$5d-UBa!ubMh*QV&9BAo]nA`m]q+J]6PeXfA?70]"GL>OM"^[@Y)AfS%AVk<]QjHaE`"$Qf5*7A0<>-h'W*?A9+<fOZP(J()0*&@2EM#9(h&%"Dgr,$7j3qH_dF<$5b>Od6A\5]QW61JaQ4b&XgI"`b9:q:`s@7?JS*E65knr:UL]?($-DA;gK)p_Jl&f2I1`J;dng>:fF22m3b<c?D'TGp3RUP[5^$G%O!4kn_ORHV=@f5#rILW]Mh2!&N\L\0'$ec/U=aqAkj2A8ZQQPDnX<S#Y!PHPXe6Ylg$%$?Lr%RT,-`S,>5-]<hlkZE@WM2o/#8d^9E#l5BdnAb'"f504)h@#BB;4V#g5=:f,BE7B\AZrI4G1GuKG#4%ZPhP=;a65p4%*&^t"K4Yd9][,JQU?^C*CF1I0C<4hLE^43/W:<\`%jtAq#"*GZpk4$V3.5,T]?9Q)\B!n'\\5QLf.Gt1+r;WUb/OpO9HEo='p9,-6>H,7R>:#l0\"7a-*OYkk4*#3T+"*@p$\[SiC?aSelp8a`3n5/o_SD+8=q'4)TCV`@c9;^h[CMg'f5^BG1ujI8J@pd$nCnKh^7^`'&cGQ@<LSESCq8c@;W!,:/FM[bZ8!<J/&J-@0?L;JAVVQM#@qM"DE4`;FO1ak1D&6"UI](ijc'n<^a/'Tf^iZQ\Xu/B$q',ZflUGD]m>gR`9kHH2`@KcAr^=15-<R^STL+1RY*<SkiD1!>BuU:SMoKG0HIef:,u%^a$oprd``aQg9tg,W`E^9B%*h]g\,(5WQ]DqAY8mT8.sS-7.m'*eCFh4b3^\c^#;ADGB$*5%demQ\=9I)=dZ$U?uW`$h5=U\DJ?r_\Q>)?;%1dEQ<fWDCfs5N+U_'kEqG0YU7B]_'h%9p+\774Gm@dcFS45C_LdQ4#.W+0:p5XE'c4,tk_;UHP2A(gbAs]O0C')?XqWb:5p^FG9m@haUag-N(QIL)(W@XJA30Bi(\pAC[hJlDn?8Pb/I)SBSWo[ckNL6M`qKi2ChR`>D-Y'(*'Akk`\#j]Sl!@l`_3u6A2gBS@?BC)][o\TdT3t7;Hqrm7`G<Z5Y#ia]0E-e)H87Xj+X`Q,'Mu!ob0]]3LWh)//u%_5NCpBC#s*5^r=9Eig4::cP[c:d+DOq&hDJUah-TKko3F=(%Cj6/ZtN'YSqXOnR+$JG^X.qVI[`XM/2k)(GkmPk5uM.3CsfE(Cfi[bf,GPC23&Qcu\ch@o)\Gom*ks.?CIr%LA;sBCOf[pX<I97"W3];olBWamt\Mb"Ef-\Gp.%;9"3P/M3BXg+;=M6$o2)FLDK3FpF3KCVMV1JlN'R889j?et9"?I*p'>Od0`>.;E>P)VBK![m0ii,eI;0ddMr68H#C]Jf%]P2>1`C@-XcL00IG?MY&kb/f%Gth;A7Mf)pVo36H_R(,!in%@OWgm)q_@@/n/P<cfX5&2hWSg"c#A>d::YDW\Vs=&/2@VMUkCo^0e5p)_'K-Ec!F2n]X>MupeE&]7]\$M*T7@M+1^9Mkkrnk7_WOd9.H8i'*tmj4i3C=8MVRZ!'bYb1Q\>UGR[:9=-6-nUEn@8tCD8%!$"6`XA(ngHl9=<4T-;\N=ZOnqfBV53;j0&+(.rD\]Ra.`/gOrd-@@`$2)<'/^>38+-DKK=,_&$::<C=)]h^FW[`W4D'?lV1Qi)O(X1J:A.8ZlG\U.[ItmeEo$YlTkOO!!!#gBn5<,@PQkC.9I&[!!!"t0>MUYjT#8\!!!*tCWg]Z;V.CK5C`1>Zb;@__r*Qrc%A2lzW%\.FXW2RSim(jG8d"NbSMn7Dkco:Iz!4Cb"B/qGKrB.H(;bIQ5rD:_n4g<D>bqE&R[g`<;!!'g4o&$bnjnC,al<4J2m]/EQ?[iC_!!!!a/ZH/>\8s%gs/4tWFs.9=klUnc!!(M3s1MGCz!<*#7EW?(>!!$C,^iBDT!!!",!,?@2,&`+qz!'jnaPlh!d!!!!$!1!]ez!s"Vhz!!<4e!rr<$!!!*tqq&F8q>^Cs2ZNgX!!!E6ZuQ-H!!!",!'XhSln,F]z!9d"V/]Xtts'OZg!WW3#!.a$ZNYMNo!!!!-!"9qQz^]6VM#64`(!!!3'/-c.T!!!!'T_=ZRL5uB9!!!"l2pf\JzJ,uVI,hY^*4ph8i!!%P`5V!'>z"op1Zz!!WES#64`(!!!5]ZaLjJh"0EX\?f:2VULcV*:^eii8Et6Mn7MY!GP\1I9<X,Molj:Jui3HSB_`Gqe?rJ!!)e1W-c_(:Ye7LPmn>b#]'T4mRjRRp(Cs(lXXhco4X/7qH398_\`<\jBcF^"#n5bM_uK2!#H#`NeXi9qal#3NL$?"$Wrg?C#.kL*IM*4D9OT&]L/UqriAMHbHmT65dTRNLgJFB1ClR1`NPaL`jnZj0BsY;lJ0b2e[8PXM8.ijdr&b#3ELYHe_/^1cIo,]\;b_(Fk[s'l>OMY7\8MZ0::2B?eQI*Qo8j,]K@.$OOp"tLR2(@B4Kr92VV/ND_:DAD(`@9*<M"4HHqeO'B_m0BkPV`2Df)'n:t\[R%O6,jN`aaY=o%2h'`hkbEG])(`MK"iSiqcfXUU1[1R-gKGWHJf[Ga>^57&)n(sb/g9tnTZ-S)GQd[EJYnChEH.;Hj9W#ulpIkOO^CpSIrY<pM.gI[BZ0tG/_&2<e0'*I/P'ui:F8a?;L;f8D6HLgAfW4f48:-+h(I.CX\o*[BO^HgM%\K<RW-GbLA_=6u2/a=.93=+V'G]J2hT=J6E6cQA+,Fu?Q?7)A'9h[cj;DYf,["fe*2N&&jOIBH#;>&V(.Lui-$K`AK$*^q_];hp@JeMuRLUu'\[0*'a?".XZ\%bbfPNdRc.fC\/_+;p$2DW3>FVArLAR\^Bi-ik#<<!iNFh^8,51CWXV"$X".;9&OI(B)O@uWKD^n1"@DSe6<Z%URdMS!p<d\.WraL:K$q:(Q-$$!RM(=bd@\pQ=f:n$H,-eX3@]GoSkD[SePlbA_qT3^dQtCbAkGac!85pEig_s\0h"I$a'GB)a]fA'ge&\9.i`cS@Cc14c=Pa0HRXQ'RjW"@&!;uH<;o]4mEkFPiq@WILg!f0@M(VJdJN->gG9D\sIdbWskiDl:L4bH+@r4Fdb98K6^U^qN.BCp[)HmVjH%pX^3[nH^oHI(sEVKEGPqnD%&\G]8hq2EV4N_]+=_P2_F\DPDM%5p1L4fm`1\T@m(77\N$\]KoZhVGC?Da+Ab.)J4,L1_GfRmm".U:H*'`?QI[V7mO8K/@\4TB+5Fa23>0=rc`8j1joh&U9jTH+R+P#X$X4Zo[pQGa-io&Dp)h$?APrg(]*nM9*eaQ^VYc_]%;-4.N#m@Cr)$NEZba13qQ)Y72T="2g%&[uYnO:<oa%B:\oDmfP7e5bIPjf:7f9[mRo@fp&D_KWc&5`icghl;tT!!(r`Tq3e???C1K"bq3UQQ^($Y)HQtct;^_Q71I/Brn+->b$:!XC71-foej$1$?NiDn>a$['d>`CGfYYboD!J[VA2G'g:51V2J-5`idUI:"kZaHnSjT<?j,EF`:BbJB!WCp.e>6#-GP&7eZ'(75sA9F'u8?DR1s$>4[Gt6OP6i](qF^;7S-Rk4S4e2J8Ji"A_1B==u7aFsSo$cLnSU@139I?t@;Sn<QJb=D8PDPjlNi>P3YK!M(U/]<H$XTX-B%d]LuW6a+$XcpR/`GI"tDB%HEMY##_kL^.m]1jD[!Qu_-u4c;'nZnUh@UfLG"=8P3<"i?dN1HW42SI6J4]mdP&>T7lKEuXlI'6_?Z8<5#G\@6$sfALi>>;g9Xfko%!9S*&^(RM!_NR"]FV9KR(bqY\B[n>.uK_XSa?H/AgptKWL2YQeU<g^kQ.n,mO2=KXa^nA*?M7YfV=JK#[,WuFC80m"qa`>`dE1bEqV-=!>_Q8B<bq[Zg#;QShGk(IKIQ_j"93a56K$\?r-DCWEe>?h\)NHJpf\;76R.UA^g5SXn`92KFW1??@`Q;XKVI,i\[li&eE@P7(K3*cMY;,t8hjk=So?gaK])_m3(l8#,4t?PNUcSrAl#Z\GGmb=^r6d3*ahqa1r%YRtQ6bamcFuKb[I%l]j?n0W.-G8nCR3_>1MPs9Kb%7nA/PRNS1&4s;77I]bQD:>-EU<3/E@+0j4:VG0ti']_%g%.ZB+XaApMW\pTBH.i$A:Z_O9LDm<0'Z8]52f$_(P&M=8NVYsgc]hQ6rf7(i8-3Vne<-2bpPnEGq#`a*bcnu1>c.?T7@\FJm4#tK-"Ciu(4,0^2AGdRi("iM;_O4eP*rdF@nD1`jr=RalUJQQhR<SSt.M5]V1_b7/pW$oobm?dGrIZZHQiM*V*oA),XG[I=u)YfGAX9XKi%/ft6@gOGDU+#no3O8!@?2R5^jXVPrSOT-kXqV5q;%&k^[+^rueFZ]l^G79J(:n"9'<W*cLkNEo2*O^`BC.4;lH89_4YX8)eeF+W0GUjNrEHIdkOR*r&>$dNq?*!@";T+RW#Y2jK/i(Q2?$:nFj;4T7H2;sJI<RBljm7hKP><`@TQ5\*@.)6?h&6@$\I#i^!2jKhWCc;L6G/6S8JU!^Gm+0L5Stk*pQQ=r>HX;J4VEb.am&\0Jsdd?;sXo+TMMX5=`E3=:qG!$H@nBgD_GJ>b$/NVq8lA-0<I=G[OWdic,m?i]`sul+cdL'lA1%5PhY3i#Sdps)B`GM7LlX,&')>Z5gNDX1Xk?4ca1GWD?+_kKTor^j3+aqll$j*R*S;*dr=;2u#13+oB^`'#PB=TadmVQ\6"r2db:ZMJ%i10[kU3`Dopg.&"J,Zegb"deZJ@#hYcG&cpJp8dgH`q"[Vf):\26\F5nqbg8.FOOd2<??E%l$Y'>>OY5#9W\2C;nCJAN/5CYYLlg+^gO5IkW<N.H&j^or]qW)"Wpko/hg$t[>n:NRE'a'W(/0LgiV>h"e5sB!Fud!%V#:oKV];6EiaCA^?YZDa.ocLUMA$l.;u'm*j_Q2)WU%3pC@tk$7eV+VD)WbALiH;3hG+pMr3aZeT3>BX.WNl/8^<,ph]9=`q@,ZO72t[2cTF;<O3'XA<g2D3p--^JQs@i)L$uIX5S-EJj(&m'-P6[AV=>fDQ1'bVoS_1Vp/-9YP+R!&<]+A8?"6+qa=m+anqWE7>_kEAb5hUYB1r1tP3"'/n0=M;B0@^X(LJ'Jq8F62mTXjaMDJkumqf_Bo$o4>c^>:h2b<Z(r[(a")%WRQbOPm:SM7/"$->:7--O-=4MVYPRkK]13$F:XYN/SgA'B@0ZohBShAB[T8S=V%;L]!`U9/XPPME0,=o6o/;?-YB9&cN%/K&N^rL#+;:'nUQWm3ngJ?Mu9V/!=Vet]B@],j@CHeU9[(;Ea7&+n=<=H4GUj_4U>R[,r]Ot9)[.T=LLk@@0!^SH<lQ=I!B@bh!Hr->jJ>Yc^/^*oEu8k%N-57GFl#CV*sBc^&JpL40,;MNUB<+4AJOfhEuT??5/^/2ro:8KM^4.0i4dSKj9e8;oHb>ItPL/3T,aj`<aAa]$(`#L-nZK_8:c>jK8:Z'pOR":Y/D0Vo*8;)o3)7R))e&@_'11o*Tfo8*'h+1^#a4:4n@>17"7k.)*iloF]:Ei[3K]Sk6SA>K*IW:OKVW:Wn$rOUUXq-e)jAhHu^2*/K4AJO2(B=HNB0\V_b>B-M4JAJ*X'ZW1c"J0(-]Pd:Q<Y;>L"VO%?1@Qs[]UjY8tqb&F&+J'A$Bbh*$s7+@1;af4!i.nFNYi\Zh\q3cpTmWmsR,C^?7\KmXd0?Sg0"78jhn#$qWu)AcLGTM$6HIGGo/%.c?2b;aNk%3G9)Ql[m7r#&T[D@H(R,r05A$-'aRiY9*,,)(lcD@p(?a7k9@(po(7uUr*s)=Upq+MU<61CI?2%(cP$;\017s0B68>&M][;g2C8-JZ.q\"@ltD1fPg._)G6>V?`XgEc]jP+[<rM[<>44in*s5W6a2m$E<=5k=_:RB].IN4LM]@\MLdYO_nT(0+%'T$jOUegl5dsNjZ87<Pm6m!t_j0JnRl<.tjr<EAJe>F>:fiVhm@bl?d2*54Mn\"EC3jCEt8>d;fjGQ@jX+&sbo`iY53*Ih72[?"6aha=hS>'HK5P97bKc!!%D\eE9_;AIkY!@qaWaf@RKKZS%i\;2RRZmqIH#/@kUYYD-K+AV2!r0(h$:g_W._o*%H@nkju1<Xrk?f=?rBK0ot@+R-U"7c("=H>Bks&]a@E'p_3&;FNVC2$R<*F\6>G[rQ-t0_p1.SsD`-5#s.oZ5i`+&S3'Jb!OLalJ@>gKu.kDW<&IL@"hmN[;t2ZVn+Uf`f"<e9hQZR-i(pb7Q&(;gJQo5`@9+S77h_<qn?%h,4dF8mH6_$@^`jn:a"%./dBi)X%6@u$0V.UCWp8WAb@K&ll4uuHMj$t%Y15aA00sS_JI7tV2[=6J`Ygf**T[-5rM,4pjQud_K%2dTsmSOgl/c++(^5Eq5IS&@@5*`(R8aScu=A0jr^-*`2Mk(*3u>/EY92-BKV,Lb<`a".EeFLe<F5+_a9TjZ(!!!(O6a%rp%GDpbM&7!<D'LV-[4F/\+K,&<dTf3X*`bP-sOer8%q$r5OH%G22b^0>2T#'A!IsbYEY$lk`J9bH]KR\@qp4,TB%+$S0?^3e"q,?d,JGTkrs%!Q!MBJP<0$Y'3!JN@]i[,r>bHRff$kn=F`IT7CMS^Lmh;A$0!%h3LE84a?MiYFI;rCM=Kr<M_JJ71-HF7EmChU?LG^Il+JT`XFkp.1hF._O&M28n]R`F(5tC@J]mmY%jY\'#T..V2+d]]+Uq&*&"idB@7qpM8eSEnVJ>;,oXb57sZ"^nn*p)kKB<'f#'/@%G/OVYDi&9E?KllcpF7NORO7@,H`H]8I[4@nbG?ij)3#NAMdO"Ia\5t/VCN*#8ImbnkX@?@Vp:"WfLF_5<^`LXY1?-Rrc>t3ZrPXdE[5V4Gbr"*;kII?3pKJ9A\__^W;78c[,76>>$ag!!'gt5eU>24TAA&'+AI)%_j20(r1X-_%.d)CVD]5d5rPp4#>(rZO9tZOcWL@OS7o-iZV6rCPI[1*Y1-F9_t9E4E1]a%u-K^k+.g.Gat"a'Qn08TPc:%eW5Bo-O*^`hK'm^l%cqD;\L'XNoS#AP/A9])7glr#(0"XF^Gt;M(k+)]$Is4IPj`^8lg2>Y6eqZG3F@Nlqpo\J0MW5Y9os=J>NFo9,B"=aD8FJNfp<<*hluiNf7b*@HJTnn%&?A3Bd&sXo/Vp4Z[LU,4^k.n\q>6H5>qS(e`@S;ej%)UjaST"#4Q(i+2Jlo_=?fg)?_e6dL3(lB;$dY.I-W9eT+q^roC(e&0=R_X16dkA#!&`3cCbmH3jtId/c3ab(PQH!1@>HqsrOp=5;67SMFeO3/aF(>YG8N+G(ihs40+C&IBQ)j?ppd;"SBLpE(pfef.@?YO%]jg.BM0[sRikmu2BN#/#q@j)8qT2[31YceJE<jDjQn[7lr>c,SgZ3[M;`#V-\`a5Qcdti#SpG0]+9feJ,%c7g5hHq:>DEm2QRS^-G<K<,]P7E$&aYX<o(Qlb)r]nPgBZ74+GS5kUG=)r<`CX/Aoo#$f.a7^8!<!fTf75$ZaNO!G[)4T<cYECs!!!"1lLu;LU9$R@@43p"[e^2b,ZZajrE*cFAoZLn^ZY:\F"q/[NGLaF^HIZDKJHEm`OV\6`[JB\Ko'I+gi,%8M2InmRbZ<.NlAq1*;p,F%*t)q:)%bU*L[`.gXr?2_a[?%q^t(#6p>/QP5gor^&c5]+:Qc!_mbth7pnp(AY>&(kM78t]]?6@5[CsMpOp1bCK.$/1;#/]bJ:";(t6L"q^P1(K-gWa<MG^33p5q:?CiL,!dY=26r!EPj<:Ic6lrM'*qIC(r.j%(%Hua;BZ+GMfJi1WB$J;=>S6l4ZJHM+TPEEEXWN>*G*LL;A*X`A]]=r!bMbQumDAidek@E&ma>k2cV`-0:\a0ek4eLkEGH=$i9T.^X'ZsKcWI0>L@?ln'U+-C`6kD++Lt8aGV`(JDN'pa#EJC2c7L'bhUBU'\QO\"CN&:6p;E1c0CRS]>XT(0%ii#8Sm$k8o\nf2c4*@m#fEUoJ.8c;YI9JYg<>fV9GF6fli'O%,o.:M^:ben\N*f;<jRnE@=:[5gGE@p&=7=WKfqi7(ZtC-l$ssg9$?AQ-gaQi=[>>SpmU/-Y4`;eHs6^VZlcaS`2aNYk*MfHMeL0"*SN5-.&]N%0:/;';I4R;3/L/gW1??@`C[%0>b&Xk8(EMRA19B,7emtg\)_XoX='k8q+?-q)7V.+<Z_JFi3T8o?gB$SOo<j'qr-%Kl4"!Z@S>-uDNS%IBZ50^`C`hbLd$sdQ[0W;hL@-nd6HX5+13(Y%J`a+$+3=&WIVD*,Hi!\Y);f7a?lkTW6LRgE0u$>/Po0<31=AGL$#eJAG)pT85.d:S.:m#eoEmliFpt[H&-"]W)=%hb*GU7a`\A6\3?,la>V/_Whlrba4I\:]jI9JC)-dLi:Gs7IZl>P:I&'CJ*hUT!!!"LIgWD"J22BKads>Y3q/lp=.K<k!!#89!6YBk^nh,taO(0'5(feb*rl9@!)P%njT+LX*'=<'!!!"k%Tj2@z$ijB>z!"8j0%KHJ/!!!E-=:P<2!!!!-!*B^2z$ijB>z!"8j0%KHJ/!!!E-=:P<2!!!!-!*B^2z$ijB>z!";,p/]XDDGJJ5!zTI7.U*4Nb)z!2)9tYlXn*!!%NMW-p2:m9<sYz!76p5>E27Y)uos=!!)6--O_)V"NpfG!!!"LT%)J7gq!r\!rr<$!!%HCS0uEZ5$nn8jtuF(N_ob'E;#h++g*5GJ_3c0b7T@S!WW3#JBrl%>7R363UlU8djp0]nac0gF*;BTHGnNn/:NSrIms!]VO2Y]Od[T8`IaVTTe'.rb>BWJ%>?M)p=c)J7]nPB8sK`1aLUlZW6X8FG0W9Wa)/JYYO'UMWOPPjdl3Q[]Tb%5.cH.eX)"jL!!!#o:JcD]&ZOT,L^PH)\s[fg\<+uN#V4>!NbcEelZ5+j`drk`&!]7GWetGI>)"'p;#OhF,/:M$*3-If.QU@a;:;FfFuA-ek(l%$:FunGo^TD"0V#%*U]kj[ETCA3,O;QScO.f&A%2-<2K-2c[T'=W(!UcT9C=@XOm9lZDAr+E:\E`U/j1iuDa/YJ&UDo&4TPN_!1tq;17!Q6A#)!E\NI#g&pGhbedWJ%+m,!"3Q1"s2ck2[AT^&.QfT'"X,l@=eJTmh=ek=uZu^'q]\Cum`iA^EF&C[qA#N9j(OnCWC4pl7N%5\V?fBdQM`mH9UV[Cq:MQjCQ:(T/=>*SnW@V6!f9hnN.\"gel$6Q^XB-kqY7bO4!!!#oO&7Q?3S4prbq[s-&S*Si_gT*AfFha<">1kT59[oWpX-I0R/T;r<Y@E5UR-,--\l,tqG06Ikhu4O<oh!2q_A>"iVC2g(mU3$-tj9ZTLr2UGfRa_c!22FYd\`a*kgfU^4=FiZ5h/Rc^eDt^u#0&Qo8bFmD/$CZ/.OBMDSom._PYndB+A@g,hCMg:<!_4IF(+2==]hZarXOC-9W!#N]E"r:/dR+Bu-&!F(^5\dRqD)V[9N9lPVQ"8=FS:8RQ$dd__B_Sj+CL0%W&V,]Jm_F9l>Jsf^C>!NmR4PgN7lmG3Dg_JqFbQin>;4j+PaXma[WeW=+B.A46lDY?$+\J^hG3b?LaQk=f$;:[)!5O)AH5XmLauS25!^dn:hu9E:l+%lPQTeR!"@F-QNa`C<4Le2M\7$d1nE2&P']\2Y8$b;r:VBaN&EC:!m)aX!%&GK[nVJ4"c5/i0*mCVu#Xq_f&nW0jZSZC(l<ti3:`?gG"cMXD"4b[m=UqN1n<bfZinl-@h)<o:M$<qMVG]:9CXlRa.6BidQBk!BX,YHY6:(-o7@l'jDYql'OWWjMj'lHbh`ZopM<,if`f43]KqT.&JJVZ2l0't`9Qm7/^lDUNe>1WuaZOPXkP>I"%!A"bY>e`dN4KJV-*6W)&>-@`9p'g%q0].HL:5m+_Sao%aXma[b(ki=R>RT&H7B&3V3FTsEbNX3qg01,!<<,hhkH\X4Qg@KSa"250T=PXpUn0MEtgosqd`_P%-qpVMenHQLgCqJmL*q;g3O\Q\+"u*!s?9ObEfLr#Z?*X`6brgjWG*0B"]9"V0-,6?EWj2)YZ@[bpS,]05:I!q7C*.aJ>'^5[40aVLnSritZRk2oD#V-U4U93P*N3Im0Uk<6MEO09+XCIE%ks$F4\EmnBt+*%0R)4M.Z_/0.M1[2_RccMk.5;ee;qadZKg*QEis$],4lI"1O(Ca#'=<0I/9qAi)6a[Lcl%4H][`K#cNgJdoWRI#q4)!X0NBpmbcW*9`UPnSo;R>RT&H7B%p:8MP_[,n^b=U!"s!WW5q:Jl'!=<SaP1Eq$:n)@$ZF3L`AZ5\&jBuBf7EV>dq^l&@?]].V=i.6ZX[K^5DnBQ5G\1`[U*AHnrOYl8/;L]!`C:>2Lb6(Em\+rgq!=pPg8qRsl3NP_V09I5FPdRt@'5R+ofp&-s-]6>pC2adW/@^aR\6p(>Y*Nb1*9;>WL#pD/hk#Zr4'!ij<r*E9i]66"_b]lK@R]L_B%jKo)t7gH4_Zq5al_:GPCE(8U2KRF>E4J;.3"p].XGFdW=VHXQ+H)(P1RQ`Q!cTP!!*!seGF%;pc6r-KijuVq[(k#<WXqg1ro`>Qun*^rbP/q!QT41;g5TW@dWocnMu_q",:+&QTaKs[N(HtfR3X5[JgfhiM0$(?G"Ku.lu("C2actbaU]VO6kE!>A..=IN9@_(hU1_*9=>cLYKNMU;jUNKWVf`;4q"_e_&R&N9jZ'YE0O%o(g_2(ts"7FWE!Waj(C0;UP)6:PBq6WAJb!BZpiF<WE+"rbL#AjhSDEER3b&(cXa&CF]hb=;kC=*EN*s89Yj#CrMTnbM)YOPU-n4;i'hBOFtXckI0Z*/4Ui6bApRI>j>sR\^#V.VY7BuYN8U2R6oB%Q<dYCS>JbF6/PtojGH@"d\uC_R!J@jj1a#`#W$Y5;:9uQ77'c?Q2chYL1.M80BR'=:/RZm88$fLmMKF5Q""^poo[gm`SeqH&[<7/O6.JOBnYc>MOp/\.`?^j;C_@uUK[5GJDm7'!!*$RlGIZ3PPuA3)8&+4p@+"'TBOS=g?a,=mEQNFmg@(=[``9ln+0U-BeT\3>6:4iTkihumC>0.06[uMQ:$bH3Ilqjmn&kRd.:SHoYSsUP*)YA5/Ko`f86)b6`3]0m!/']dsBB$<$$0Yp=5k&$Ho-?NHghO>LEX1)]0_=RSb+`US2N!W$j<Hg$GKP^'%n_bb?H.k#<Q*cHV5rSQi'V'!'c;.WOmMDG3a\Lf!np=]<OjpdP$m=EVeQUcQrA=O0t=][Tk_N<iTXV.M`pj])_D!rr>Z5=U''%T1O1?D^i"8S>!4T>JJBX+S[aLE&nGaheTREJ#?f=kIrSRjKj,JiE^F_8In,K=ASVM<RmL.>E0In<+,ZGi?3I-E()"U%bjc/Bg3nAr`:'>&rVB;HcuJWAT=>Xc0)'V&g.)_Ft3)0+cM^L\nrUEom!+'qGO&<mc#hAgbkc&S?XKNk1H._F9/U^C9ck@5'b1Qe3I(D,kgXph2b5HLTnC8mG=.]5<Xr)2$n^Lt'4g3nN2^mA:\r,/VHtm-.s?4Q/c7#j:"@db]fA1@9YD)(W@$/%q=K`SaCC["YrGDU*(<Z5pIDFfD#jIWq0=8^OJNV$0HOWCgj%[-6(W4]<fkV3Yk=XAYnc?7shW'p4jF&cr%5!<6BjB.SflpZf=%XW#nS\p=2KqR.EQo$hFbrK*:aA:Hd'Hp_L4hN24SS,\iulg_0'^0ttR3sL=Bn%ug#YUqN=@_DX707uEE^hqIYA46pWSK_Z1gG>[)'-!0eYjD>&=;?t9/%N-b7hZZ'Nn(N:7WQqY`,[OCqf[%`(FXE6kgHGr*Uhgh)=8B1S(kP5mkOjlb:@(=0GLc0:,R-,crMI6^::Cg6PBZ9mbehgikkA"?5Uhh%@VZ,]fc8K_HtKW)g_;UH@'l6lF4g`k`La89Dhm=Xk16c?^F-EH[ahEhB=JH'k5t*?0JN#dBXf>,,=U][e6l6EU[X+i^^u'&@GL)Hg$l45gM'/js<o+(gr9O6m2O1!:V))^4q^.@Za2P+JKFJmR`FLO=kaNr<qljP(Uh&V+A@"m"gS]qapOV-'Y7,'!!A.9;cNJ3%d9&\K`a*+4n03]MS/%Oq2Ys,$D'Pl9IcG]g>+Zqb^QDhhtK-n9Lo5!!!#u1Xu;\'`\46!!!#')uos=!!!i=YT*WC!!!!9!3dFCz(]^c[z!#P^?)uos=!!!i9YT*WC!!!!9!3dFCz(]^c[z!#P^?)uos=!!!i9YT*WC!!!!9!3dFCz(]^c[z!#P^?)uos=!!!i9YT*WC!!!!9!3dFCz(]^c[z!#P^?)uos=!!!i9YT*WC!!!!9!3dFCz(]^c[z!#P^?)uos=!!!jdHE\B6na4:Y^!'VQ-I]mpUj#pCmr#sm*Cha^4.[\J[/W>p?Cl7b`R$ML*Zf4ENf@8(>^%cXs*:%]6-b`;7WnEJ[WD0,3c=!6I%`m(+?OtI[S86N`-NF8zl@jOujhSj0_XQO8(o-3$[p5Ut,UuUFdERX339k=_5-_6LfqOd@a$.jn<WD41&Jmo1FYiQXE?Ul'&6>U!*9W-Hp,SZkc(d`geqZAVd#pHuI#Y5FG!%9'09"`<e(VJ%g=T<.Cm-eiV/;DgWZPSe[;D)'!WW3#JGQ"S3``adB/d]S<nlO%W-ng;GI5@Dl]F+u`4G!7\3/g6lAhaC:.Jh,>lC/'JTG=s2<MG3Y"YRg,&U,i5oX8m`2=O8=C:V5)14Epb7sPO)-8F7NfS7R/bWT+NX@Eb5#Iddc$n$J8L9YHkc<Dq8Q,Wi!!#9t;1FmAN[rq+]\V@pM;!uNA=(?>mHnf0@PXLOg`tgjpuA1g_%(!'9Zpe+/&d5*#M?=9#(eN_i[_@n/W&0DqQ#!B8W"1J^,e6S=$U7cH[DY;6%`3E8uj'i&nW/VeB4(:RbOq5M"O+:?#<[p>H`K?>gF.`8S(C#2TKXS7*%\H/f'9lpJH#u<<JYaW:8[+0AAC.FDBmrkiCEFetF@lk+.F&d0`DM<A#DV6r\,DbP86VmFo$cf#Y2PSC?_5'ii2SBOtW&EFV+4V6rVenO,$?b\m>q[T"XOq?SUq@d'($Ypb[e1uYUg:!0FHo3p?28Q(-&zl466a%WV=!e'gE5P7Hp=9#WbB(?YVP_[*ZBFI-fA+@84MDM8m]#&GG,16.:&n`tQW[,]!(8qE)r!:&GQ;*4YG5AQS:N-"I1p]=4M?R)(DDUWJ>M9*BRT$2E!:_THE>GLd?"e:q667nR"?X6`[L_o.mm;IQL%>SkO;P;f/Td`Jtns5S2=K@G-fmH*Ur<;U?j)4bBaH7P_"Od]K*KFIA._PQ!84TQiB<j%A!d<)1VC&Eo:$.;537gZ&A#Rl+H_i3CT9le%LPbl/IDqIhW-l>/"%-:1:#T*l;k&50e@J43'nWg@[RlVh/-c.T!)S0pYN90E2JLaLOX63J0n#r?:G.t<\[':0D(l3ojWG#NTC&&pLg3s!J$\!mM:28Me@snT>4'3_l?4kF:E9Gu^#%\nA;0AC-Tuu&jd/4@FoGS@m#Mrilu.c,/:CR%2HYO&H$6&,'>lM)PMYp)55`2tCf/Z3Qc<j25%@At"drk7jB-cQERGkaIeB6H"dFD1(Jp4+\HUGjCj<[UW4g@Jf.P)Z;X$Rqa\S\hER]:nara;s,/%21?S'[7d2t_]k<1CI]h`MQg6JgXP=d;-dCMo4$CWsT!!%QGUOFdbbH5]n!hk]WP]1H=-d/s]ec`!3U+C>d/_tI.lu14gC1'%o0(h*Ag_WH'@q=h`&QY9pVl!(JqF_qE%GL>Ii^^#kmn\,FCqmX)edtYt0fL=ta7M"0K^Z_#gOF\t:XT9=_*nq4&kG3,+&-gm/;@C]d;Ct?"dFC6.UY^#8j=LYcU$G1I[\:j.o^5ccLQ`h.>RCf2OT;loTMKQFdl0oLBl>+S`s<:.AoKDXd^T8^iBDT!!)\IJ];`gU7?iZ9[%hDeRB`*IA5g7AaTk:@_Nco.V(8sqe3PK`p@u2logJ5Nja9jUr,-iAceIL)D)1?9e7'"1EokA0kI"Q'5ruG1R_PO0D!c?KqnP;kg?Hg^b7`-A2)5BBfW246/K:^`j`5tHjA-.hn$milJkQOnD`'p@&VE*p^67GWI2Fe.>A%EIES[QD#,k`lR(^m#guW*-:o\k)uos=5lG+6b<\PqHP7DRe:2NP&U'u_=kYT---Y#tVIlqMQi!7[mYbStjfKN37b_;\'CW.?Q=F9623n@-B#Hk4-p&^":]7[)JpAo,,s,MaE\*-;e'uGeke$/KjJ:\]LYoULk1*[r4&X7q>ehh(W2brCI-#jQRUMTNaG]jT-B!]ONqY@smD"OC<`TsuqFGDG@drJGObh_%2sHpB9e*+Ro-)gG8Q(-"zl48MM%X.UI;iKDiA=cV&<>i9A$"c*bEj6n2Pt0)4Lrm\X#a.+O0[\fAo'QSPDtjY)HnhDaLU*bZ6L].k+;8P"lQ&d&\)lNqr@cMQG^HGa+.dsEKRpPaoq!/_TUI)YISFmhZR/]#&AX;CA>udQl@K`SP^K8C:m;d1D"^_8?NMr@Al04RF/m%Wk@V]JcE1'L;/u#d*laS[<MK'[ZDO#^n;H@h=)&E.o:r`g.]KL=KPT<f9a(Ls!!)[]I9@'RQ/U:NbJ?j-hp2pV(j.<t*+=C7Ko`[[C^(nRXi*XSZ.fJ.R5#QHM^5D?Gi?3I-E()"U%bkfX8\)4pV\1ib^3)Q%M@iKl),jb_ApUOIj@Np<`R'hCdRSMTIbj1l#i6?MK04$1;t/+3^_.h'c,Y5*FrV<j@C1bP6Q$`M(fUmG1<@9&M>PZZt42t'*b5lIYk+&Q_u6>3kn:`JD@&Dh(@>uH;Q.9C*dFe%kHfL2[J`g\bW)8&^+b>"4\8>7-6qIAiF5Q%c$fi<)=LJ43Y\iBN;F8M1XODJ_FelUloJ8Cq6uKZ;^f(!!#i&eB`a09>[-eUC7962%/XhegIP#p\$1#N*,WEWtJRfk@^<S+6$nK1pV:BhKQrLX%Smi-u'hdo`Xg[0.r1=19d`<`jG:"^++jWdtk&Q;^LS=3]&A:\$8TDL5hW)p0E&$WD#^iO5rOF#<Pc*A=u[<^:d2mFt/pNJXSJ=Z0RBI,D%$gI*M.'=,-u$^+BBfg(.D51-r'=/]Z#CLSqP$Z*\Opp[:!>oZQ`$2Pf8nf1ImCP8+X-04<K11\5s>]=9^+#k7NSo[U,U$V9;UnSF%8bII5VQWsun+6R4*><8RnVj"f8ZOS52hT/]U]"iUUB,>@<Uln>)AjjZ?!<<*"TRNiC"j]V($5!`PddH18#3dc$=rl)tOYlRLe'#JPn4aWmcUE"n`HUsLa`l1-;i<i9*+^$7RGlTo[EI#r5fqmR>+t>d/s.bV,a#+<:RuD*!!!"LH2ueI$NL/,!.Y(Mb5hSC!!%NM!6YBC!!!"L!<C:DzJ,oYn!<<*"!.Y(Mb5hSC!!%NM!6YBC!!!"L!<C:DzJ,oYn!<<*"!.Y(Mb5hSC!!%NM!6YBC!!!"L!<C:DzJ,oYn!<<*"!.Y*K[H4oH$S2M_zq?!c=z!#P^?)uos=!!!i9YT*WC!!!!9J6H0;4*MmbEW?(>!!&Z>d)l@h!!!"L!N<!ZaNDX,b5hSCn/h_Pb=YG!oC>*+AA_cFr8iFP.kB`Z#@f/a%KHJ/5V"g#<07.F`Ufj[%fH%dcg^\nIlk+<EqmHLB@0M3MZ'I!Y+_i&jgYtL$S2M_!5Q@=ZI70&0B2]ng&:>EMFqO^C55V6I/bhlcTcl>Ie'G=Pk.\o0dtDk!<<*"BHob1_i[:khP[5MOUW?sSWT&+G51!&fi]3moGKP8okc]]MMos4hWt.cC7`K+eQWW$#q._pT\T#N(DSC`I/ct?0-fl_B<#4#>#8P7I)sFdZ0bU:$N/?rqVR$(+<W-lrI)gQI>/2'I9R3@2LG,>jV?Z)?G:6<`kPNsQX5RU(C9fa"JX]ChhJYI=A5U@P^=CTrp;+cG6]Gt3t^_E6/,:^TAKPKb4SX2f=7L"7sPPa;QfUe(B-nJV`lZ8h:8eo:&*sq:=ouco'_kq;#_au&^#eoJP:@7R;^fkU'q10TDY@p"uuufru;\c7j\Z"p0RO9_F`i$iKlB9Q7F>?7TY%V7OJuTWJ,BP3k$7Getqs+QS-d]>e/.$M)ptRYL1leeG1IA-S3;V^]$p^mDV=r6WEFLe@2hI0E4hIGKZ-BIc^;sb">=7eN(+Or.c$1pjC%t*u><*NeXi9qal!I')m]/,4:@2Hn[DH=3]]"OE9N=;4YCkm@8U9Nn\e;?haNqF&GaUbe(QsVh:,tbc&tT%fP'/a14ck0BsY;lJ0b2e[8PXM8.ijX4KDa?ako5p!*EY90WgmEcZ!RlIO&,-hNlK;$A.LdQ^0Gc%63q3>"Z$U_BQj#Ve2G[G@%lf6)2pJQedQgCBJ`'gr1(KKg+>a5]>0RKdXB?G`/ng;72cbl!2$*LGGT.s*9hC_@meLN:8rW@6(Seua,<j*ta>,B/Q$Y7AhEg"b-&h6hf(kNN58W`Mr#&iu8Xf=>.39s,8&b1W-!R"u[;CL?\t!<=Z@r;i4Z4tHs/itCYtF@>I\^D.EH7?4dp*,6>i#XhgFZt3\b_k4FaEh54%'t3FR$'5$oHV[:ueuPF.lB(\l-n"FpY>6e9f#5bXMSX8'r_O][nQ@:'-*6cPU>ANb'T6p=p5'CTQtal2dr[I%I%p0Ml)#t4hssiM,HS`"o/X`P^G>WZ*bLdBT-IK"6MIB+YB^\A.bA5l7+oV8HT*Zj0\ZG2XlUZHX**Sqm%>?t8EH/F$/D=sD1T=kk*OqQ2B4kKEFRhRY5Veo4MF#%M)n^<IX?2(P\:!P>-$cC-#N*gc>'oT0jBV.heim8?m/$(BYP<.b&q&C)X:S)]V\bg<oq;5HT22Th=^Lk)1O5PC#ZDaH)8qqL:8-kB1!P=mn:V(bO?SU/B@d3b9>0fha)>Y'7W!mb7sPO)-9QsXQ&#JM`mH9UV[DH5Iu:rap%6WFgnVj4muY*[al;lq,n3pb006JFMRf4,ZIT1A7$?lJXQ/DTVKX=CcN3P<OW7krt0#%kj,is8ujXU:KsohW\LU:O=Jk"3Q-U`P?SRoBmChYIU8=-SF]ee/V+io3$&i/4CHA+/;ZB0-!d1P>KrDaS`LDqs/F6oM=XIO0LHc&I*AEN$<$Un(r%Yr;JeW5jgqX]]!EA[Q/`sI%2a,o=RcRlqIjNFjY'V_%s#i:dX`P<cZTTBAkrW'p1;XJ?5V\82PEH=8duK+l-@(j>qFF;=7PCd/8"'T+,)R73XOuc2[p>=Y90"/IXcj)"%N"_.CHV/H<_fMV"fsYlK$c0d&^TXUm0CVIi2WS5#]WJk.K@@9fJ]![aoV>XbNphRA79K$F6k:ki_DN_IT+GG*r3VW]$fQ7XjmJ'>9>Z]CEA`dX]BP5/IZ5(j`#Lld,;];,0$F$i'jd=IAW*0SVG=R,u[j\Qd*'g6IRh;kHNl=%Y(YcIKbnR*D"&-1u.9C0p(<RG_NTQW#NM7@-61j+`uo4HRC_Dp(Eqn)EH'9t@Hk0jV=JbCQ!D?IZ:@:X>VN%`Acd3Q.Gt4d.obFgO!7EbR7Am>W)SGS=Up?Im<S%RUdPQZeQNXDFXXE!oRPFR$Fr9;Gca%@("53L#f4]Cg`P4A2B\mDPVtBk]*5o8e+9&DQ`!b%dgO;_<bGar(VncF#,LY&i;CN>I?\F7`f39(hB:T<fLq"8CW4<q,HUAuSUA3NRuWMN3aI&Uc=lb^h?%]/gVf_rodt+8?a1d0$TmT;CW\jW*Z+c#T:o-EXqdnDVNU/>M-q'.^%,o&"6j11E9Sg(p+Oma[<!6Q.WbLT2NqnIjFJ0N"IMYIN#Q=QT.N*Z3UOX7ei?FeV"qE1]p*/k;/:-^\U%bFrjF?iP81:?D%>U`sEE46AN]C8%fh#BaH8oMV:Q/tQD4g2dq4'9CIWl/4Z!88<j]HER_"+]U`!I&8g`K=Ba7?S,G47qKQW:4WeJMRdX`"u$Kq3CGktqNrCb^:osZ&@!=Z#f*[;T9CSuoA=?m6kG+s4!18/,i769aB@iud>F:p/c/m+dB04Ab,_igU?k7\kfOKl6@%PpJ%>.)^C>202@,Kc23lhFin%/CLM,1ljj6YGE]R@d>*UUh(L@qln$>'+YI[#/3=*#Z*UpDVVNfZHVt4S/(/gH.9g"d=E&Nr7L?q+t?/HDlSBO\JI/C+YRU%AuZQe_Xo"NB9R1/],_4uLjZ7gm<*/2=cb)?_OL'5-CY_XKj2=U)7h78b*!V(U.[:/4iQAD2>Bk5Kjp?TI0oEf2%Ch)0Wm5"'ikX*!1\a93Xjg`W6rVdjH3LltHI4sEPP!i,oIst<!YpXF)KI5Q2Rm2mGft`i:_mFT*s7P8`Q0O-%"t[gXBK:;DCOMUagKj9I4/_kkiN=`UFme9F@U$f-,*&AaISZ0_<5fr>KGn8-%H4Mg_%\7*%GL>IG5()GOgeiPGu)Vj"d1oD^=itj7-/FtC,pP/HImF[[E;)2\]4s.g\(G:k=CUoYoL0_=u9iE(L.s1R!?J:XFd?f]ocW(Dp"nB7&E(6<2E<7VPFM`VHfnX&>oERgOJeE+u.A=qT7V;Q@lbPOLDnsQ0026PW,$I9b*hlS0l\P&".J/C=*[n8oK`3Z=rUPd,*Qr\tNL*YI?s_kiu3J'?`]?6KuWS1D#uFBCd#b2!#ehF[`\H_@.ds@J\;U0sR3t'B]Qo>4l+pG@F_JFoFsuK,:^sH&T'">cl05L^QuP[Imi">0V':U#dDsae\%8n-lIM<uA9GY;PVB_t,Wm;d&Go*sD96B)g]^`9?f.qD>Hc+B$D!9g8KmqS+5K?6gi3]Q\HhB+)Z@qj::HkXCg`XW.CfI[-mZ6I!bYchugLm$jde\,Q0BO(I#=J>U+h2jT(U6$Xi)1(ij"2i<I/%_"=dRs"ANS$_gs0CGJ4@s:<f=:TKQ+'9$Hjo-T/K,G1[Or!la#?.0IXP4&%njDsChF<mer$O8W5l;*Lc^lP780gN+D5UMHnoj@X^KrJsqf3bonqkNN(t<Sj>l+(R=!5^J516j\pf!TnC9EpbYT1'^>-qgoMhHIQ`e-F<]NIqOT%i.%eEcU$R<$E"!0,-4_ZQ^W2-:>chUsUaK+Ff@dD]LZUZ>lK6M\)djN>5\`YdN,'bK%6SaAio?hd<t>l0Hp;/sIZj?c26W''+ck'f3:_e85o;B=3O^iHY4&T30&I'PmZ<F1&:'Lh6.[Ee[->T7@.+AP;44j<$J_P5(8[:^Y+@kZrqlgW;bMcuA^S^ge%%<:7pT%8?0hP`Mr3jfr&;^73s)_7)["<a!TXqhD'Xpd0XR]Ug@/j31ZaT7\_bFqU@lF&rij+T4`:JnS@loPmJRI0^DaX*08T'M9ApbbK'o'<Y&.UtKCSs0kIQ@j-L9:M"`9'PH:^U5t?RW,)g+KPTO3BfgR+UPObQApNl"C![@@GZ!:.M!>-lu'_ZHt<Boa^KZ\=u/$i5@47+iZ@Kn2SML-V"4?0VSl2UlW[]o=UmcD&;#;(E]Jl]*28DJT3g\YE:1oo>oSRs'Z7)&&W';m*4<C^FGdrSjY=]mJi+h:-eF,o8J%"7GLWd#(4i:(eLUr3EdMDVDSNiM>ig^G*0R?+_(9H"=IBfE47+ABO"bu0WI/3=>^>$umINMTLpH_t?t'lrDJG`S>8NSmndF!L4C`Rc"JI>q^V-IUj]$R4)L>.:%[2=+LnMuKkDQ?;r[F.cW,o)`ds()X>_+<tE2]VJ+q5QLjl#b+>].+'^Tu?P_$C[\j)$74b7A64@#3F7fFmabcACs_V#?p"jg(ulf>lSh^-B:^I(@N=YoS09?^?eEoNMlYof2Por5_VBh__02X(I@X/Bpj_9i(sIl?b.Eh!N"i0G_"D_(=7?3NkC;X&&O[lmCN1<th)G3Q2kUQlK8-qYff<p6a*Thet`(pe^f'oct]a9Y*eY8b(gEN<uYn1V&a6I!CShJf$Fa5B+bhgJ0q)BBuKKfcO=Vcd6\D:Y`lEPl&<FCd-*.MQ!aVFLEP1o2tRb>^CYoRgo?8_]S.%NDTMU,%ZBO3S-c)@hs\MCS*gg-d'>/a<rI(A(XhBMk=>='%M8o^@q/jFtm4%[Au[VjG-oE/_.qZ$Vkib:nt`@MmSL]XFjO`RIW-0;in;*flO2n\Z4c,o?VkoLDcL`=Ai7gOH4/ceBH@hA\a-b/^ip]Q,=;W?P98FN^hEaSh-t"@bN-->d%_<b&39H_iS83_b'0kQ%SjcC/eMeXuc`Z.o6)j8$d55`\,D']p!>rFDM*IcHn&SDH]'-.5*`WYB!&D1A?!t$.tcLYpW1V3I'ZIA_R0i:4tAOH_L5?2"_BrL:#\.L-pF651,@H[+Y,\<49]bnDRE(mtMV^0@i!N*2c3eb7\hnp9Z%r7rDITnWW(KW(EIsG@/!))uo&;b1#8%+DCLJ\`@Y=PiXld=XH:>aij@kM##te\N4k*r]]0c/]X[A"fgJ;+tSN07()K[S(*UcAfMtQPgu^g4RuubdJLssGH[Su]X&Q3Y_&1us&`<]'!NAK@6%A9\%#]?U,U#!="RdZ/,\oNf*>^-:4K(=5HIjQcZ?utqOEeQ0SPi]N3Lmga=kh%d_coc2fhq^?e,pt*e(@Zqic5p-msI:T;l-cN@`*t.t=[FSJQ'CNcSQFl/DT[Y(SQm[$92*9KK!0U&,LgP94O^[A`Lr)8CI<`![YuG-iHR\6@7Vho1lHC?;D%EbQ)I.F1tS<&3P=&j\;7l5_CbLh9_u$1%OD[.V^DY!Aq6RZM&_WXA,$C(\V=QDIKf*7WMjG5bF(nu%.]UV:AOb/p\Q9An*FHmU%C^,Toj+75J`m=`)4k-F9I>\toDA]mC<6FA5&T%ssO.5/4uN`X^I\:pos[:U9MP.<WRQ,@@d/aX3R,g(7:/K3oEDE7Kq[4?a,XLqZIE`iFkG'C60\`KrJ?Bm".jl#YY91q;!s7.6DO8DE&pUr/EIDa>m5M?=H)'/6uqO%(;@6(CnSOd6`FsqUBa9/[aHm,CEkNkGA[*?%4@VN^GWtV!7/G)n"VrZ*@X\l,2Qa8[l2M]qLGB6pi_K)0j-?mYD0[L5Do33tSVW#FX;)X6JfQ.oM*BGKr+)Xh#/]Z+sWo)_/MR4@<hb,o-,iRh@SD09ZfRJ0$;d-+t679Bu?'98UVCSFhoXjqL-iqLg+-tqj7/.9CQK_KWqWa?hMM7_&$pPdD2'QqCB0T;'<)MM?@CDP/f_UDWS>(VB7u%lkR1`gs"^YO5>(7m"eag<oq-mdkUKpO-Burd!(IkH$>o+=5Rb`p64)j*C;F,$pmP#TDTN0CNetArTjW@5.q./SbGct.o0i<kFQO<Di*!WJ8JuB^DP`#nnVDYbs2h00D;l<2^*o&a#dis&"H_$J_;j:5$eP!Fa=/p=A*UJU@eh$hif<P]%--UkC+iGA.ro2j_*A'.@U:fsj6@,3sq<=>+jXVDed]\tUZ'Do'Ko5'tmc5A,<u&<<VUI!U7"Eakq"FB]=4C7m%7Lk=6FgVPDZ9GD<etneoiGM`()OWE3j`ka`,J:4"98%T!=0URr'!tI@DTkK9;]*`OiE&p'cD8QOUr2<r]?kGGp;+ckZu(G0P9h:6sU6uqC#EK2Oor!GH<<#q8]g/l,jO^+!=XVYdV)IH"#4J7:-:7<)/_YiYY1ml-(Zg!hB.67lM+"CO*"Aj[UW>=+7o[7Wg=b:0fGt.49V=&%Ck$:*E<eg<-G'eepCZb>DDF6,n??ImpPbL70;uD.dZLFoD<W>Nb`3ki%&dXk(K+89W&s/I,bHhLEf7LN,'#G>7Wo&[/$.q8B/C#E(\^p4IP.jK^e".HfjuRA#;q317bJjBNm6K_r+iY<EZ,$PH4[$8=aW[+gEgnppO3LaN5HT%i\J:4;jh1V]<p.88CAh%[-X0PgEZ#I,pkmXu\90^['FGOj86k)u%JZN%'HGOO@OrB5Q%^+bn\*7k(Q^;'^;75f.)EYDn>E::K<d802d3.Gbj:Z$heP@U/2I3u@h__-3-gRJG:Na6uKQh^FQS\Mo3B,ZR'SlDel`eZj`*-H-ZGW[$eRjB-DFSl_4LrD-U0$:je2q6<DC(`Gp%%S@:6&=R\Z8[9ZlfI;=`ag"@HA6lq+JDd2fS3J?4$C?6Q\2i&;mXi)kMP'ch@N%O]:^mj'3,;7iOk+j98BnKFL$+.emZMN)nEQ7qWgOp<?3J(j^)%CUeg_cNYmC2[$b"9?6arYd5pX%/sLi"=6WlN4Vh=t/#PmnMV,lh(s5*@9F?Xi"_dXCVP(YfpQuao];oN0Sn-qD(M&7"0J(;qf%S-t_Q$J6_;CeSjQIS@;MWkLO6-nY.JL2.X8Y/XjLj1=<B"9#8S>J[X!*s>C0d3a:el\PCB%tiF3`%sdY($uZ"#ZU2WkEe[1N2k*hV3)a3f^!#Z`#&^-.k%Q-&$^T:+TMWK!$sSO^/CQ]gg^+Rde1JYRE:.JX:_o_G)^41\RXF+d5X]Xpo<rCN^N2*,KGr5.f<DAXR!:B!SFQ$8jCR&2u?Y.X(P$RthJbE]-[H"G.G)-r^l=BaE:C,'DH[;;CtD/-49Q`+u9nuf;PX4OmOjec"Je!4_<E.YQg"&.HcH`O7\6t//+._+i.@\&"&=],(YLA<d6-EIBgU4H+lWS8WS(!*h\*UCj76h[$U2lMFg$,X(Bm_/D^S,E;%n%RhW-kcfFDg"#^K$j`F,tJV65emACR\G>*hH<T6c['a<_02a5$%f>q]i4B!6pO/:*/YK-Wg!L@84a(55S?C+@CGouans;Je-uJ1#K>Tp1OkMBS_9Fe#NhA@fd1f[n`DiA#'Off\,N@D3Y*5'k&YspjOc'P.c)o[mmB.c=)8=LT&+>*j4"!MJQ:t/6!e*)"$*\WpM1H@XR+W(2BEDgWeE[^I.W:;D&SjMj=];uhH,])^8\X=WYTu'9Cln"I@TucqH[Ice>1f"JL+V"_(II#\?!K+WD2*;1\?]aF4T``8![;`n_JNsGAhc4q'IE<CXMa7:OTOVpm5;AQ/q]tr9*a-Y/Ln^CKc,+C6[UjhIn0ZI,oH<Y;0Uq7;J$t'Arg??1Z-PQQ7j5NksEkP;O-eWd]f5G-Kl6Ik>GBH+DIkn`sM&i2DMZLY"&"o!Oj*h\XD^mt9H(>0)OYOW;,jj8]2X8jnl\lh)5W:f<3c`se(M(XLl>X+d'W'?NO\!!(/0PJcF(QPAnl`O,TWMaVTuT3J@MS7iSX6#lr*b)#,'m?O#rpD"G3hoBgqVgV";]fM#2+?9E%;>Z:F:7jQnHh4+_qhgc$ifpbqHfg:O]5kA&mrqk`Ook\\'=Z/qG'2r3\),o'SQ3%@DpdE.VHQcB`JZbLS]Rp6Xk^[0n*tj^V'7o"!&YAgc6"Ik06WBE9mcWB="!r^dS!9ASA`T1F2mi0R4IlPk5O4\UEg'Ei8EBCB0lOb?+J^1[r5iXrNn)!qu2"jIu!ntOok[a83h1q!!!<r%KHJO!Qb?B!$i[I!!%NP,R4;LOFZBl!!!Xn)uot(!g3Wc!(]@q!!!!*8.GV"+9BRb!!"8e3<0&0"=+3P!0D`l!!!!3O;n6#5_:4UNl?oI%KHKJW&Vp#!!":+SK*Aog"?;gaiQGFZeN3:lA6;7?iO*OqCSk<ZR:-jMIta.pM$NbTD65n\9bQ,gc&'$d#P(aAMb(h[]S_ngB*Wuf<G;78>n,X=>n`qSugX^p=m;Ur,2A_qg-i&?i*(d`.'E?i-7?SjB/dbL?*;*^7e,hA6Zt&*BLWIR4@ng[^=LFG&5dCNqh'`s5*/SL\AAF+PGK0Q=Yns1qkgX[8Z?"Srk*W:4%Q/RI5BYj2"a9.QNOd#"iFiRWn]p3[rYJPH#m`H!dLhk.m4M8&A[tdEYO92\0nOC1V<ccee!sf:Drlm(.G!dQR'2P-+F^Q6gu=I;?L_'`6gVqU'UB]N]ttLH8Ws\$p8:k]"9!j^lFt@]&'>h_jRX)V;HB\A7]c,)VE+.KI8fe.F(Kd\SfIL\%PYBjJdXkQlo#a5W5@Q)&K!jon*15f#r8>4d&'gTMRa,r[Y[Rb#!D&\B6:i->7PBp8i"V7#"`qSHagG0SfHe+/Ro#"k`R^"M/+-olrf(^Yuo%*%;A3uc[jNgca1op1?fqQt&*2Oi`haDi^(&l1lk`oI^"Fi[p9eD?+6p.REqf#bD&\2<R(BE$;MI'WY*][DIk<u65<>O7""d%!D^VcR/H;k2lsU,i:EaH")n($C/f/pqcKbPW15^$MUCMY4XV$I+(LotpGm>k2?i:D\A/)]R=V8+UMmHh<$lFIn``RSd"(r4_@u;pMd"2'n"p$#-de$(a$2p;q(L.=*DV&DrP_F1QU.mOjJG8#(\^a3iuThqV2u1/[X3rW5*oEh?l>LO<]IeXp$sB+.V#3r%<Pbb#<I2PuJfnG5t<G3i9C!037QE@ls>BsE0E.j[^]*K_@:o3:@*o$m0sc0O"WBmp!:dl4n`k7$O'GY=)ek.1N+n)Qq2+Bn<E0E1e,N';[9ma/7f^B`ofWjq*;oQg2@>+6o*?'@3_YDmY$2c^lp4)]F4ZUb#ZcMu8?UQN(<q9&!L56a2E8QP/#oZYr*q5mRS2GE^KdaaK2`87StF2X99h#VR3f8XjJVc5kWY8cdTHhqlj2el`=h8;C)TcPgn!@.2Yc\7o0D-GWAg,a/"+hU$MHp#WEXJcnmWn:9T?0@,KV%m=]_qi,FH1tRjg:ZA&grZ$e^GbYQoZ$PBVY@dgNOAJch3dWa0^ZSI]!b1Gd\L%#Sg0j)FJmG5or`SADke$<H#0VZ57n2en&fu\VKRGAb:co:]Cp.Z1cOkeV>IC$c1TGSlR2_??`2?k2/(dVa&Ncgmu<iN-sPG4YH7a"++r==P&.2RnV.oC,BlUh\ZfS%kUba1mO:@Z&M!S8M'6Lh:USm@[Q=06B:h6*>2rHi0bR6pj3-ojrMOOmPAU!Io_EQMdsUJR):0qGrf&R[p*Yphqr+L^d``Ynci!*1`>/+*\iso.Wml1;0!%#89/S;ECa#)ao0Q4^G;cY"T$l>8pN4Yq<#ctE\Pr/t\9oj@Ro;M:rpnt!=;$M+p"t"fZVOq@LR*sL%g7([&e'6@G&9r>C%Q=uo1O9JMuCYl$#2s`$MIEJ`d\:V@tV\oq@@aB?2*Le&hF[r:(52$>)iri,Y-P4k)MoFRIR0k(Mq=?=n_-G9l3MBbLu$l:h5DEF*,!&c'W>8#n?QcCX\_X1Uk.A%QRRKBp[O`;GNnEar,M>iCm=1eM6t3honea+Co"WEMk,;YF?X0ePc=.S*<XKeFr(9-a#.DhK#G@NmXoP>sQ47=+b&(h=G`4Ygf'U]V`6nlE9UWX_`RM^DH?ah^ompgK`Rp2jQ\m9MTS&g)@#J]W&&4;OpT82kP<MG\=>,nW3A*c>MZeVdadCb:a<[X.>nDlj\n[n8R+N4!($)aW:^JZ_mXD/\1CooCk]I]3>4+_$uPhhE>e44"0NDpR:6dXm]MB+KXn3b_On%es?'6E.lI>H<9"Y_I?7)rmDSRFZ+@9b54qPF8M]kOSDE%oD[)@afTKN]@5dn=oRL8<a3R:=V]hSjS%bB0l]Wjc<D*].-[L.]6,>VbO$D77;#1e0kZ?EE\RCdSgh+T&[*h/g9KV+=0=U7AkfQN,WQd7GLad4kH<LLA,XH/pH?XL.'dQAmTi&[MdfC$qFO7h3#]AVdE#o/LV05qW-$D%)ns(PC@16bfiu?21m::DRGiF2JX2c=Ie?=F9l[nQ/b0CkLI^e^H:T\29-`jU+%qTqZ*@i<Tki-Df??&KiDR]'?b9;#Un#BL(gf@7on*`I;pQXXJeKYcNP>*%[F9f]nIW$L+)tC6k)'2TM<`0cj]JguG0+1[p/8?Fr28?>Xnu<-`AV,T^?D=YgKs<N=F3R3aJ#+?]%NP/q"aonGV4L6K$SlsWHR,]EjB$=1g]cAIN(.lg>hSNjGSZdU$0r&h%_g/P$h^s<-.=hD`,a%?U4L$-T.`-0J=9r*>kWB-TWh;fAp6"O-S#i#IJ-TW7HpCp4.FT[O6<^9l9i*fK:Jod%39cXYVA-&6VP394695^fnAGkNiLMS$g6L.u1lj2`+L8S]5U;7/"$Cn#+4\gQF4]Q7qA2Cj;sI;G+]<H,3&*(kKpFca"j(1jN0L0YEhJ[8`@uVj`YsorT+\4l_DUP,u?k+!!(nk76s,a"iF\aM=Zc\g1K9?J?OJ,MP3Fr1p.>UGCYf77PlejcU,^6b;F8rq"_#5_W?aL8-EF[#8aXR)N-AT%+\4en4=JqKBVk^:W?UC&O5alI;=Df!^X@Fc"0N&,*)NTTp/E[*nI3aVQ9Sl&Vq;7ognJlbDV\?iPCkjg,Z@J`*232(9cS.oaD'N$Lp&QZSj3^<sZ;^(-#]@'1(`D!(6N*Bttd*D:$?-m)*C[Z-9C:l`;[bs(^!aGbRr_.QqC3:SdoM4l]+JUPTr4lN.uhg$,Ee=LTC?acCT7\I^TCA!F.Xq:XXNpVU4&!e1EY5:8'E^7ft]8o\Np/:8/qp>&']A$eAA?go7ZAYG*m77*A^"#OP4jj*#kWWSAVe'MbNHp.U-/H&MA*sdng\orFl5<B5hT3QDX)&;P?:R^3UUfD(lMAM+cOr=-;X*P_,;_5W4n\6I1O=0!'>D/JRaaQ('K-a_lm0"3kkIIQnNt3DTDaK)3:%(g03@Gc:CkB&:n9PdVPK8Yj3\>/dn:EKqNs/.pl)@oY,SVC5'H3r4L0fADtn^bQhLA32IkBdX'WnEP`44<Ln2<ZbNld#r$o9Ka(Ib<PuI-XmYj>\kPJJP=Hn7V'h-uekh;WuoEMMp'_1o[5"k7hK'3$cRjhg4@WAUJnYI[,ld;-j<=3R?BAu^g`&FgDjn$YRX^l=!-+7OIanF&mne@qR*T,Ph:KlW9MqZ/%\=?*MJKd+#"a1(`^Y7(Zo=D,bpg=L%Z)QP+l1)T%%ZcLh+i_s70?V>`h#?iKjO9^eU*_=L&Ut1k/h2k[("#CFI_QJc!YsH6XM97MU\.?T]es&aiVD?Z`1lsM]g?a50U$!'aT:><Fo7Dtl-7Bkd@HG$n4m>[de1R!J+_kN2*sah^AR.8ou1h%enW;$-2U#/T/=,T\T(LBDIUF^G,:mFTqa_11>^N5't-]W$Y7o>c4eA2CR9?KHCJ'e61`<S<(r>9,En;X:"/HCOf>LXeiVbOkRkMobjo9(jUNLq%VZ$abLPgr7:hg(3#>h":MKU%Kap89pL[3ZV=VW"^3F[C=5MIoYmm.'@NIcq0Rn=1-108p:="u^Adk0>2mD[V]bKS`[rqtH95a'=ot5_8YncjT,oJTe.Cim9[&?H:Q)&`h]tQX+SfAVdm]-0d`b%fC4Nl#hBmBB%cESf5<[jR9>-FAZYu9VZ7B_GJEa*V..=[l&?OQ$kl/2$nKke"G0tlPX>Gt,kqgLZ[M&#p4n^D#P6(kDUmJ=-VY;&'(,F=^WV6>VT(e[<VQYpor=&d0$(c"9+hPm=rm<-Xr5Kp+kD.-4V-KF:P>V.S0nQ\k(jMXXqMq[E`$7Ajq2G^Eeb)$i5-a"[eN`E,\ebWI0nkZ?#H`#;_*2SedFpL0N^3K(W%Z8]u>-[t(r3Xl/9F&n)mj8HQG!EUe`jaN)SfGH$egp.0mH1[3oS5;"fhmbuSs(c"S!R/M%e7U`WTN^^8'nn&,;qtD9oRlXlG9^:<lo>0)e^9"(gM54^aPW,c_e&e]@O)'p<P?a[\Q.#el-aVA'srY7F!KES2&FccKLn%FEf!Nq.%*n9J=mgKA0_sTd3u%/SFm34bh8;'8k(Hs)^f3P!15A&IaB:`%M.OXmOlT/&-V>=kqtT`ECEs%fC7,9f`07+6'J@0RMe^#>L4>Q[`1>&dRRkO)J4_BA^;@g03bMrZH.B]7\DAI>PX@EKk57e;I>-eb/e4`34?L:TS5VIPEk4b<@R$9-7H<QAm1Vf1MSoU$&S".#RuWq1`Ck[W4er1XhlFmtuP3FmmAB:0kM>mSCJZ;0l*D^S3X#\bu$G"b3a\l>cVJJ.pUu-V(;"EZ@\lBLSOXG5qI%KaHo7KPSW:[@K<qA!NerdG74d#nBc+T$pZn7DZW5L#eV+3B;]Fps*VHs'S.j!e@C+3\<q+2g/0t=Ck<ucrIKETBNe55^Tf3C@1!;ifDo'KT53SqOA?iE]Dt3Q2"?>r!bJ9G\A,.C,</H/+5JmZ!B1<:D?08e'f<h.K-.\`&99Uou6>WV9^)B!jV&5hT/NXhN-LMpTf#7bb^&7`;M%m)#$;a6#Z3%`qJ`7X9i/Ig\GdT9_<a8eH2_u/:#cA*;J*DC9=:<2QJ8"0dZ^`f/,JNM%sfq1%AfFB&;E#^1ji"gA97NQILI=^G)n8?/I[UI+ks7<;kP"9Mml8)Ko,jf3b1fF%)_\Y`kjT6fhhBcK;C:U_SS)]0EeeCn@-F^"V,IlC$\>l7\NK^&Psuh>b`[rFi.']13(#K1G\")`I$]=M*cQqQ#o<r#:(3e^Y^YUXm1<p*!SpZ[9UP]me83!'%5'e)W1mHp$I8-)o(od8)uk/T9O%"&bAIL4(&R&hoaol1+_4J))@:'Pka=r%.QShUN.6TA9>>oe,bfEF@Oj"7%n\l'n]net]h`98`>7=k\mAgAK!]Ffb;;rti:2d'qT\<`(r<X*XW;n0<,Z`UUa1k/m82Y2E#+eYY9Zp4["CO&k%-(!UlZ*sYRID;&J6mgQu*Yktj^@X$p.F4X@Wk<BSa[7/uY,5Cd9f98FfGEpBnVcrJ?Vs=XBBfu;&2##1ZP[4mF>-h_j`qb\gY%+S`p&F_TcAI;LHn_XQElJ2gmYPc$m$h0.Bn-+EHH)c19S81-']nC&(V^u+VGQu-h/(4_%5M8C)CW4:6n=`'LIOnr_%XQ<[-'^EcBZl!N4A9H&j>piNbPOr4&l``fIW@P]-'/XHOjI0Ar5:XfJr:M>B5e>0A@;m_^-hjGkA1PgT9XLes%23.21S2T0>.Zac`+_aP7kXGAmKYn)pR6Dd)K^"k3>"<U)O2E6n:(KZ,)m;P,\l4R@%d6\3Q=[9_Op78pi$:3XCW`I'W=IHX:#m))#I?cs$QN]-D0>lJl[Fs:"ZNX_'7@k$(D)b]&<hXm#&05NHhmo3\&IJ[@e<a?_oJ*>Hap>09]+3k5=SfO@";/kOfNg%`pjI39cn\pc:MoB[CAo-t8MnSM@m).]24CMa;CT`!F?NoTeil\hJ98i[&IFVXY!;I!bB$'#hq!*hTG<!^5A?dC_:[L%3d3XqH!f#aIa"D5$)S%l9j7)6`HhCK],[&UA)`<,m1KX6A;j*<^9PM2CH22*"m[V[Wc=kV:6eAK34.lP>8^!#*?d%E<DObWY-bIX#ena6Wp8.9XaNhM-Ni,ZO29DR>=m\@*p!1X\n8UnQfJ),CTX1E4C%dj0SX2P\g?,O89b,@h^R$2B"7IOAlud/[8gDB,H\5Impi83$oc'Lo::DV*eC6><n0^U!OUnl;DXGF%Nd?T:Yat*Z[2$HB_70FDY!2am1r$]_\oD57G%tEk.J6m:\Fua6qo^%X4#]jJDa<JD/P\C0A_ZX>5<N_>]>C`(s5P?%/(Qoafb(t5,Ht<=M"T!^dE=i!?4D,P#GWp9d\<nhQI;`1_#(!IEf#L'$g-6tVl:;S&"E7)oWB(B'ol6]Af5jUWR4iQgcKYB.sB"OnElT!H=4djohKDU@DJ7kZ^9KjRUWZ_meNd\AGOC12bH9GTl#Z=ac\F;?gg-4XAd">RhgG1JPWIdW3j3]Kr]sf0HUr`QG;]*dasVIU=rN4mEY;c4^[qu`cmKSg8@CE5cS>ho3,\/RE8mBg<U]Q>4dcc=.5SBA.FZ,f9hn27*!aKc]jKelR'TjOpIPfUKnm8F`cj4m+g9:o=rP2<*/&U_:Qh=IO.X`WGhFH;b#mt7oCAZo+f!;-3"Y9e\)u_)q[sTl^>!,LbI)D3N@L*SNbA4"fn3""+]:5@s=0Tco"NJ43OgmmGH.BX59jln]M.eg`*jeHA`P=j!Rmo[k9I'nS9_`ZILm+[B^aZdOOQu7(t@TCmM@gSI<[A@jV!E*=%()A906V<W8`3Dlg7e8$mj0=*3<1bRplSC;s;XCn]useXj#C_Mj.,*,HdQ?>48W^48()Du?3Jm=q3W[H$lDQ'YE\`Us+ML,Ej5[erKQM,ejH[+NQ>hH4VoBP$Y-??pe6a3sA4-Q5YJV.k<C-ib6L@s]fJZ'Uno[me$re#L>M3,fS/UV4J46,14o(S049&-#<#S"B$#T_jD%hS`W:%Y1>I^)t3r?hF]E0plLd^]5M#D`p,!hRr=[o?0J(QtHOg'g>T;Uf5@24a2oikIa'gk9ql53n97qJ(C8R9&8It956YqE.ZMD)lDKG5.T@+TBm$;0\DE:HPE$F@qk`9`+')R:`I1:j=i'RXKUq,nU0^#^5c;<bC;rn`u+u-+)S.9s!2ru<4qk"DPn)/94*,io]"27maA1&e+OUVp$HmF$30D\d2kp\J1?$&a\fstqH>Gq4B#VcWfQ0gdA8M2%n:*I`CA&)lD$J-!!&;_erp19!;n1*)uot(!g3Wc!(]@q!!!!*8.GV"+9BRb!!"8e3<0&0"=+3P!0D`l!!!!3O;n6#5Q[)N!!#PTEW?(>#tPO+!$D<a!<<*F+?9E%J-7,&!!&+2j8]/[&s+(5!'gUK!rr<l5]Qi)!!u1+!!",BaT2AA,To)I!.Y1t#64acJE-\1!"tA5!!#7cOok[a83h1q!!!=c3&qa-+uoW'^nKa9#64acJE-\1!"tA5!!#99,>O8q9:(_[!!(pgEKgP*!(]@q!!!!*8.GV"+Mj1IbHYRiaT2AA%M;2k!!%NP,R4;LOPk)A6Tg=g!!!"SMrXj<!"tA5!!#7cOok[a83h1q!!!<r%KHJO!Qb?B!$i[I!!%NP,R4;LOPn3DA+:1p!rr<@,*$[D!!!<r%KHJO!Qb?B!$i[I!!%NP,R4;LOFZBl!!!Xn)uot(!g3Wc!(]@q!!!!*8.GV"+9BRb!!"8e3<0&0"=+3P!0D`l!!!!3O;n6#5Q[)N!!#PTEW?(>#tPO+!$D<a!<<*F+?9E%J-7,&!!&+2j8]/[&s+(5!'gUK!rr<l5]Qi)!!u1+!!",BaT2AA,To)I!.Y1t#64acJE-\1!"tA5!!#7cOok[a83h1q!!!<r%KHJO!Qb?B!$i[I!!%NP,R4;LOFZBl!!!Xn)uot(!g3Wc!(]@q!!!!*8.GV"+9BRb!!"8e3<0&0"=+3P!0D`l!!!!3O;n6#5Q[)N!!#PTEW?(>#tPO+!$D<a!<<*F+?9E%J-7,&!!&+2j8]/[&s+(5!'gUK!rr<l5]Qi)!!u1+!!",BaT2AA,To)I!.Y1t#64acJE-\1!"tA5!!#7cOok[a83h1q!!!<r%KHJO!Qb?B!$i[I!!%NP8":PlQS'RE!!'eX+uoW'J-7,&!!&+2j8]/[&s+(5!'gUK!rr<l5]Qi)!!u1+!!",BaT2AA,To)I!.Y1t#64acJE-\1!"tA5!!#7cOok[a83h1q!!!<r%KHJO!Qb?B!$i[I!!%NP,R4;LOFZBl!!!Xn)uot(Jg4$NKaS][)uous&<Rq4!'gUK!rr<l5]Qi)!"$/_'EA,(5]Qi)!!u1+!!",BaT2AA,To)I!.Y2BS/c!-Ook[a*$UD`!!!!*8.GV"+9>gQ"onWK+?9E%J-7,&!!&+2j8]/[&odXp!!&+2j8]/[&s+(5!'gUK!rr<l5]Qi)!!u1+!!",BaT2AA,To)I!5Pj_TVRt9!!!#>PirR>!rr<@;pjGE3<0&pYuB3m,R4;L3(DC"-.1A42=nLh+@'rI!.^iIipdK*)^GXg!''6np')mF!!'g>:j,$6p'3C*J\]YmZ*K&D!!!!6<BR>pnGB!&&cDgR!<<+[MR)7]8,'sE&s<=s!5t/!`LIIrNum()qa9ua$crDL!,Ca@k>RE9`(GK-IPa&#/mLqf!!%P%S4op,M%u-m=]nlO3>O8S6ui8-n2j]P'XL#k&b,T+IUYb<_]^@^Wi@7'ZEpl=Y?nnea^UD8!.`t56TLc:n\e%3AnG(EQ=u+B8WGr\p2&EfAaS3Z9:%7o!!!"<BLHmB=gLRs6pX+i.#N]"@2Oa/dHC,SmInE6_JS&9X]r8P.0'@`+VVs@qI/^@XeI+0;2D@dF]%7ZM>/eF%f?3RVpi1phnIn$gl373Y$/5Jd@s)$kKfbXCY"F^1T!p<3b?HuGM[UX1&q=LI1nadW^*qB-j7p(U)"Ls>U[a'_hJVp,",([U(CTRlCrTFBUT\B"Pdm=8P)L&IXY$ec;-\'Zspu];&s"kn\llJHnop6gtB#HcN4(HQo.N9JS5-_#bhu#/M(8CI,2AV>IJ>['d6aI'SY`X;&9P&,8^i8]jA>,^3B&&SND%-B4m-J7Bq7;mC.ui0E1+'D\b`g"TSOOhkE[bg-?@(kQF`jU)??ZLjfmM+^.2HL$4DIaUu4<eF3.D>V6U9KnY4iY+2#PN>jg6KreRl2D[-f/8um8!5QaBU'a:-LdDZD+DO2!K.$uP&#(7998K<u?9;?he#sJsF?#gdnT[n[q>'is\[gJ'D%k))l&q<s[2ArE@.Ru-"elGo+c&l)[31o(P_80);%YZ+ii%*p,9.0u!Whg^d3j+L]stS^W2N6$90kj0IRG4W!'jjs1^lbqLe\Mh+IYT\KBNP;&Y^R>;'\9B;5H<ARJ?`00oOfR(9JdHTW7;Irie$U!;P(VKciEBe:M?<;%B<B6q&*.2knD+XU\(S6D9L.79#/3fB;aN!<<*4&Y1%Z5r=3B#LO'V,,2bJ,rtrHhTM=\~>endstream |
endobj |
% 'FormXob.5da8f20685529548d87e691038e18e90': class PDFImageXObject |
% 'Page3': class PDFPage |
13 0 obj |
<< /BitsPerComponent 8 |
/ColorSpace /DeviceGray |
/Decode [ 0 |
1 ] |
/Filter [ /ASCII85Decode |
/FlateDecode ] |
/Height 533 |
/Length 146 |
/Subtype /Image |
/Type /XObject |
/Width 866 >> |
stream |
Gb"0;0`_7S!5bE.WTS+'TE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzGQZa-BJT~>endstream |
endobj |
% 'Page3': class PDFPage |
14 0 obj |
% Page dictionary |
<< /Contents 28 0 R |
<< /Contents 27 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 25 0 R |
/Parent 24 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
192,24 → 175,24
/ImageB |
/ImageC |
/ImageI ] |
/XObject << /FormXob.09b26a0166245dd394f397d1cf2199db 12 0 R >> >> |
/XObject << /FormXob.095b796d251cf05783ed4552c87ababa 12 0 R >> >> |
/Rotate 0 |
/Trans << >> |
/Type /Page >> |
endobj |
% 'R15': class PDFCatalog |
15 0 obj |
% 'R14': class PDFCatalog |
14 0 obj |
% Document Root |
<< /Outlines 17 0 R |
/PageLabels 29 0 R |
<< /Outlines 16 0 R |
/PageLabels 28 0 R |
/PageMode /UseNone |
/Pages 25 0 R |
/Pages 24 0 R |
/Type /Catalog >> |
endobj |
% 'R16': class PDFInfo |
16 0 obj |
% 'R15': class PDFInfo |
15 0 obj |
<< /Author () |
/CreationDate (D:20131125174305+00'00') |
/CreationDate (D:20131223182319+00'00') |
/Creator (\(unspecified\)) |
/Keywords () |
/Producer (ReportLab PDF Library - www.reportlab.com) |
216,108 → 199,108
/Subject (\(unspecified\)) |
/Title () >> |
endobj |
% 'R17': class PDFOutlines |
17 0 obj |
% 'R16': class PDFOutlines |
16 0 obj |
<< /Count 7 |
/First 18 0 R |
/Last 24 0 R |
/First 17 0 R |
/Last 23 0 R |
/Type /Outlines >> |
endobj |
% 'Outline.0': class OutlineEntryObject |
18 0 obj |
17 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
765.0236 |
0 ] |
/Next 19 0 R |
/Parent 17 0 R |
/Next 18 0 R |
/Parent 16 0 R |
/Title (Chips-2.0 Demo for ATLYS Development Card) >> |
endobj |
% 'Outline.1': class OutlineEntryObject |
19 0 obj |
18 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
621.0236 |
609.0236 |
0 ] |
/Next 20 0 R |
/Parent 17 0 R |
/Prev 18 0 R |
/Next 19 0 R |
/Parent 16 0 R |
/Prev 17 0 R |
/Title (Dependencies) >> |
endobj |
% 'Outline.2': class OutlineEntryObject |
20 0 obj |
19 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
462.0236 |
450.0236 |
0 ] |
/Next 21 0 R |
/Parent 17 0 R |
/Prev 19 0 R |
/Next 20 0 R |
/Parent 16 0 R |
/Prev 18 0 R |
/Title (Install) >> |
endobj |
% 'Outline.3': class OutlineEntryObject |
21 0 obj |
20 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
341.8236 |
329.8236 |
0 ] |
/Next 22 0 R |
/Parent 17 0 R |
/Prev 20 0 R |
/Next 21 0 R |
/Parent 16 0 R |
/Prev 19 0 R |
/Title (Chips Compile) >> |
endobj |
% 'Outline.4': class OutlineEntryObject |
22 0 obj |
21 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
257.6236 |
245.6236 |
0 ] |
/Next 23 0 R |
/Parent 17 0 R |
/Prev 21 0 R |
/Next 22 0 R |
/Parent 16 0 R |
/Prev 20 0 R |
/Title (Build in ISE) >> |
endobj |
% 'Outline.5': class OutlineEntryObject |
23 0 obj |
22 0 obj |
<< /Dest [ 9 0 R |
/XYZ |
62.69291 |
161.4236 |
149.4236 |
0 ] |
/Next 24 0 R |
/Parent 17 0 R |
/Prev 22 0 R |
/Next 23 0 R |
/Parent 16 0 R |
/Prev 21 0 R |
/Title (Download to ATLYS) >> |
endobj |
% 'Outline.6': class OutlineEntryObject |
24 0 obj |
23 0 obj |
<< /Dest [ 11 0 R |
/XYZ |
62.69291 |
707.8236 |
0 ] |
/Parent 17 0 R |
/Prev 23 0 R |
/Parent 16 0 R |
/Prev 22 0 R |
/Title (Setup and Test) >> |
endobj |
% 'R25': class PDFPages |
25 0 obj |
% 'R24': class PDFPages |
24 0 obj |
% page tree |
<< /Count 3 |
/Kids [ 9 0 R |
11 0 R |
14 0 R ] |
13 0 R ] |
/Type /Pages >> |
endobj |
% 'R26': class PDFStream |
26 0 obj |
% 'R25': class PDFStream |
25 0 obj |
% page stream |
<< /Length 6534 >> |
<< /Length 6611 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
394,19 → 377,19
Q |
Q |
q |
1 0 0 1 62.69291 633.0236 cm |
1 0 0 1 62.69291 621.0236 cm |
q |
BT 1 0 0 1 0 38 Tm 1.129213 Tw 12 TL /F1 10 Tf 0 0 0 rg (This project is intended to demonstrate the capabilities of the ) Tj 0 0 .501961 rg (Chips-2.0 ) Tj 0 0 0 rg (development environment. The) Tj T* 0 Tw 1.883555 Tw (project is targets the Xilinx Spartan 6 device, and more specifically, the Digilent ATLYS development) Tj T* 0 Tw 2.017318 Tw (platform. The demo implements a TCP/IP socket interface, and a simple web application. So far the) Tj T* 0 Tw (demonstration has been tested on a Ubuntu Linux only.) Tj T* ET |
BT 1 0 0 1 0 50 Tm 1.129213 Tw 12 TL /F1 10 Tf 0 0 0 rg (This project is intended to demonstrate the capabilities of the ) Tj 0 0 .501961 rg (Chips-2.0 ) Tj 0 0 0 rg (development environment. The) Tj T* 0 Tw 1.883555 Tw (project is targets the Xilinx Spartan 6 device, and more specifically, the Digilent ATLYS development) Tj T* 0 Tw 2.017318 Tw (platform. The demo implements a TCP/IP socket interface, and a simple web application. So far the) Tj T* 0 Tw 2.754269 Tw (demonstration has been tested on a Ubuntu Linux only. Some users have reported success using) Tj T* 0 Tw (windows.) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 600.0236 cm |
1 0 0 1 62.69291 588.0236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Dependencies) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 582.0236 cm |
1 0 0 1 62.69291 570.0236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (You will need:) Tj T* ET |
413,13 → 396,13
Q |
Q |
q |
1 0 0 1 62.69291 576.0236 cm |
1 0 0 1 62.69291 564.0236 cm |
Q |
q |
1 0 0 1 62.69291 576.0236 cm |
1 0 0 1 62.69291 564.0236 cm |
Q |
q |
1 0 0 1 62.69291 564.0236 cm |
1 0 0 1 62.69291 552.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
440,10 → 423,10
Q |
Q |
q |
1 0 0 1 62.69291 558.0236 cm |
1 0 0 1 62.69291 546.0236 cm |
Q |
q |
1 0 0 1 62.69291 546.0236 cm |
1 0 0 1 62.69291 534.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
464,10 → 447,10
Q |
Q |
q |
1 0 0 1 62.69291 540.0236 cm |
1 0 0 1 62.69291 528.0236 cm |
Q |
q |
1 0 0 1 62.69291 528.0236 cm |
1 0 0 1 62.69291 516.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
488,10 → 471,10
Q |
Q |
q |
1 0 0 1 62.69291 522.0236 cm |
1 0 0 1 62.69291 510.0236 cm |
Q |
q |
1 0 0 1 62.69291 510.0236 cm |
1 0 0 1 62.69291 498.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
511,10 → 494,10
Q |
Q |
q |
1 0 0 1 62.69291 504.0236 cm |
1 0 0 1 62.69291 492.0236 cm |
Q |
q |
1 0 0 1 62.69291 492.0236 cm |
1 0 0 1 62.69291 480.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
534,10 → 517,10
Q |
Q |
q |
1 0 0 1 62.69291 486.0236 cm |
1 0 0 1 62.69291 474.0236 cm |
Q |
q |
1 0 0 1 62.69291 474.0236 cm |
1 0 0 1 62.69291 462.0236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
558,16 → 541,16
Q |
Q |
q |
1 0 0 1 62.69291 474.0236 cm |
1 0 0 1 62.69291 462.0236 cm |
Q |
q |
1 0 0 1 62.69291 441.0236 cm |
1 0 0 1 62.69291 429.0236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Install) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 423.0236 cm |
1 0 0 1 62.69291 411.0236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Clone the git the repository with git:) Tj T* ET |
574,7 → 557,7
Q |
Q |
q |
1 0 0 1 62.69291 353.8236 cm |
1 0 0 1 62.69291 341.8236 cm |
q |
q |
1 0 0 1 0 0 cm |
588,7 → 571,7
Q |
q |
0 0 0 rg |
BT 1 0 0 1 0 38 Tm /F3 10 Tf 12 TL ($ git clone git@github.com:dawsonjon/Chips-Demo.git) Tj T* ($ cd Chips-Demo) Tj T* ($ git submodule init) Tj T* ($ git submodule update) Tj T* ET |
BT 1 0 0 1 0 38 Tm /F3 10 Tf 12 TL ($ git clone https://github.com/dawsonjon/Chips-Demo.git) Tj T* ($ cd Chips-Demo) Tj T* ($ git submodule init) Tj T* ($ git submodule update) Tj T* ET |
Q |
Q |
Q |
595,13 → 578,13
Q |
Q |
q |
1 0 0 1 62.69291 320.8236 cm |
1 0 0 1 62.69291 308.8236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Chips Compile) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 302.8236 cm |
1 0 0 1 62.69291 290.8236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (To compile the c code in chips, issue the following command in the project folder:) Tj T* ET |
608,7 → 591,7
Q |
Q |
q |
1 0 0 1 62.69291 269.6236 cm |
1 0 0 1 62.69291 257.6236 cm |
q |
q |
1 0 0 1 0 0 cm |
629,13 → 612,13
Q |
Q |
q |
1 0 0 1 62.69291 236.6236 cm |
1 0 0 1 62.69291 224.6236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Build in ISE) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 206.6236 cm |
1 0 0 1 62.69291 194.6236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .177633 Tw (Edit the Xilinx variable in the scripts/user_settings to point to the Xilinx ISE install directory. Then build the) Tj T* 0 Tw (design using the following command:) Tj T* ET |
642,7 → 625,7
Q |
Q |
q |
1 0 0 1 62.69291 173.4236 cm |
1 0 0 1 62.69291 161.4236 cm |
q |
q |
1 0 0 1 0 0 cm |
663,13 → 646,13
Q |
Q |
q |
1 0 0 1 62.69291 140.4236 cm |
1 0 0 1 62.69291 128.4236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Download to ATLYS) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 122.4236 cm |
1 0 0 1 62.69291 110.4236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Power up the ATLYS, and connect the JTAG USB cable to your PC. Run the download command:) Tj T* ET |
676,7 → 659,7
Q |
Q |
q |
1 0 0 1 62.69291 89.22362 cm |
1 0 0 1 62.69291 77.22362 cm |
q |
q |
1 0 0 1 0 0 cm |
699,10 → 682,10
|
endstream |
endobj |
% 'R27': class PDFStream |
27 0 obj |
% 'R26': class PDFStream |
26 0 obj |
% page stream |
<< /Length 3397 >> |
<< /Length 3330 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
759,14 → 742,14
Q |
Q |
q |
1 0 0 1 62.69291 513.6236 cm |
1 0 0 1 62.69291 525.6236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 2.905318 Tw (Connect the Ethernet port to ATLYS, using a crossed over Ethernet cable \(which comes with the) Tj T* 0 Tw (development kit\).) Tj T* ET |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Connect the Ethernet port to ATLYS, using a crossed over Ethernet cable.) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 483.6236 cm |
1 0 0 1 62.69291 495.6236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.425366 Tw (Using the script, configure Ethernet port with IP address 192.168.1.0 and subnet mask 255.255.255.0.) Tj T* 0 Tw (Turn off TCP Window Scaling and TCP time stamps:) Tj T* ET |
773,7 → 756,7
Q |
Q |
q |
1 0 0 1 62.69291 450.4236 cm |
1 0 0 1 62.69291 462.4236 cm |
q |
q |
1 0 0 1 0 0 cm |
794,7 → 777,7
Q |
Q |
q |
1 0 0 1 62.69291 430.4236 cm |
1 0 0 1 62.69291 442.4236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Verify connection using ping command:) Tj T* ET |
801,7 → 784,7
Q |
Q |
q |
1 0 0 1 62.69291 289.2236 cm |
1 0 0 1 62.69291 301.2236 cm |
q |
q |
1 0 0 1 0 0 cm |
822,7 → 805,7
Q |
Q |
q |
1 0 0 1 62.69291 269.2236 cm |
1 0 0 1 62.69291 281.2236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Connect to 192.168.1.1 using your favourite browser.) Tj T* ET |
831,52 → 814,52
|
endstream |
endobj |
% 'R28': class PDFStream |
28 0 obj |
% 'R27': class PDFStream |
27 0 obj |
% page stream |
<< /Length 162 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
1 0 0 1 121.4291 548.1201 cm |
1 0 0 1 121.4291 509.8754 cm |
q |
352.4173 0 0 216.9035 0 0 cm |
/FormXob.09b26a0166245dd394f397d1cf2199db Do |
352.4173 0 0 255.1482 0 0 cm |
/FormXob.095b796d251cf05783ed4552c87ababa Do |
Q |
Q |
|
endstream |
endobj |
% 'R29': class PDFPageLabels |
29 0 obj |
% 'R28': class PDFPageLabels |
28 0 obj |
% Document Root |
<< /Nums [ 0 |
29 0 R |
1 |
30 0 R |
1 |
31 0 R |
2 |
32 0 R ] >> |
31 0 R ] >> |
endobj |
% 'R30': class PDFPageLabel |
30 0 obj |
% 'R29': class PDFPageLabel |
29 0 obj |
% None |
<< /S /D |
/St 1 >> |
endobj |
% 'R31': class PDFPageLabel |
31 0 obj |
% 'R30': class PDFPageLabel |
30 0 obj |
% None |
<< /S /D |
/St 2 >> |
endobj |
% 'R32': class PDFPageLabel |
32 0 obj |
% 'R31': class PDFPageLabel |
31 0 obj |
% None |
<< /S /D |
/St 3 >> |
endobj |
xref |
0 33 |
0 32 |
0000000000 65535 f |
0000000113 00000 n |
0000000246 00000 n |
883,41 → 866,40
0000000411 00000 n |
0000000598 00000 n |
0000000845 00000 n |
0000001100 00000 n |
0000001423 00000 n |
0000001704 00000 n |
0000001863 00000 n |
0000002188 00000 n |
0000002368 00000 n |
0000002691 00000 n |
0000053823 00000 n |
0000054226 00000 n |
0000054573 00000 n |
0000054732 00000 n |
0000054980 00000 n |
0000055105 00000 n |
0000055306 00000 n |
0000055493 00000 n |
0000055675 00000 n |
0000055863 00000 n |
0000056050 00000 n |
0000056242 00000 n |
0000056401 00000 n |
0000056526 00000 n |
0000063159 00000 n |
0000066655 00000 n |
0000066919 00000 n |
0000067038 00000 n |
0000067115 00000 n |
0000067192 00000 n |
0000001081 00000 n |
0000001404 00000 n |
0000001685 00000 n |
0000001844 00000 n |
0000002169 00000 n |
0000002349 00000 n |
0000002672 00000 n |
0000066620 00000 n |
0000066967 00000 n |
0000067126 00000 n |
0000067374 00000 n |
0000067499 00000 n |
0000067700 00000 n |
0000067887 00000 n |
0000068069 00000 n |
0000068257 00000 n |
0000068444 00000 n |
0000068636 00000 n |
0000068795 00000 n |
0000068920 00000 n |
0000075630 00000 n |
0000079059 00000 n |
0000079323 00000 n |
0000079442 00000 n |
0000079519 00000 n |
0000079596 00000 n |
trailer |
<< /ID |
% ReportLab generated PDF document -- digest (http://www.reportlab.com) |
[(Q\331\225\204F\000f\3230O2p\020\241\016\002) (Q\331\225\204F\000f\3230O2p\020\241\016\002)] |
[(\307<\334\355\324O\377\325\346\311\036\004\375\312\252\277) (\307<\334\355\324O\377\325\346\311\036\004\375\312\252\277)] |
|
/Info 16 0 R |
/Root 15 0 R |
/Size 33 >> |
/Info 15 0 R |
/Root 14 0 R |
/Size 32 >> |
startxref |
67239 |
79643 |
%%EOF |
/tcp_socket/trunk/images/TCP.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tcp_socket/trunk/images/network.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
tcp_socket/trunk/images/network.png
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tcp_socket/trunk/TCPIP.rst
===================================================================
--- tcp_socket/trunk/TCPIP.rst (revision 3)
+++ tcp_socket/trunk/TCPIP.rst (revision 4)
@@ -1,4 +1,4 @@
-Chips-2.0 Demo for SP605 Development Card
+Chips-2.0 Demo for Atlys Development Card
=========================================
:Author: Jonathan P Dawson
@@ -107,158 +107,7 @@
Stream Interconnect Conventions
===============================
-The main aims of the interface are:
+The interfaces are based on the Chips Physical Interface Convetions which are
+described in the Chips-2.0 `reference manual
+`_.
- - To be simple to implement.
- - Add little performance/logic overhead.
- - Allow designs to grow without adding extra levels of asynchronous logic.
- - Easy to interface with standard interconnects.
-
-::
-
- RST >-o-----------------------------+
- CLK >-+-o-------------------------+ |
- | | | |
- | | +-----------+ | | +--------------+
- | | | TX | | | | RX |
- | +---> | | +-----> |
- +-----> | +-------> |
- | | | |
- | | | |
- | out >=================> in |
- | | _STB | |
- | out >-----------------> in |
- | | _ACK | |
- | in <-----------------< out |
- | | | |
- +-----------+ +--------------+
-
-Global Signals
---------------
-
-
-
-+------+-----------+------+-------------+
-| Name | Direction | Type | Description |
-+------+-----------+------+-------------+
-| CLK | input | bit | Clock |
-+------+-----------+------+-------------+
-| RST | input | bit | Reset |
-+------+-----------+------+-------------+
-
-
-
-Interconnect Signals
---------------------
-
-
-
-+----------------+-----------+------+-----------------------------------------------------------+
-| Name | Direction | Type | Description |
-+----------------+-----------+------+-----------------------------------------------------------+
-| | TX to RX | bus | Payload Data |
-+----------------+-----------+------+-----------------------------------------------------------+
-| _STB | TX to RX | bit | '1' indicates that payload data is valid and TX is ready. |
-+----------------+-----------+------+-----------------------------------------------------------+
-| _ACK | TX to RX | bit | '1' indicates that RX is ready. |
-+----------------+-----------+------+-----------------------------------------------------------+
-
-
-
-Interconnect Bus Transaction
-----------------------------
-
-- Both transmitter and receiver shall be synchronised to the '0' -> '1' transition of CLK.
-- If RST is set to '1' upon the '0' -> '1' transition of clock the transmitter shall terminate any active bus transaction and set _STB to '0'.
-- If RST is set to '1' upon the '0' -> '1' transition of clock the receiver shall terminate any active bus transaction and set _ACK to '0'.
-- If RST is set to '0', normal operation shall commence as follows:
-- The transmitter may insert wait states on the bus by setting _STB '0'.
-- The transmitter shall set _STB to '1' to signify that data is valid.
-- Once _STB has been set to '1', it shall remain at '1' until the transaction completes.
-- The transmitter shall ensure that contains valid data for the entire period that _STB is '1'.
-- The transmitter may set to any value when _STB is '0'.
-- The receiver may insert wait states on the bus by setting _ACK to '0'.
-- The receiver shall set _ACK to '1' to signify that it is ready to receive data.
-- Once _ACK has been set to '1', it shall remain at '1' until the transaction completes.
-- Whenever _STB is '1' and _ACK are '1', a bus transaction shall complete on the following '0' -> '1' transition of CLK.
-
-::
-
- RST
- --------------------------------------------------------------
- - - - - - - - - - - - - - - -
- CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- - - - - - - - - - - - - - - - -
-
- ----- ------- ------------------------------------------------
- X VALID X
- ----- ------- ------------------------------------------------
- -------
- _STB | |
- ----- ------------------------------------------------
- ---
- _ACK | |
- --------- ------------------------------------------------
-
-
- ^^^^ RX adds wait states
-
- ^^^^ Data transfers
-
- RST
- --------------------------------------------------------------
- - - - - - - - - - - - - - - -
- CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- - - - - - - - - - - - - - - - -
-
- ----- ------- ------------------------------------------------
- X VALID X
- ----- ------- ------------------------------------------------
- ---
- _STB | |
- --------- ------------------------------------------------
- -------
- _ACK | |
- ----- ------------------------------------------------
-
-
- ^^^^ TX adds wait states
-
- ^^^^ Data transfers
-
-..
-
-- Both the transmitter and receiver may commence a new transaction without inserting any wait states.
-
-::
-
- RST
- --------------------------------------------------------------
- - - - - - - - - - - - - - - -
- CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- - - - - - - - - - - - - - - - -
-
- ----- ------- ---- ---- --------------------------------------
- X D0 X D1 X D2 X
- ----- ------- ---- ---- --------------------------------------
- -------------
- _STB | |
- --------- --------------------------------------
- -----------------
- _ACK | |
- ----- --------------------------------------
-
- ^^^^ TX adds wait states
-
- ^^^^ Data transfers
-
- ^^^^ STB and ACK needn't return to 0 between data words
-
-..
-
-
-- The receiver may delay a transaction by inserting wait states until the transmitter indicates that data is available.
-
-- The transmitter shall not delay a transaction by inserting wait states until the receiver is ready to accept data.
-
-- Deadlock would occur if both the transmitter and receiver delayed a transaction until the other was ready.
/tcp_socket/trunk/TCPIP.pdf
53,12 → 53,12
6 0 obj |
% Page dictionary |
<< /Annots [ 4 0 R ] |
/Contents 28 0 R |
/Contents 23 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 27 0 R |
/Parent 22 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
69,34 → 69,31
/Trans << >> |
/Type /Page >> |
endobj |
% 'Page2': class PDFPage |
% 'Annot.NUMBER2': class PDFDictionary |
7 0 obj |
% Page dictionary |
<< /Contents 29 0 R |
/MediaBox [ 0 |
<< /A << /S /URI |
/Type /Action |
/URI (http://dawsonjon.github.io/Chips-2.0/language_reference/index.html#physical-interface) >> |
/Border [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 27 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
/ImageB |
/ImageC |
/ImageI ] >> |
/Rotate 0 |
/Trans << >> |
/Type /Page >> |
0 ] |
/Rect [ 62.69291 |
228.5736 |
140.5029 |
240.5736 ] |
/Subtype /Link |
/Type /Annot >> |
endobj |
% 'Page3': class PDFPage |
% 'Page2': class PDFPage |
8 0 obj |
% Page dictionary |
<< /Contents 30 0 R |
<< /Annots [ 7 0 R ] |
/Contents 24 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 27 0 R |
/Parent 22 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
107,57 → 104,19
/Trans << >> |
/Type /Page >> |
endobj |
% 'Page4': class PDFPage |
% 'R9': class PDFCatalog |
9 0 obj |
% Page dictionary |
<< /Contents 31 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 27 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
/ImageB |
/ImageC |
/ImageI ] >> |
/Rotate 0 |
/Trans << >> |
/Type /Page >> |
endobj |
% 'Page5': class PDFPage |
10 0 obj |
% Page dictionary |
<< /Contents 32 0 R |
/MediaBox [ 0 |
0 |
595.2756 |
841.8898 ] |
/Parent 27 0 R |
/Resources << /Font 1 0 R |
/ProcSet [ /PDF |
/Text |
/ImageB |
/ImageC |
/ImageI ] >> |
/Rotate 0 |
/Trans << >> |
/Type /Page >> |
endobj |
% 'R11': class PDFCatalog |
11 0 obj |
% Document Root |
<< /Outlines 13 0 R |
/PageLabels 33 0 R |
<< /Outlines 11 0 R |
/PageLabels 25 0 R |
/PageMode /UseNone |
/Pages 27 0 R |
/Pages 22 0 R |
/Type /Catalog >> |
endobj |
% 'R12': class PDFInfo |
12 0 obj |
% 'R10': class PDFInfo |
10 0 obj |
<< /Author () |
/CreationDate (D:20131125175156+00'00') |
/CreationDate (D:20131223183124+00'00') |
/Creator (\(unspecified\)) |
/Keywords () |
/Producer (ReportLab PDF Library - www.reportlab.com) |
164,182 → 123,142
/Subject (\(unspecified\)) |
/Title () >> |
endobj |
% 'R13': class PDFOutlines |
13 0 obj |
<< /Count 15 |
/First 14 0 R |
/Last 23 0 R |
% 'R11': class PDFOutlines |
11 0 obj |
<< /Count 11 |
/First 12 0 R |
/Last 21 0 R |
/Type /Outlines >> |
endobj |
% 'Outline.0': class OutlineEntryObject |
14 0 obj |
12 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
765.0236 |
0 ] |
/Next 15 0 R |
/Parent 13 0 R |
/Title (Chips-2.0 Demo for SP605 Development Card) >> |
/Next 13 0 R |
/Parent 11 0 R |
/Title (Chips-2.0 Demo for Atlys Development Card) >> |
endobj |
% 'Outline.1': class OutlineEntryObject |
15 0 obj |
13 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
573.0236 |
0 ] |
/Next 16 0 R |
/Parent 13 0 R |
/Prev 14 0 R |
/Next 14 0 R |
/Parent 11 0 R |
/Prev 12 0 R |
/Title (Synthesis Estimate) >> |
endobj |
% 'Outline.2': class OutlineEntryObject |
16 0 obj |
14 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
522.0236 |
0 ] |
/Next 17 0 R |
/Parent 13 0 R |
/Prev 15 0 R |
/Next 15 0 R |
/Parent 11 0 R |
/Prev 13 0 R |
/Title (Dependencies) >> |
endobj |
% 'Outline.3': class OutlineEntryObject |
17 0 obj |
15 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
471.0236 |
0 ] |
/Next 18 0 R |
/Parent 13 0 R |
/Prev 16 0 R |
/Next 16 0 R |
/Parent 11 0 R |
/Prev 14 0 R |
/Title (Source Files) >> |
endobj |
% 'Outline.4': class OutlineEntryObject |
18 0 obj |
16 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
378.0236 |
0 ] |
/Next 19 0 R |
/Parent 13 0 R |
/Prev 17 0 R |
/Next 17 0 R |
/Parent 11 0 R |
/Prev 15 0 R |
/Title (Configuration) >> |
endobj |
% 'Outline.5': class OutlineEntryObject |
19 0 obj |
17 0 obj |
<< /Dest [ 6 0 R |
/XYZ |
62.69291 |
267.0236 |
0 ] |
/Next 20 0 R |
/Parent 13 0 R |
/Prev 18 0 R |
/Next 18 0 R |
/Parent 11 0 R |
/Prev 16 0 R |
/Title (Compile) >> |
endobj |
% 'Outline.6': class OutlineEntryObject |
20 0 obj |
18 0 obj |
<< /Count 2 |
/Dest [ 7 0 R |
/Dest [ 8 0 R |
/XYZ |
62.69291 |
765.0236 |
0 ] |
/First 21 0 R |
/Last 22 0 R |
/Next 23 0 R |
/Parent 13 0 R |
/Prev 19 0 R |
/First 19 0 R |
/Last 20 0 R |
/Next 21 0 R |
/Parent 11 0 R |
/Prev 17 0 R |
/Title (Interface) >> |
endobj |
% 'Outline.14.0': class OutlineEntryObject |
21 0 obj |
<< /Dest [ 7 0 R |
% 'Outline.11.0': class OutlineEntryObject |
19 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
614.8236 |
0 ] |
/Next 22 0 R |
/Parent 20 0 R |
/Next 20 0 R |
/Parent 18 0 R |
/Title (Ethernet Interface) >> |
endobj |
% 'Outline.14.1': class OutlineEntryObject |
22 0 obj |
<< /Dest [ 7 0 R |
% 'Outline.11.1': class OutlineEntryObject |
20 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
446.8236 |
0 ] |
/Parent 20 0 R |
/Prev 21 0 R |
/Parent 18 0 R |
/Prev 19 0 R |
/Title (Socket Interface) >> |
endobj |
% 'Outline.7': class OutlineEntryObject |
23 0 obj |
<< /Count 3 |
/Dest [ 7 0 R |
21 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
278.8236 |
0 ] |
/First 24 0 R |
/Last 26 0 R |
/Parent 13 0 R |
/Prev 20 0 R |
/Parent 11 0 R |
/Prev 18 0 R |
/Title (Stream Interconnect Conventions) >> |
endobj |
% 'Outline.15.0': class OutlineEntryObject |
24 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
607.8236 |
0 ] |
/Next 25 0 R |
/Parent 23 0 R |
/Title (Global Signals) >> |
endobj |
% 'Outline.15.1': class OutlineEntryObject |
25 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
511.8236 |
0 ] |
/Next 26 0 R |
/Parent 23 0 R |
/Prev 24 0 R |
/Title (Interconnect Signals) >> |
endobj |
% 'Outline.15.2': class OutlineEntryObject |
26 0 obj |
<< /Dest [ 8 0 R |
/XYZ |
62.69291 |
397.8236 |
0 ] |
/Parent 23 0 R |
/Prev 25 0 R |
/Title (Interconnect Bus Transaction) >> |
endobj |
% 'R27': class PDFPages |
27 0 obj |
% 'R22': class PDFPages |
22 0 obj |
% page tree |
<< /Count 5 |
<< /Count 2 |
/Kids [ 6 0 R |
7 0 R |
8 0 R |
9 0 R |
10 0 R ] |
8 0 R ] |
/Type /Pages >> |
endobj |
% 'R28': class PDFStream |
28 0 obj |
% 'R23': class PDFStream |
23 0 obj |
% page stream |
<< /Length 6472 >> |
stream |
347,7 → 266,7
q |
1 0 0 1 62.69291 744.0236 cm |
q |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Chips-2.0 Demo for SP605 Development Card) Tj T* ET |
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Chips-2.0 Demo for Atlys Development Card) Tj T* ET |
Q |
Q |
q |
765,10 → 684,10
|
endstream |
endobj |
% 'R29': class PDFStream |
29 0 obj |
% 'R24': class PDFStream |
24 0 obj |
% page stream |
<< /Length 7891 >> |
<< /Length 5956 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
1124,996 → 1043,36
Q |
Q |
q |
1 0 0 1 62.69291 239.8236 cm |
1 0 0 1 62.69291 227.8236 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (The main aims of the interface are:) Tj T* ET |
BT 1 0 0 1 0 14 Tm .089984 Tw 12 TL /F1 10 Tf 0 0 0 rg (The interfaces are based on the Chips Physical Interface Convetions which are described in the Chips-2.0) Tj T* 0 Tw 0 0 .501961 rg (reference manual) Tj 0 0 0 rg (.) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 233.8236 cm |
Q |
q |
1 0 0 1 62.69291 161.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
BT 1 0 0 1 0 2 Tm T* ET |
q |
1 0 0 1 20 66 cm |
Q |
q |
1 0 0 1 20 66 cm |
Q |
q |
1 0 0 1 20 54 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (To be simple to implement.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 20 48 cm |
Q |
q |
1 0 0 1 20 36 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Add little performance/logic overhead.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 20 30 cm |
Q |
q |
1 0 0 1 20 18 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Allow designs to grow without adding extra levels of asynchronous logic.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 20 12 cm |
Q |
q |
1 0 0 1 20 0 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Easy to interface with standard interconnects.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 20 0 cm |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 161.8236 cm |
Q |
q |
1 0 0 1 62.69291 80.62362 cm |
q |
q |
1 0 0 1 0 0 cm |
q |
1 0 0 1 6.6 6.6 cm |
q |
.662745 .662745 .662745 RG |
.5 w |
.960784 .960784 .862745 rg |
n -6 -6 468.6898 72 re B* |
Q |
q |
BT 1 0 0 1 0 50 Tm 12 TL /F3 10 Tf 0 0 0 rg (RST ) Tj (>) Tj (-o-----------------------------+) Tj T* (CLK ) Tj (>) Tj (-+-o-------------------------+ |) Tj T* ( | | | |) Tj T* ( | | +-----------+ | | +--------------+) Tj T* ( | | | TX | | | | RX |) Tj T* ET |
Q |
Q |
Q |
Q |
Q |
|
endstream |
endobj |
% 'R30': class PDFStream |
30 0 obj |
% page stream |
<< /Length 11340 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
1 0 0 1 62.69291 619.8236 cm |
q |
q |
1 0 0 1 0 0 cm |
q |
1 0 0 1 6.6 6.6 cm |
q |
.662745 .662745 .662745 RG |
.5 w |
.960784 .960784 .862745 rg |
n -6 -6 468.6898 144 re B* |
Q |
q |
BT 1 0 0 1 0 122 Tm 12 TL /F3 10 Tf 0 0 0 rg ( | +---) Tj (>) Tj ( | | +-----) Tj (>) Tj ( |) Tj T* ( +-----) Tj (>) Tj ( | +-------) Tj (>) Tj ( |) Tj T* ( | | | |) Tj T* ( | | ) Tj (<) Tj (BUS_NAME) Tj (>) Tj ( | |) Tj T* ( | out ) Tj (>) Tj (=================) Tj (>) Tj ( in |) Tj T* ( | | ) Tj (<) Tj (BUS_NAME) Tj (>) Tj (_STB | |) Tj T* ( | out ) Tj (>) Tj (-----------------) Tj (>) Tj ( in |) Tj T* ( | | ) Tj (<) Tj (BUS_NAME) Tj (>) Tj (_ACK | |) Tj T* ( | in ) Tj (<) Tj (-----------------) Tj (<) Tj ( out |) Tj T* ( | | | |) Tj T* ( +-----------+ +--------------+) Tj T* ET |
Q |
Q |
Q |
Q |
Q |
q |
1 0 0 1 62.69291 589.8236 cm |
q |
BT 1 0 0 1 0 3 Tm 18 TL /F2 15 Tf 0 0 0 rg (Global Signals) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 577.8236 cm |
Q |
q |
1 0 0 1 62.69291 523.8236 cm |
1 1 1 rg |
n 0 54 469.8898 -18 re f* |
.878431 .878431 .878431 rg |
n 0 36 469.8898 -18 re f* |
1 1 1 rg |
n 0 18 469.8898 -18 re f* |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Name) Tj T* ET |
Q |
Q |
q |
1 0 0 1 84.31496 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Direction) Tj T* ET |
Q |
Q |
q |
1 0 0 1 227.8924 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Type) Tj T* ET |
Q |
Q |
q |
1 0 0 1 306.2073 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Description) Tj T* ET |
Q |
Q |
q |
1 0 0 1 6 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (CLK) Tj T* ET |
Q |
Q |
q |
1 0 0 1 84.31496 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (input) Tj T* ET |
Q |
Q |
q |
1 0 0 1 227.8924 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bit) Tj T* ET |
Q |
Q |
q |
1 0 0 1 306.2073 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Clock) Tj T* ET |
Q |
Q |
q |
1 0 0 1 6 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (RST) Tj T* ET |
Q |
Q |
q |
1 0 0 1 84.31496 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (input) Tj T* ET |
Q |
Q |
q |
1 0 0 1 227.8924 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bit) Tj T* ET |
Q |
Q |
q |
1 0 0 1 306.2073 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Reset) Tj T* ET |
Q |
Q |
q |
1 J |
1 j |
0 0 0 RG |
.25 w |
n 0 36 m 469.8898 36 l S |
n 0 18 m 469.8898 18 l S |
n 78.31496 0 m 78.31496 54 l S |
n 221.8924 0 m 221.8924 54 l S |
n 300.2073 0 m 300.2073 54 l S |
n 0 54 m 469.8898 54 l S |
n 0 0 m 469.8898 0 l S |
n 0 0 m 0 54 l S |
n 469.8898 0 m 469.8898 54 l S |
Q |
Q |
q |
1 0 0 1 62.69291 523.8236 cm |
Q |
q |
1 0 0 1 62.69291 493.8236 cm |
q |
BT 1 0 0 1 0 3 Tm 18 TL /F2 15 Tf 0 0 0 rg (Interconnect Signals) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 481.8236 cm |
Q |
q |
1 0 0 1 62.69291 409.8236 cm |
1 1 1 rg |
n 0 72 469.8898 -18 re f* |
.878431 .878431 .878431 rg |
n 0 54 469.8898 -18 re f* |
1 1 1 rg |
n 0 36 469.8898 -18 re f* |
.878431 .878431 .878431 rg |
n 0 18 469.8898 -18 re f* |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 57 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Name) Tj T* ET |
Q |
Q |
q |
1 0 0 1 87.71996 57 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Direction) Tj T* ET |
Q |
Q |
q |
1 0 0 1 143.9024 57 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Type) Tj T* ET |
Q |
Q |
q |
1 0 0 1 174.5474 57 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Description) Tj T* ET |
Q |
Q |
q |
1 0 0 1 6 39 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (<) Tj (BUS_NAME) Tj (>) Tj T* ET |
Q |
Q |
q |
1 0 0 1 87.71996 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (TX to RX) Tj T* ET |
Q |
Q |
q |
1 0 0 1 143.9024 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bus) Tj T* ET |
Q |
Q |
q |
1 0 0 1 174.5474 39 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Payload Data) Tj T* ET |
Q |
Q |
q |
1 0 0 1 6 21 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (<) Tj (BUS_NAME) Tj (>) Tj (_STB) Tj T* ET |
Q |
Q |
q |
1 0 0 1 87.71996 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (TX to RX) Tj T* ET |
Q |
Q |
q |
1 0 0 1 143.9024 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bit) Tj T* ET |
Q |
Q |
q |
1 0 0 1 174.5474 21 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL ('1' indicates that payload data is valid and TX is ready.) Tj T* ET |
Q |
Q |
q |
1 0 0 1 6 3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (<) Tj (BUS_NAME) Tj (>) Tj (_ACK) Tj T* ET |
Q |
Q |
q |
1 0 0 1 87.71996 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (TX to RX) Tj T* ET |
Q |
Q |
q |
1 0 0 1 143.9024 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bit) Tj T* ET |
Q |
Q |
q |
1 0 0 1 174.5474 3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL ('1' indicates that RX is ready.) Tj T* ET |
Q |
Q |
q |
1 J |
1 j |
0 0 0 RG |
.25 w |
n 0 54 m 469.8898 54 l S |
n 0 36 m 469.8898 36 l S |
n 0 18 m 469.8898 18 l S |
n 81.71996 0 m 81.71996 72 l S |
n 137.9024 0 m 137.9024 72 l S |
n 168.5474 0 m 168.5474 72 l S |
n 0 72 m 469.8898 72 l S |
n 0 0 m 469.8898 0 l S |
n 0 0 m 0 72 l S |
n 469.8898 0 m 469.8898 72 l S |
Q |
Q |
q |
1 0 0 1 62.69291 409.8236 cm |
Q |
q |
1 0 0 1 62.69291 379.8236 cm |
q |
BT 1 0 0 1 0 3 Tm 18 TL /F2 15 Tf 0 0 0 rg (Interconnect Bus Transaction) Tj T* ET |
Q |
Q |
q |
1 0 0 1 62.69291 367.8236 cm |
Q |
q |
1 0 0 1 62.69291 367.8236 cm |
Q |
q |
1 0 0 1 62.69291 355.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Both transmitter and receiver shall be synchronised to the '0' -) Tj (> '1' transition of CLK.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 349.8236 cm |
Q |
q |
1 0 0 1 62.69291 325.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 14 Tm .497988 Tw 12 TL /F1 10 Tf 0 0 0 rg (If RST is set to '1' upon the '0' -) Tj (> '1' transition of clock the transmitter shall terminate any active bus) Tj T* 0 Tw (transaction and set <) Tj (BUS_NAME) Tj (>) Tj (_STB to '0'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 319.8236 cm |
Q |
q |
1 0 0 1 62.69291 295.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 14 Tm 1.081488 Tw 12 TL /F1 10 Tf 0 0 0 rg (If RST is set to '1' upon the '0' -) Tj (> '1' transition of clock the receiver shall terminate any active bus) Tj T* 0 Tw (transaction and set <) Tj (BUS_NAME) Tj (>) Tj (_ACK to '0'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 289.8236 cm |
Q |
q |
1 0 0 1 62.69291 277.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (If RST is set to '0', normal operation shall commence as follows:) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 271.8236 cm |
Q |
q |
1 0 0 1 62.69291 259.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The transmitter may insert wait states on the bus by setting <) Tj (BUS_NAME) Tj (>) Tj (_STB '0'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 253.8236 cm |
Q |
q |
1 0 0 1 62.69291 241.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The transmitter shall set <) Tj (BUS_NAME) Tj (>) Tj (_STB to '1' to signify that data is valid.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 235.8236 cm |
Q |
q |
1 0 0 1 62.69291 223.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Once <) Tj (BUS_NAME) Tj (>) Tj (_STB has been set to '1', it shall remain at '1' until the transaction completes.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 217.8236 cm |
Q |
q |
1 0 0 1 62.69291 193.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 14 Tm 3.036905 Tw 12 TL /F1 10 Tf 0 0 0 rg (The transmitter shall ensure that <) Tj (BUS_NAME) Tj (> contains valid data for the entire period that) Tj T* 0 Tw (<) Tj (BUS_NAME) Tj (>) Tj (_STB is '1'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 187.8236 cm |
Q |
q |
1 0 0 1 62.69291 175.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The transmitter may set <) Tj (BUS_NAME) Tj (> to any value when <) Tj (BUS_NAME) Tj (>) Tj (_STB is '0'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 169.8236 cm |
Q |
q |
1 0 0 1 62.69291 157.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The receiver may insert wait states on the bus by setting <) Tj (BUS_NAME) Tj (>) Tj (_ACK to '0'.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 151.8236 cm |
Q |
q |
1 0 0 1 62.69291 139.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The receiver shall set <) Tj (BUS_NAME) Tj (>) Tj (_ACK to '1' to signify that it is ready to receive data.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 133.8236 cm |
Q |
q |
1 0 0 1 62.69291 121.8236 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Once <) Tj (BUS_NAME) Tj (>) Tj (_ACK has been set to '1', it shall remain at '1' until the transaction completes.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 115.8236 cm |
Q |
q |
1 0 0 1 62.69291 91.82362 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
BT 1 0 0 1 0 14 Tm 3.199069 Tw 12 TL /F1 10 Tf 0 0 0 rg (Whenever <) Tj (BUS_NAME) Tj (>) Tj (_STB is '1' and <) Tj (BUS_NAME) Tj (>) Tj (_ACK are '1', a bus transaction shall) Tj T* 0 Tw (complete on the following '0' -) Tj (> '1' transition of CLK.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 91.82362 cm |
Q |
|
endstream |
endobj |
% 'R31': class PDFStream |
31 0 obj |
% page stream |
<< /Length 4027 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
1 0 0 1 62.69291 277.7734 cm |
q |
q |
.96447 0 0 .96447 0 0 cm |
q |
1 0 0 1 6.6 6.843137 cm |
q |
.662745 .662745 .662745 RG |
.5 w |
.960784 .960784 .862745 rg |
n -6 -6 486 504 re B* |
Q |
q |
BT 1 0 0 1 0 482 Tm 12 TL /F3 10 Tf 0 0 0 rg (RST) Tj T* ( --------------------------------------------------------------) Tj T* ( - - - - - - - - - - - - - - -) Tj T* ( CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |) Tj T* ( - - - - - - - - - - - - - - - -) Tj T* T* ( ----- ------- ------------------------------------------------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj ( X VALID X) Tj T* ( ----- ------- ------------------------------------------------) Tj T* ( -------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_STB | |) Tj T* ( ----- ------------------------------------------------) Tj T* ( ---) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_ACK | |) Tj T* ( --------- ------------------------------------------------) Tj T* T* T* ( ^^^^ RX adds wait states) Tj T* T* ( ^^^^ Data transfers) Tj T* T* (RST) Tj T* ( --------------------------------------------------------------) Tj T* ( - - - - - - - - - - - - - - -) Tj T* ( CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |) Tj T* ( - - - - - - - - - - - - - - - -) Tj T* T* ( ----- ------- ------------------------------------------------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj ( X VALID X) Tj T* ( ----- ------- ------------------------------------------------) Tj T* ( ---) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_STB | |) Tj T* ( --------- ------------------------------------------------) Tj T* ( -------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_ACK | |) Tj T* ( ----- ------------------------------------------------) Tj T* T* T* ( ^^^^ TX adds wait states) Tj T* T* ( ^^^^ Data transfers) Tj T* ET |
Q |
Q |
Q |
Q |
Q |
q |
1 0 0 1 62.69291 263.7734 cm |
Q |
q |
1 0 0 1 62.69291 263.7734 cm |
Q |
q |
1 0 0 1 62.69291 251.7734 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Both the transmitter and receiver may commence a new transaction without inserting any wait states.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 251.7734 cm |
Q |
q |
1 0 0 1 62.69291 92.15872 cm |
q |
q |
.96447 0 0 .96447 0 0 cm |
q |
1 0 0 1 6.6 6.843137 cm |
q |
.662745 .662745 .662745 RG |
.5 w |
.960784 .960784 .862745 rg |
n -6 -6 486 156 re B* |
Q |
q |
BT 1 0 0 1 0 134 Tm 12 TL /F3 10 Tf 0 0 0 rg (RST) Tj T* ( --------------------------------------------------------------) Tj T* ( - - - - - - - - - - - - - - -) Tj T* ( CLK | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |) Tj T* ( - - - - - - - - - - - - - - - -) Tj T* T* ( ----- ------- ---- ---- --------------------------------------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj ( X D0 X D1 X D2 X) Tj T* ( ----- ------- ---- ---- --------------------------------------) Tj T* ( -------------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_STB | |) Tj T* ( --------- --------------------------------------) Tj T* ET |
Q |
Q |
Q |
Q |
Q |
|
endstream |
endobj |
% 'R32': class PDFStream |
32 0 obj |
% page stream |
<< /Length 2134 >> |
stream |
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET |
q |
1 0 0 1 62.69291 659.7933 cm |
q |
q |
.868237 0 0 .868237 0 0 cm |
q |
1 0 0 1 6.6 7.601613 cm |
q |
.662745 .662745 .662745 RG |
.5 w |
.960784 .960784 .862745 rg |
n -6 -6 540 120 re B* |
Q |
q |
BT 1 0 0 1 0 98 Tm 12 TL /F3 10 Tf 0 0 0 rg ( -----------------) Tj T* (<) Tj (BUS_NAME) Tj (>) Tj (_ACK | |) Tj T* ( ----- --------------------------------------) Tj T* T* ( ^^^^ TX adds wait states) Tj T* T* ( ^^^^ Data transfers) Tj T* T* ( ^^^^ STB and ACK needn't return to 0 between data words) Tj T* ET |
Q |
Q |
Q |
Q |
Q |
q |
1 0 0 1 62.69291 645.7933 cm |
Q |
q |
1 0 0 1 62.69291 645.7933 cm |
Q |
q |
1 0 0 1 62.69291 621.7933 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .483984 Tw (The receiver may delay a transaction by inserting wait states until the transmitter indicates that data) Tj T* 0 Tw (is available.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 615.7933 cm |
Q |
q |
1 0 0 1 62.69291 591.7933 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.496235 Tw (The transmitter shall not delay a transaction by inserting wait states until the receiver is ready to) Tj T* 0 Tw (accept data.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 585.7933 cm |
Q |
q |
1 0 0 1 62.69291 561.7933 cm |
0 0 0 rg |
BT /F1 10 Tf 12 TL ET |
q |
1 0 0 1 6 9 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET |
Q |
Q |
q |
1 0 0 1 23 -3 cm |
q |
0 0 0 rg |
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .853984 Tw (Deadlock would occur if both the transmitter and receiver delayed a transaction until the other was) Tj T* 0 Tw (ready.) Tj T* ET |
Q |
Q |
q |
Q |
Q |
q |
1 0 0 1 62.69291 561.7933 cm |
Q |
|
endstream |
endobj |
% 'R33': class PDFPageLabels |
33 0 obj |
% 'R25': class PDFPageLabels |
25 0 obj |
% Document Root |
<< /Nums [ 0 |
34 0 R |
26 0 R |
1 |
35 0 R |
2 |
36 0 R |
3 |
37 0 R |
4 |
38 0 R ] >> |
27 0 R ] >> |
endobj |
% 'R34': class PDFPageLabel |
34 0 obj |
% 'R26': class PDFPageLabel |
26 0 obj |
% None |
<< /S /D |
/St 1 >> |
endobj |
% 'R35': class PDFPageLabel |
35 0 obj |
% 'R27': class PDFPageLabel |
27 0 obj |
% None |
<< /S /D |
/St 2 >> |
endobj |
% 'R36': class PDFPageLabel |
36 0 obj |
% None |
<< /S /D |
/St 3 >> |
endobj |
% 'R37': class PDFPageLabel |
37 0 obj |
% None |
<< /S /D |
/St 4 >> |
endobj |
% 'R38': class PDFPageLabel |
38 0 obj |
% None |
<< /S /D |
/St 5 >> |
endobj |
xref |
0 39 |
0 28 |
0000000000 65535 f |
0000000113 00000 n |
0000000233 00000 n |
2121,46 → 1080,35
0000000585 00000 n |
0000000820 00000 n |
0000000979 00000 n |
0000001278 00000 n |
0000001557 00000 n |
0000001836 00000 n |
0000002115 00000 n |
0000002396 00000 n |
0000002555 00000 n |
0000002803 00000 n |
0000002929 00000 n |
0000003130 00000 n |
0000003323 00000 n |
0000003510 00000 n |
0000003697 00000 n |
0000003885 00000 n |
0000004067 00000 n |
0000004296 00000 n |
0000004477 00000 n |
0000004653 00000 n |
0000004889 00000 n |
0000005066 00000 n |
0000005264 00000 n |
0000005436 00000 n |
0000005576 00000 n |
0000012147 00000 n |
0000020137 00000 n |
0000031577 00000 n |
0000035703 00000 n |
0000037940 00000 n |
0000038085 00000 n |
0000038162 00000 n |
0000038239 00000 n |
0000038316 00000 n |
0000038393 00000 n |
0000001292 00000 n |
0000001581 00000 n |
0000001880 00000 n |
0000002038 00000 n |
0000002286 00000 n |
0000002412 00000 n |
0000002613 00000 n |
0000002806 00000 n |
0000002993 00000 n |
0000003180 00000 n |
0000003368 00000 n |
0000003550 00000 n |
0000003779 00000 n |
0000003960 00000 n |
0000004136 00000 n |
0000004311 00000 n |
0000004426 00000 n |
0000010997 00000 n |
0000017056 00000 n |
0000017162 00000 n |
0000017239 00000 n |
trailer |
<< /ID |
% ReportLab generated PDF document -- digest (http://www.reportlab.com) |
[( \342\260\235\2733\030XH\203\354l\324\302\225\357) ( \342\260\235\2733\030XH\203\354l\324\302\225\357)] |
[(O\333bF9X\2114\362\325\341\253vN\276\034) (O\333bF9X\2114\362\325\341\253vN\276\034)] |
|
/Info 12 0 R |
/Root 11 0 R |
/Size 39 >> |
/Info 10 0 R |
/Root 9 0 R |
/Size 28 >> |
startxref |
38440 |
17286 |
%%EOF |
/tcp_socket/trunk/chips2/README.rst
4,29 → 4,49
Introduction |
------------ |
|
Chips is a fast and simple way to design Logic Devices. You can think of |
a Chips design as a network on a chip. Many C Programs are all executing in |
parallel, streaming data between each other using fast on-chip connections. |
*Chips* makes FPGA design quicker and easier. *Chips* isn't an HDL like VHDL or |
Verilog, its a different way of doing things. In *Chips*, you design components |
using a simple subset of the C programming language. There's a Python API to |
connect C components together using fast data streams to form complex, parallel |
systems all in a single chip. You don't need to worry about clocks, resets, |
or timing. You don't need to follow special templates to make your code |
synthesisable. All that's done for you! |
|
The interface is simple, design components using C, and connect them together |
to form a chip using a simple python API. Behind the scenes, chips will comvert |
C programs into efficient verilog implementation based on interconnected Finite |
State Machines, or custom CPUs. |
|
Test |
---- |
$ cd test_suite |
$ test_c2verilog |
|
:: |
|
$ cd test_suite |
$ test_c2verilog |
|
Install |
------- |
$ sudo python setup install |
|
:: |
|
$ sudo python setup install |
|
Documentation |
------------- |
|
:: |
|
$ cd docs |
$ make html |
|
To Prepare a Source Distribution |
-------------------------------- |
$ python setup sdist |
|
:: |
|
$ python setup sdist |
|
Distribution is contained in ./dist |
|
To Create a Windows Distribution |
-------------------------------- |
$ python setup bdist_wininst |
|
:: |
|
$ python setup bdist_wininst |
/tcp_socket/trunk/chips2/chips/api/api.py
7,7 → 7,7
|
"""A Chip represents a collection of components connected together by |
wires. As you create wires and component instances, you will need to tell |
them which chip they belong to. Once you have a completed chip you can: |
them which chip they belong to. Once you have a completed chip you can: |
|
+ Implement it in verilog - using the generate_verilog method |
+ Automatically generate documentation - using the generate_document method |
155,10 → 155,9
|
os.system("iverilog -o %s %s"%(self.name + "_tb", files)) |
if run: |
return os.system("vvp %s"%(self.name + "_tb")) |
return os.system("vvp %s"%(self.name + "_tb")) |
|
|
|
class Component: |
|
"""You can use the component class to add new components to your chip. |
166,7 → 165,7
component when you create it. The Chips API will automatically compile the |
C code, and extract the name, inputs, outputs and the documentation from the |
code. |
|
|
If you want to keep the C file seperate you can read it in from a file like |
this:: |
|
174,7 → 173,7
|
Once you have defined a component you can use the __call__ method to create |
an instance of the component. |
|
|
""" |
|
def __init__(self, C_file): |
192,11 → 191,33
return _Instance(self, chip, inputs, outputs) |
|
|
class VerilogComponent(Component): |
|
"""You can use the component class to add new components to your chip. |
This version of Component allows components to be written directly in verilog. |
|
my_component = Adder("adder", inputs = ["a", "b"], outputs = ["z"]) |
|
Once you have defined a component you can use the __call__ method to create |
an instance of the component. |
|
""" |
|
def __init__(self, name, inputs, outputs, docs): |
|
"""Takes a single string argument, the C code to compile""" |
|
self.name = name |
self.inputs = inputs |
self.outputs = outputs |
self.docs = docs |
|
|
class _Instance: |
|
"""This class represents a component instance. You don't normaly need to |
create them directly, use the Component.__call__ method.""" |
|
|
def __init__(self, component, chip, inputs, outputs): |
self.chip = chip |
self.inputs = inputs |
tcp_socket/trunk/chips2/chips/api
Property changes :
Added: svn:ignore
## -0,0 +1 ##
+*.bak
Index: tcp_socket/trunk/chips2/chips/compiler/builtins.py
===================================================================
--- tcp_socket/trunk/chips2/chips/compiler/builtins.py (revision 3)
+++ tcp_socket/trunk/chips2/chips/compiler/builtins.py (revision 4)
@@ -101,7 +101,7 @@
long unsigned long_unsigned_modulo_xxxx(long unsigned dividend, long unsigned divisor){
long_unsigned_divide_xxxx(dividend, divisor);
- return long_unsigned_modulo_yyyy;
+ return long_unsigned_modulo_yyyy;
}
long int long_modulo_xxxx(long int dividend, long int divisor){
@@ -117,4 +117,64 @@
return modulo;
}
+int float_equal_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a == b;
+}
+
+int float_ne_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a != b;
+}
+
+int float_lt_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a < b;
+}
+
+int float_gt_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a > b;
+}
+
+int float_le_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a <= b;
+}
+
+int float_ge_xxxx(long int a, long int b){
+ if (a < 0) {
+ a = 0x80000000ul - a;
+ }
+ if (b < 0) {
+ b = 0x80000000ul - b;
+ }
+ return a >= b;
+}
+
"""
/tcp_socket/trunk/chips2/chips/compiler/parse_tree.py
2,671 → 2,1157
__copyright__ = "Copyright (C) 2012, Jonathan P Dawson" |
__version__ = "0.1" |
|
import struct |
|
class NotConstant(Exception): |
pass |
pass |
|
def value(expression): |
|
"""If an expression can be evaluated at compile time, return the value""" |
def constant_fold(expression): |
|
if hasattr(expression, "value"): |
return truncate(expression.value()) |
else: |
raise NotConstant |
"""Replace an expression with a constant if possible""" |
|
def constant_fold(expression): |
try: |
return Constant(expression.value(), expression.type_(), expression.size(), expression.signed()) |
except NotConstant: |
return expression |
|
"""Replace an expression with a constant if possible""" |
|
try: |
return Constant(value(expression)) |
except NotConstant: |
return expression |
class Process: |
|
def truncate(number): |
def generate(self): |
instructions = [] |
for function in self.functions: |
if hasattr(function, "declarations"): |
instructions.extend(function.generate()) |
|
"""Truncate arithmetic results to the target number of bits""" |
instructions.append( |
{"op" :"jmp_and_link", |
"dest" :self.main.return_address, |
"label":"function_%s"%id(self.main)}) |
|
#sign = number & 0x10000 |
#number = number & 0xffff |
#if sign: |
#number = ~0xffff | number |
return int(number) |
instructions.append( |
{"op":"stop"}) |
|
class Process: |
def generate(self): |
instructions = [] |
for function in self.functions: |
if hasattr(function, "declarations"): |
instructions.extend(function.generate()) |
instructions.append({"op" :"jmp_and_link", |
"dest" :self.main.return_address, |
"label":"function_%s"%id(self.main)}) |
instructions.append({"op":"stop"}) |
for function in self.functions: |
if not hasattr(function, "declarations"): |
instructions.extend(function.generate()) |
return instructions |
for function in self.functions: |
if not hasattr(function, "declarations"): |
instructions.extend(function.generate()) |
return instructions |
|
|
class Function: |
def generate(self): |
instructions = [] |
instructions.append({"op":"label", "label":"function_%s"%id(self)}) |
instructions.extend(self.statement.generate()) |
if not hasattr(self, "return_value"): |
instructions.append({"op":"jmp_to_reg", "src":self.return_address}) |
return instructions |
|
def generate(self): |
instructions = [] |
instructions.append({"op":"label", "label":"function_%s"%id(self)}) |
instructions.extend(self.statement.generate()) |
if not hasattr(self, "return_value"): |
instructions.append({"op":"jmp_to_reg", "src":self.return_address}) |
return instructions |
|
|
class Break: |
def generate(self): return [{"op":"goto", "label":"break_%s"%id(self.loop)}] |
|
def generate(self): return [ |
{"op":"goto", "label":"break_%s"%id(self.loop)}] |
|
|
class Continue: |
def generate(self): return [{"op":"goto", "label":"continue_%s"%id(self.loop)}] |
|
def generate(self): return [ |
{"op":"goto", "label":"continue_%s"%id(self.loop)}] |
|
|
class Assert: |
def generate(self): |
result = self.allocator.new(self.expression.size) |
instructions = self.expression.generate(result) |
self.allocator.free(result) |
instructions.append({"op":"assert", "src":result, "line":self.line, "file":self.filename}) |
return instructions |
|
def generate(self): |
result = self.allocator.new(self.expression.size()) |
instructions = self.expression.generate(result, self.allocator) |
self.allocator.free(result) |
|
instructions.append( |
{"op":"assert", |
"src":result, |
"line":self.line, |
"file":self.filename}) |
|
return instructions |
|
|
class Return: |
def generate(self): |
if hasattr(self, "expression"): |
instructions = self.expression.generate(self.function.return_value) |
else: |
instructions = [] |
instructions.append({"op":"jmp_to_reg", "src":self.function.return_address}) |
return instructions |
|
def generate(self): |
if hasattr(self, "expression"): |
|
result = self.allocator.new(self.function.size) |
instructions=self.function.return_value.copy( |
self.expression, |
result, |
self.allocator) |
self.allocator.free(result) |
|
else: |
instructions = [] |
|
instructions.append( |
{"op":"jmp_to_reg", |
"src":self.function.return_address}) |
|
return instructions |
|
|
class Report: |
def generate(self): |
result = self.allocator.new(self.expression.size) |
instructions = self.expression.generate(result) |
self.allocator.free(result) |
instructions.append({"op":"report", |
"src":result, |
"line":self.line, |
"file":self.filename, |
"signed":self.expression.signed}) |
return instructions |
|
def generate(self): |
result = self.allocator.new(self.expression.size()) |
instructions = self.expression.generate(result, self.allocator) |
self.allocator.free(result) |
|
instructions.append( |
{"op":"report", |
"src":result, |
"line":self.line, |
"file":self.filename, |
"type":self.expression.type_(), |
"signed":self.expression.signed()}) |
|
return instructions |
|
|
class WaitClocks: |
def generate(self): |
result = self.allocator.new(self.expression.size) |
instructions = self.expression.generate(result) |
self.allocator.free(result) |
instructions.append({"op":"wait_clocks", "src":result}) |
return instructions |
|
def generate(self): |
result = self.allocator.new(self.expression.size()) |
instructions = self.expression.generate(result, self.allocator) |
self.allocator.free(result) |
instructions.append({"op":"wait_clocks", "src":result}) |
return instructions |
|
|
class If: |
def generate(self): |
try: |
if value(self.expression): |
return self.true_statement.generate() |
else: |
if self.false_statement: |
return self.false_statement.generate() |
else: |
return [] |
except NotConstant: |
result = self.allocator.new(self.expression.size) |
instructions = [] |
instructions.extend(self.expression.generate(result)) |
instructions.append({"op" :"jmp_if_false", |
"src" :result, |
"label":"else_%s"%id(self)}) |
self.allocator.free(result) |
instructions.extend(self.true_statement.generate()) |
instructions.append({"op":"goto", "label":"end_%s"%id(self)}) |
instructions.append({"op":"label", "label":"else_%s"%id(self)}) |
if self.false_statement: |
instructions.extend(self.false_statement.generate()) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
return instructions |
|
def generate(self): |
|
try: |
|
if self.expression.value(): |
return self.true_statement.generate() |
else: |
if self.false_statement: |
return self.false_statement.generate() |
else: |
return [] |
|
except NotConstant: |
|
result = self.allocator.new(self.expression.size()) |
instructions = [] |
instructions.extend(self.expression.generate(result, self.allocator)) |
|
instructions.append( |
{"op" : "jmp_if_false", |
"src" : result, |
"label" : "else_%s"%id(self)}) |
|
self.allocator.free(result) |
instructions.extend(self.true_statement.generate()) |
instructions.append({"op":"goto", "label":"end_%s"%id(self)}) |
instructions.append({"op":"label", "label":"else_%s"%id(self)}) |
if self.false_statement: |
instructions.extend(self.false_statement.generate()) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
return instructions |
|
|
class Switch: |
def generate(self): |
result = self.allocator.new(self.expression.size) |
test = self.allocator.new(self.expression.size) |
instructions = self.expression.generate(result) |
for value, case in self.cases.iteritems(): |
instructions.append({"op":"==", "dest":test, "src":result, "right":value, "signed":True}) |
instructions.append({"op":"jmp_if_true", "src":test, "label":"case_%s"%id(case)}) |
if hasattr(self, "default"): |
instructions.append({"op":"goto", "label":"case_%s"%id(self.default)}) |
self.allocator.free(result) |
self.allocator.free(test) |
instructions.extend(self.statement.generate()) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
def generate(self): |
result = self.allocator.new(self.expression.size()) |
test = self.allocator.new(self.expression.size()) |
instructions = self.expression.generate(result, self.allocator) |
for value, case in self.cases.iteritems(): |
|
instructions.append( |
{"op":"==", |
"dest":test, |
"src":result, |
"right":value, |
"size": self.expression.size(), |
"signed":True}) |
|
instructions.append( |
{"op":"jmp_if_true", |
"src":test, |
"label":"case_%s"%id(case)}) |
|
if hasattr(self, "default"): |
|
instructions.append( |
{"op":"goto", |
"label":"case_%s"%id(self.default)}) |
|
self.allocator.free(result) |
self.allocator.free(test) |
instructions.extend(self.statement.generate()) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
|
class Case: |
def generate(self): |
return [{"op":"label", "label":"case_%s"%id(self)}] |
|
def generate(self): |
return [{"op":"label", "label":"case_%s"%id(self)}] |
|
|
class Default: |
def generate(self): |
return [{"op":"label", "label":"case_%s"%id(self)}] |
|
def generate(self): |
return [{"op":"label", "label":"case_%s"%id(self)}] |
|
|
class Loop: |
def generate(self): |
instructions = [{"op":"label", "label":"begin_%s"%id(self)}] |
instructions.append({"op":"label", "label":"continue_%s"%id(self)}) |
instructions.extend(self.statement.generate()) |
instructions.append({"op":"goto", "label":"begin_%s"%id(self)}) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
def generate(self): |
instructions = [{"op":"label", "label":"begin_%s"%id(self)}] |
instructions.append({"op":"label", "label":"continue_%s"%id(self)}) |
instructions.extend(self.statement.generate()) |
instructions.append({"op":"goto", "label":"begin_%s"%id(self)}) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
|
class For: |
def generate(self): |
instructions = [] |
if hasattr(self, "statement1"): |
instructions.extend(self.statement1.generate()) |
instructions.append({"op":"label", "label":"begin_%s"%id(self)}) |
if hasattr(self, "expression"): |
result = self.allocator.new(self.expression.size) |
instructions.extend(self.expression.generate(result)) |
instructions.append({"op":"jmp_if_false", "src":result, "label":"end_%s"%id(self)}) |
self.allocator.free(result) |
instructions.extend(self.statement3.generate()) |
instructions.append({"op":"label", "label":"continue_%s"%id(self)}) |
if hasattr(self, "statement2"): |
instructions.extend(self.statement2.generate()) |
instructions.append({"op":"goto", "label":"begin_%s"%id(self)}) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
def generate(self): |
instructions = [] |
if hasattr(self, "statement1"): |
instructions.extend(self.statement1.generate()) |
instructions.append({"op":"label", "label":"begin_%s"%id(self)}) |
if hasattr(self, "expression"): |
result = self.allocator.new(self.expression.size()) |
|
instructions.extend( |
self.expression.generate(result, self.allocator)) |
|
instructions.append( |
{"op":"jmp_if_false", |
"src":result, |
"label":"end_%s"%id(self)}) |
|
self.allocator.free(result) |
instructions.extend(self.statement3.generate()) |
instructions.append({"op":"label", "label":"continue_%s"%id(self)}) |
if hasattr(self, "statement2"): |
instructions.extend(self.statement2.generate()) |
instructions.append({"op":"goto", "label":"begin_%s"%id(self)}) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
instructions.append({"op":"label", "label":"break_%s"%id(self)}) |
return instructions |
|
|
class Block: |
def generate(self): |
instructions = [] |
for statement in self.statements: |
instructions.extend(statement.generate()) |
return instructions |
|
def generate(self): |
instructions = [] |
for statement in self.statements: |
instructions.extend(statement.generate()) |
return instructions |
|
|
class CompoundDeclaration: |
def __init__(self, declarations): |
self.declarations = declarations |
|
def generate(self): |
instructions = [] |
for declaration in self.declarations: |
instructions.extend(declaration.generate()); |
return instructions |
def __init__(self, declarations): |
self.declarations = declarations |
|
def generate(self): |
instructions = [] |
for declaration in self.declarations: |
instructions.extend(declaration.generate()); |
return instructions |
|
|
class VariableDeclaration: |
def __init__(self, allocator, initializer, name, type_, size, signed): |
self.initializer = initializer |
self.allocator = allocator |
self.type_ = type_ |
self.size = size |
self.signed = signed |
self.name = name |
def instance(self): |
register = self.allocator.new(self.size, "variable "+self.name) |
return VariableInstance(register, self.initializer, self.type_, self.size, self.signed) |
|
def __init__(self, allocator, initializer, name, type_, size, signed, const): |
self.initializer = initializer |
self.allocator = allocator |
self._type = type_ |
self._size = size |
self._signed = signed |
self._const = const |
self.name = name |
|
def instance(self): |
register = self.allocator.new(self.size(), "variable "+self.name) |
|
return VariableInstance( |
register, |
self.initializer, |
self.type_(), |
self.size(), |
self.signed(), |
self.const(), |
self.allocator) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
def const(self): |
return self._const |
|
|
class VariableInstance: |
def __init__(self, register, initializer, type_, size, signed): |
self.register = register |
self.type_ = type_ |
self.initializer = initializer |
self.size = size |
self.signed = signed |
def generate(self): |
return self.initializer.generate(self.register) |
|
def __init__(self, register, initializer, type_, size, signed, const, allocator): |
self.register = register |
self._type = type_ |
self.initializer = initializer |
self._size = size |
self._signed = signed |
self._const = const |
self.allocator = allocator |
|
def generate(self): |
return self.initializer.generate(self.register, self.allocator) |
|
def reference(self): |
return Variable(self) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
def const(self): |
return self._const |
|
|
class ArrayDeclaration: |
def __init__(self, |
allocator, |
size, |
type_, |
element_type, |
element_size, |
element_signed, |
initializer = None, |
initialize_memory = False): |
|
self.allocator = allocator |
self.type_ = type_ |
self.size = size |
self.signed = False |
self.element_type = element_type |
self.element_size = element_size |
self.element_signed = element_signed |
self.initializer = initializer |
self.initialize_memory = initialize_memory |
def __init__(self, |
allocator, |
size, |
type_, |
element_type, |
element_size, |
element_signed, |
initializer = None, |
initialize_memory = False): |
|
def instance(self): |
location = self.allocator.new_array(self.size, self.initializer, self.element_size) |
register = self.allocator.new(2, "array") |
return ArrayInstance(location, |
register, |
self.size, |
self.type_, |
self.initializer, |
self.initialize_memory, |
self.element_type, |
self.element_size, |
self.element_signed) |
self.allocator = allocator |
self._type = type_ |
self._size = size |
self._signed = False |
self.element_type = element_type |
self.element_size = element_size |
self.element_signed = element_signed |
self.initializer = initializer |
self.initialize_memory = initialize_memory |
|
def instance(self): |
|
location = self.allocator.new_array( |
self.size(), |
self.initializer, |
self.element_size) |
|
register = self.allocator.new(2, "array") |
|
return ArrayInstance( |
location, |
register, |
self.size(), |
self.type_(), |
self.initializer, |
self.initialize_memory, |
self.element_type, |
self.element_size, |
self.element_signed) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
class ArrayInstance: |
def __init__(self, |
location, |
register, |
size, |
type_, |
initializer, |
initialize_memory, |
element_type, |
element_size, |
element_signed): |
|
self.register = register |
self.location = location |
self.type_ = type_ |
self.size = size |
self.signed = False |
self.element_type = element_type |
self.element_size = element_size |
self.element_signed = element_signed |
self.initializer = initializer |
self.initialize_memory = initialize_memory |
def __init__(self, |
location, |
register, |
size, |
type_, |
initializer, |
initialize_memory, |
element_type, |
element_size, |
element_signed): |
|
def generate(self, result=None): |
instructions = [] |
#If initialize memory is true, the memory content will initialised (as at configuration time) |
#If initialize memory is false, then the memory will need to be filled by the program. |
if not self.initialize_memory and self.initializer is not None: |
location = 0 |
for value in self.initializer: |
instructions.append({ |
"op":"memory_write_literal", |
"address":location, |
"value":value, |
"element_size":self.element_size |
}) |
location += 1 |
instructions.append({ |
"op":"literal", |
"literal":self.location, |
"dest":self.register |
}) |
#this bit here is to make string literals work, |
#in this case an array instance is created implicitly, |
#but the value of the expression is the array register. |
if result is not None and result != self.register: |
instructions.append({ |
"op" :"move", |
"dest":result, |
"src" :self.register |
}) |
return instructions |
self.register = register |
self.location = location |
self._type = type_ |
self._size = size * element_size |
self._signed = False |
self.element_type = element_type |
self.element_size = element_size |
self.element_signed = element_signed |
self.initializer = initializer |
self.initialize_memory = initialize_memory |
|
def generate(self, result=None): |
instructions = [] |
#If initialize memory is true, the memory content will initialised (as at configuration time) |
#If initialize memory is false, then the memory will need to be filled by the program. |
if not self.initialize_memory and self.initializer is not None: |
location=self.location |
for value in self.initializer: |
|
instructions.append( |
{"op":"memory_write_literal", |
"address":location, |
"value":value, |
"element_size":self.element_size}) |
location += 1 |
|
instructions.append( |
{"op":"literal", |
"literal":self.location, |
"dest":self.register}) |
|
return instructions |
|
|
def reference(self): |
return Array(self) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
|
class StructDeclaration: |
def __init__(self, members): |
self.members = members |
|
def instance(self): |
instances = {} |
for name, declaration in self.members.iteritems(): |
instances[name] = declaration.instance() |
return StructInstance(instances) |
def __init__(self, members): |
self.members = members |
self._type = "struct {%s}"%"; ".join( |
[i.type_() for i in members.values()]) |
self._size = sum([i.size() for i in members.values()]) |
self._signed = False |
|
def instance(self): |
instances = {} |
for name, declaration in self.members.iteritems(): |
instances[name] = declaration.instance() |
return StructInstance(instances) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
|
class StructInstance: |
def __init__(self, members): |
self.members = members |
self.type_ = "struct" |
|
def generate(self): |
instructions = [] |
for member in self.members.values(): |
instructions.extend(member.generate()) |
return instructions |
def __init__(self, members): |
self.members = members |
self._type = "struct {%s}"%"; ".join( |
[i.type_() for i in members.values()]) |
self._size = sum([i.size() for i in members.values()]) |
self._signed = False |
|
class Argument: |
def __init__(self, |
name, |
type_, |
size, |
signed, |
parser, |
element_type, |
element_size, |
element_signed): |
self.type_=type_ |
self.size=size |
self.signed=signed |
self.element_type = element_type |
self.element_size = element_size |
self.element_signed = element_signed |
parser.scope[name] = self |
self.register = parser.allocator.new(size, "function argument "+name) |
def generate(self): return [] |
def generate(self): |
instructions = [] |
for member in self.members.values(): |
instructions.extend(member.generate()) |
return instructions |
|
def reference(self): |
return Struct(self) |
|
def type_(self): |
return self._type |
|
def size(self): |
return self._size |
|
def signed(self): |
return self._signed |
|
|
class DiscardExpression: |
def __init__(self, expression, allocator): |
self.expression = expression |
self.allocator = allocator |
|
def generate(self): |
result = self.allocator.new(self.expression.size) |
instructions = self.expression.generate(result) |
self.allocator.free(result) |
return instructions |
def __init__(self, expression, allocator): |
self.expression = expression |
self.allocator = allocator |
|
#...then Expressions... |
def generate(self): |
result = self.allocator.new(self.expression.size()) |
instructions = self.expression.generate(result, self.allocator) |
self.allocator.free(result) |
return instructions |
|
#Expressions generate methods accept a result argument. |
#This indicates which register to put the result in. |
|
#Expressions may also provide a value method which returns the value of an xpression |
#if it can be calculated at compile time. |
class Expression: |
|
def __init__(self, t, size, signed): |
self.type_var=t |
self.size_var=size |
self.signed_var=signed |
|
def type_(self): |
return self.type_var |
|
def size(self): |
return self.size_var |
|
def signed(self): |
return self.signed_var |
|
def value(self): |
raise NotConstant |
|
def const(self): |
return True |
|
def int_value(self): |
if self.type_() == "float": |
byte_value = struct.pack(">f", self.value()) |
value = ord(byte_value[0]) << 24 |
value |= ord(byte_value[1]) << 16 |
value |= ord(byte_value[2]) << 8 |
value |= ord(byte_value[3]) |
return value |
else: |
return self.value() |
|
|
class Object(Expression): |
|
def __init__(self, instance): |
Expression.__init__(self, instance.type_(), instance.size(), instance.signed()) |
self.instance = instance |
|
def value(self): |
raise NotConstant |
|
def const(self): |
return False |
|
|
def AND(left, right): |
return ANDOR(left, right, "jmp_if_false") |
return ANDOR(left, right, "jmp_if_false") |
|
|
def OR(left, right): |
return ANDOR(left, right, "jmp_if_true") |
return ANDOR(left, right, "jmp_if_true") |
|
class ANDOR: |
def __init__(self, left, right, op): |
self.left = constant_fold(left) |
self.right = constant_fold(right) |
self.op = op |
self.type_ = "int" |
self.size = left.size |
self.signed = left.signed |
|
def generate(self, result): |
instructions = self.left.generate(result) |
instructions.append({"op":self.op, "src":result, "label":"end_%s"%id(self)}) |
instructions.extend(self.right.generate(result)) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
return instructions |
class ANDOR(Expression): |
|
def value(self): |
if self.op == "jmp_if_false": |
return value(self.left) and value(self.right) |
def __init__(self, left, right, op): |
self.left = constant_fold(left) |
self.right = constant_fold(right) |
self.op = op |
|
Expression.__init__( |
self, |
"int", |
max(left.size(), right.size()), |
left.signed() and right.signed()) |
|
def generate(self, result, allocator): |
instructions = self.left.generate(result, allocator) |
instructions.append({"op":self.op, "src":result, "label":"end_%s"%id(self)}) |
instructions.extend(self.right.generate(result, allocator)) |
instructions.append({"op":"label", "label":"end_%s"%id(self)}) |
return instructions |
|
def value(self): |
if self.op == "jmp_if_false": |
return self.left.value() and self.right.value() |
else: |
return self.left.value() or self.right.value() |
|
|
def get_binary_type(left, right, operator): |
""" |
Given the type of the left and right hand operators, determine the type |
of the resulting value. |
""" |
|
binary_types = { |
"float,float,+" : ("float", 4, True), |
"float,float,-" : ("float", 4, True), |
"float,float,*" : ("float", 4, True), |
"float,float,/" : ("float", 4, True), |
"float,float,==" : ("int", 4, True), |
"float,float,!=" : ("int", 4, True), |
"float,float,<" : ("int", 4, True), |
"float,float,>" : ("int", 4, True), |
"float,float,<=" : ("int", 4, True), |
"float,float,>=" : ("int", 4, True)} |
|
signature = ",".join([left.type_(), right.type_(), operator]) |
if signature in binary_types: |
type_, size, signed = binary_types[signature] |
else: |
return value(self.left) or value(self.right) |
type_ = left.type_() |
size = max(left.size(), right.size()) |
signed = left.signed() and right.signed() |
|
class Binary: |
def __init__(self, operator, left, right, allocator): |
self.left = constant_fold(left) |
self.right = constant_fold(right) |
self.operator = operator |
self.allocator = allocator |
self.type_ = self.left.type_ |
self.size = max(left.size, right.size) |
self.signed = left.signed and right.signed |
return type_, size, signed |
|
def generate(self, result): |
new_register = self.allocator.new(self.size) |
try: |
instructions = self.right.generate(new_register) |
instructions.append({"op" :self.operator, |
"dest":result, |
"left":value(self.left), |
"src":new_register, |
"signed":self.signed}) |
except NotConstant: |
try: |
instructions = self.left.generate(new_register) |
instructions.append({"op" :self.operator, |
"dest" :result, |
"src" :new_register, |
"right":value(self.right), |
"signed" :self.signed}) |
except NotConstant: |
instructions = self.left.generate(new_register) |
right = self.allocator.new(self.right.size) |
instructions.extend(self.right.generate(right)) |
instructions.append({"op" :self.operator, |
"dest":result, |
"src" :new_register, |
"srcb":right, |
"signed":self.signed}) |
self.allocator.free(right) |
self.allocator.free(new_register) |
return instructions |
class Binary(Expression): |
|
def value(self): |
return eval("%s %s %s"%(value(self.left), self.operator, value(self.right))) |
def __init__(self, operator, left, right): |
self.left = constant_fold(left) |
self.right = constant_fold(right) |
self.operator = operator |
type_, size, signed = get_binary_type(left, right, operator) |
|
Expression.__init__( |
self, |
type_, |
size, |
signed) |
|
def generate(self, result, allocator): |
new_register = allocator.new(self.size()) |
try: |
instructions = self.right.generate(new_register, allocator) |
|
instructions.append( |
{"op" :self.operator, |
"dest":result, |
"left":self.left.int_value(), |
"src":new_register, |
"type":self.type_(), |
"size":self.size(), |
"signed":self.signed()}) |
|
except NotConstant: |
try: |
instructions = self.left.generate(new_register, allocator) |
|
instructions.append( |
{"op" :self.operator, |
"dest" :result, |
"src" :new_register, |
"right":self.right.int_value(), |
"type":self.type_(), |
"size":self.size(), |
"signed" :self.signed()}) |
|
except NotConstant: |
instructions = self.left.generate(new_register, allocator) |
right = allocator.new(self.size()) |
instructions.extend(self.right.generate(right, allocator)) |
|
instructions.append( |
{"op" :self.operator, |
"dest":result, |
"src" :new_register, |
"srcb":right, |
"type":self.type_(), |
"size":self.size(), |
"signed":self.signed()}) |
|
allocator.free(right) |
allocator.free(new_register) |
return instructions |
|
def value(self): |
|
if self.type_() == "int": |
|
return int(eval("%s %s %s"%( |
self.left.value(), |
self.operator, |
self.right.value()))) |
|
else: |
|
return float(eval("%s %s %s"%( |
self.left.value(), |
self.operator, |
self.right.value()))) |
|
|
|
def SizeOf(expression): |
return Constant(expression.size) |
return Constant(expression.size()) |
|
class Unary: |
def __init__(self, operator, expression, allocator): |
self.expression = constant_fold(expression) |
self.operator = operator |
self.type_ = self.expression.type_ |
self.size = expression.size |
self.signed = expression.signed |
self.allocator = allocator |
|
def generate(self, result): |
new_register = self.allocator.new(self.size) |
instructions = self.expression.generate(new_register) |
instructions.extend([{"op":self.operator, "dest":result, "src":new_register}]) |
self.allocator.free(new_register) |
return instructions |
class IntToFloat(Expression): |
|
def value(self): |
return eval("%s%s"%(self.operator, value(self.expression))) |
def __init__(self, expression): |
self.expression = constant_fold(expression) |
|
class FunctionCall: |
def generate(self, result): |
instructions = [] |
for expression, argument in zip(self.arguments, self.function.arguments): |
instructions.extend(expression.generate(argument.register)) |
instructions.append({"op" :"jmp_and_link", |
"dest" :self.function.return_address, |
"label":"function_%s"%id(self.function)}) |
if hasattr(self.function, "return_value"): |
instructions.append({"op" :"move", |
"dest" :result, |
"src" :self.function.return_value}) |
return instructions |
Expression.__init__( self, "float", 4, True) |
|
class Output: |
def __init__(self, name, expression): |
self.name = name |
self.expression = expression |
self.type_ = "int" |
self.size = expression.size |
def generate(self, result, allocator): |
new_register = allocator.new(self.size()) |
instructions = self.expression.generate(new_register, allocator) |
|
def generate(self, result): |
instructions = self.expression.generate(result); |
instructions.append({"op" :"write", "src" :result, "output":self.name}) |
return instructions |
instructions.extend([ |
{"op" : "int_to_float", |
"dest" : result, |
"src" : new_register}]) |
|
class FileWrite: |
def __init__(self, name, expression): |
self.name = name |
self.expression = expression |
self.type_ = "int" |
self.size = expression.size |
allocator.free(new_register) |
return instructions |
|
def generate(self, result): |
instructions = self.expression.generate(result); |
instructions.append({"op" :"file_write", "src" :result, "file_name":self.name}) |
return instructions |
def value(self): |
return float(self.expression.value()) |
|
class Input: |
def __init__(self, name): |
self.name = name |
self.type_ = "int" |
self.size = 2 |
self.signed = True |
|
def generate(self, result): |
return [{"op" :"read", "dest" :result, "input":self.name}] |
class FloatToInt(Expression): |
|
class FileRead: |
def __init__(self, name): |
self.name = name |
self.type_ = "int" |
self.size = 2 |
self.signed = True |
def __init__(self, expression): |
self.expression = constant_fold(expression) |
|
def generate(self, result): |
return [{"op" :"file_read", "dest" :result, "file_name":self.name}] |
Expression.__init__( self, "int", 4, True) |
|
class Ready: |
def __init__(self, name): |
self.name = name |
self.type_ = "int" |
self.size = 2 |
self.signed = True |
def generate(self, result, allocator): |
new_register = allocator.new(self.size()) |
instructions = self.expression.generate(new_register, allocator) |
|
def generate(self, result): |
return [{"op" :"ready", "dest" :result, "input":self.name}] |
instructions.extend([ |
{"op" : "float_to_int", |
"dest" : result, |
"src" : new_register}]) |
|
class Array: |
def __init__(self, declaration, allocator): |
self.declaration = declaration |
self.allocator = allocator |
self.storage = "register" |
self.type_ = self.declaration.type_ |
self.size = int(self.declaration.size) * 2 |
self.signed = False |
allocator.free(new_register) |
return instructions |
|
def generate(self, result): |
instructions = [] |
if result != self.declaration.register: |
instructions.append({"op" :"move", |
"dest":result, |
"src" :self.declaration.register}) |
return instructions |
def value(self): |
return int(self.expression.value()) |
|
class ArrayIndex: |
def __init__(self, declaration, index_expression, allocator): |
self.declaration = declaration |
self.allocator = allocator |
self.index_expression = index_expression |
self.storage = "memory" |
self.type_ = self.declaration.element_type |
self.size = self.declaration.element_size |
self.signed = self.declaration.element_signed |
|
def generate(self, result): |
instructions = [] |
offset = self.allocator.new(2) |
address = self.allocator.new(2) |
instructions.extend(self.index_expression.generate(offset)) |
instructions.append({"op" :"+", |
"dest" :address, |
"src" :offset, |
"srcb" :self.declaration.register, |
"signed":False}) |
instructions.append({"op" :"memory_read_request", |
"src" :address, |
"sequence": id(self), |
"element_size":self.size}) |
instructions.append({"op" :"memory_read_wait", |
"src" :address, |
"sequence": id(self), |
"element_size":self.size}) |
instructions.append({"op" :"memory_read", |
"src" :address, |
"dest" :result, |
"sequence": id(self), |
"element_size":self.size}) |
self.allocator.free(address) |
self.allocator.free(offset) |
return instructions |
class Unary(Expression): |
|
class Variable: |
def __init__(self, declaration, allocator): |
self.declaration = declaration |
self.allocator = allocator |
self.storage = "register" |
self.type_ = self.declaration.type_ |
self.size = self.declaration.size |
self.signed = self.declaration.signed |
def __init__(self, operator, expression): |
self.expression = constant_fold(expression) |
self.operator = operator |
|
def generate(self, result): |
instructions = [] |
if result != self.declaration.register: |
instructions.append({"op" :"move", |
"dest":result, |
"src" :self.declaration.register}) |
return instructions |
Expression.__init__( |
self, |
expression.type_(), |
expression.size(), |
expression.signed()) |
|
class PostIncrement: |
def __init__(self, operator, lvalue, allocator): |
self.operator = operator |
self.lvalue = lvalue |
self.allocator = allocator |
self.type_ = self.lvalue.declaration.type_ |
self.size = self.lvalue.declaration.size |
self.signed = self.lvalue.declaration.signed |
def generate(self, result, allocator): |
new_register = allocator.new(self.size()) |
instructions = self.expression.generate(new_register, allocator) |
|
def generate(self, result): |
instructions.extend([ |
{"op":self.operator, |
"dest":result, |
"src":new_register}]) |
|
instructions = [] |
allocator.free(new_register) |
return instructions |
|
instructions.append({"op" :"move", |
"src" :self.lvalue.declaration.register, |
"dest" :result}) |
def value(self): |
return eval("%s%s"%(self.operator, self.expression.value())) |
|
instructions.append({"op" :self.operator, |
"dest" :self.lvalue.declaration.register, |
"right" :1, |
"src" :self.lvalue.declaration.register, |
"signed":self.signed}) |
|
return instructions |
|
class Assignment: |
def __init__(self, lvalue, expression, allocator): |
self.lvalue = lvalue |
self.expression = expression |
self.allocator = allocator |
self.type_ = self.lvalue.type_ |
self.size = self.lvalue.size |
self.signed = self.lvalue.signed |
class FunctionCall(Expression): |
|
def generate(self, result): |
instructions = self.expression.generate(result) |
if self.lvalue.storage == "register": |
if result != self.lvalue.declaration.register: |
instructions.append({"op" : "move", |
"dest" : self.lvalue.declaration.register, |
"src" : result}) |
def __init__(self, function): |
self.function = function |
|
elif self.lvalue.storage == "memory": |
index = self.allocator.new(2) |
address = self.allocator.new(2) |
instructions.extend(self.lvalue.index_expression.generate(index)) |
instructions.append({"op" :"+", |
"dest" :address, |
"src" :index, |
"srcb" :self.lvalue.declaration.register, |
"signed" :self.signed}) |
instructions.append({"op" :"memory_write", |
"src" :address, |
"srcb" :result, |
"element_size" :self.lvalue.declaration.element_size}) |
self.allocator.free(index) |
self.allocator.free(address) |
Expression.__init__( |
self, |
function.type_, |
function.size, |
function.signed) |
|
return instructions |
def generate(self, result, allocator): |
instructions = [] |
|
class Constant: |
def __init__(self, value, size=2, signed=True): |
self._value = value |
self.type_ = "int" |
self.size = size |
self.signed = signed |
for expression, argument in zip( |
self.arguments, |
self.function.arguments): |
|
def generate(self, result): |
instructions = [{"op":"literal", "dest":result, "literal":self._value}] |
return instructions |
temp_register = allocator.new(expression.size()) |
instructions.extend( |
argument.copy(expression, temp_register, allocator)) |
allocator.free(temp_register) |
|
def value(self): |
return self._value |
instructions.append( |
{"op" :"jmp_and_link", |
"dest" :self.function.return_address, |
"label":"function_%s"%id(self.function)}) |
|
if hasattr(self.function, "return_value"): |
|
instructions.extend(self.function.return_value.generate( |
result, |
allocator)) |
|
return instructions |
|
|
class Output(Expression): |
|
def __init__(self, name, expression): |
self.name = name |
self.expression = expression |
Expression.__init__(self, "int", 2, True) |
|
def generate(self, result, allocator): |
instructions = self.expression.generate(result, allocator) |
|
instructions.append( |
{"op" :"write", |
"src" :result, |
"output":self.name}) |
|
return instructions |
|
|
class FileWrite(Expression): |
|
def __init__(self, name, expression): |
self.name = name |
self.expression = expression |
Expression.__init__( |
self, |
expression.type_(), |
expression.size(), |
expression.signed()) |
|
def generate(self, result, allocator): |
instructions = self.expression.generate(result, allocator) |
|
instructions.append( |
{"op" :"file_write", |
"src" :result, |
"type":self.expression.type_(), |
"file_name":self.name}) |
|
return instructions |
|
|
class Input(Expression): |
|
def __init__(self, name): |
self.name = name |
Expression.__init__(self, "int", 2, True) |
|
def generate(self, result, allocator): |
return [{"op" :"read", "dest" :result, "input":self.name}] |
|
|
class FileRead(Expression): |
|
def __init__(self, name): |
self.name = name |
Expression.__init__(self, "int", 2, True) |
|
def generate(self, result, allocator): |
return [{"op" :"file_read", "dest" :result, "file_name":self.name}] |
|
|
class Ready(Expression): |
|
def __init__(self, name): |
self.name = name |
Expression.__init__(self, "int", 2, True) |
|
def generate(self, result, allocator): |
return [{"op" :"ready", "dest" :result, "input":self.name}] |
|
|
class Struct(Object): |
|
def __init__(self, instance): |
Object.__init__(self, instance) |
|
def generate(self, result, allocator): |
instructions = [] |
if result != self.declaration.register: |
|
instructions.append( |
{"op" :"move", |
"dest":result, |
"src" :self.declaration.register}) |
|
return instructions |
|
def copy(self, expression, result, allocator): |
instructions = [] |
|
for lvalue, rvalue in zip( |
self.instance.members.values(), |
expression.instance.members.values()): |
|
instructions.extend( |
lvalue.reference().copy(rvalue.reference(), result, allocator)) |
|
return instructions |
|
|
class Array(Object): |
|
def __init__(self, instance): |
Object.__init__(self, instance) |
|
def generate(self, result, allocator): |
instructions = [] |
if result != self.instance.register: |
|
instructions.append( |
{"op" : "move", |
"dest" : result, |
"src" : self.instance.register}) |
|
return instructions |
|
def copy(self, expression, result, allocator): |
instructions = expression.generate(result, allocator) |
if result != self.instance.register: |
|
instructions.append( |
{"op" : "move", |
"dest" : self.instance.register, |
"src" : result}) |
|
return instructions |
|
|
class ConstArray(Object): |
|
def __init__(self, instance): |
Object.__init__(self, instance) |
|
def generate(self, result, allocator): |
instructions = [] |
#If initialize memory is true, the memory content will initialised (as at configuration time) |
#If initialize memory is false, then the memory will need to be filled by the program. |
if not self.instance.initialize_memory and self.instance.initializer is not None: |
location = self.instance.location |
for value in self.instance.initializer: |
|
instructions.append( |
{"op":"memory_write_literal", |
"address":location, |
"value":value, |
"element_size":self.instance.element_size}) |
|
location += 1 |
|
instructions.append( |
{"op":"literal", |
"literal":self.instance.location, |
"dest":self.instance.register}) |
|
if result != self.instance.register: |
|
instructions.append( |
{"op" : "move", |
"dest" : result, |
"src" : self.instance.register}) |
|
return instructions |
|
def copy(self, expression, result, allocator): |
instructions = expression.generate(result, allocator) |
if result != self.instance.register: |
|
instructions.append( |
{"op" : "move", |
"dest" : self.instance.register, |
"src" : result}) |
|
return instructions |
|
|
class ArrayIndex(Object): |
|
def __init__(self, instance, index_expression): |
Object.__init__(self, instance) |
assert self.type_var.endswith("[]") |
self.type_var = self.type_var[:-2] |
self.size_var = instance.element_size |
self.index_expression = index_expression |
|
def generate(self, result, allocator): |
instructions = [] |
offset = allocator.new(2) |
address = allocator.new(2) |
instructions.extend(self.index_expression.generate(offset, allocator)) |
|
instructions.append( |
{"op" :"+", |
"dest" :address, |
"src" :offset, |
"srcb" :self.instance.register, |
"signed":False}) |
|
instructions.append( |
{"op" :"memory_read_request", |
"src" :address, |
"sequence": id(self), |
"element_size":self.size()}) |
|
instructions.append( |
{"op" :"memory_read_wait", |
"src" :address, |
"sequence": id(self), |
"element_size":self.size()}) |
|
instructions.append( |
{"op" :"memory_read", |
"src" :address, |
"dest" :result, |
"sequence": id(self), |
"element_size":self.size()}) |
|
allocator.free(address) |
allocator.free(offset) |
return instructions |
|
def copy(self, expression, result, allocator): |
index = allocator.new(2) |
address = allocator.new(2) |
instructions = expression.generate(result, allocator) |
instructions.extend(self.index_expression.generate(index, allocator)) |
|
instructions.append( |
{"op" :"+", |
"dest" :address, |
"src" :index, |
"srcb" :self.instance.register, |
"signed" :expression.signed()}) |
|
instructions.append( |
{"op" :"memory_write", |
"src" :address, |
"srcb" :result, |
"element_size" :self.instance.element_size}) |
|
allocator.free(index) |
allocator.free(address) |
return instructions |
|
|
class Variable(Object): |
def __init__(self, instance): |
Object.__init__(self, instance) |
|
def generate(self, result, allocator): |
instructions = [] |
if result != self.instance.register: |
|
instructions.append( |
{"op" :"move", |
"dest":result, |
"src" :self.instance.register}) |
|
return instructions |
|
def copy(self, expression, result, allocator): |
instructions = expression.generate(result, allocator) |
if result != self.instance.register: |
|
instructions.append( |
{"op" : "move", |
"dest" : self.instance.register, |
"src" : result}) |
|
return instructions |
|
def const(self): |
return self.instance.const() |
|
def value(self): |
if self.const(): |
return self.instance.initializer.value() |
else: |
raise NotConstant |
|
|
class PostIncrement(Expression): |
|
def __init__(self, operator, lvalue, allocator): |
self.operator = operator |
self.lvalue = lvalue |
allocator = allocator |
Expression.__init__(self, lvalue.type_(), lvalue.size(), lvalue.signed()) |
|
def generate(self, result, allocator): |
|
instructions = [] |
|
instructions.append( |
{"op" : "move", |
"src" : self.lvalue.instance.register, |
"dest" : result}) |
|
instructions.append( |
{"op" : self.operator, |
"dest" : self.lvalue.instance.register, |
"right" : 1, |
"src" : self.lvalue.instance.register, |
"size" : self.size(), |
"signed": self.signed()}) |
|
return instructions |
|
|
class Assignment(Expression): |
|
def __init__(self, lvalue, expression, allocator): |
Expression.__init__(self, lvalue.type_(), lvalue.size(), lvalue.signed()) |
self.lvalue = lvalue |
self.expression = expression |
self.allocator = allocator |
|
def generate(self, result, allocator): |
return self.lvalue.copy(self.expression, result, allocator) |
|
|
class Constant(Expression): |
|
def __init__(self, value, type_="int", size=2, signed=True): |
self._value = value |
Expression.__init__(self, type_, size, signed) |
|
def generate(self, result, allocator): |
|
instructions = [{ |
"op":"literal", |
"dest":result, |
"size":self.size(), |
"signed":self.size(), |
"literal":self.int_value()}] |
return instructions |
|
def value(self): |
return self._value |
|
|
/tcp_socket/trunk/chips2/chips/compiler/compiler.py
19,66 → 19,66
|
def comp(input_file, options=[]): |
|
reuse = "no_reuse" not in options |
initialize_memory = "no_initialize_memory" not in options |
reuse = "no_reuse" not in options |
initialize_memory = "no_initialize_memory" not in options |
|
try: |
if "speed" not in options: |
try: |
if "speed" not in options: |
|
#Optimize for area |
parser = Parser(input_file, reuse, initialize_memory) |
process = parser.parse_process() |
name = process.main.name |
instructions = process.generate() |
instructions = cleanup_functions(instructions) |
instructions, registers = cleanup_registers(instructions, parser.allocator.all_registers) |
output_file = name + ".v" |
output_file = open(output_file, "w") |
inputs, outputs = generate_CHIP_area( |
input_file, |
name, |
instructions, |
output_file, |
registers, |
parser.allocator.memory_size_2, |
parser.allocator.memory_size_4, |
initialize_memory, |
parser.allocator.memory_content_2, |
parser.allocator.memory_content_4) |
output_file.close() |
#Optimize for area |
parser = Parser(input_file, reuse, initialize_memory) |
process = parser.parse_process() |
name = process.main.name |
instructions = process.generate() |
instructions = cleanup_functions(instructions) |
instructions, registers = cleanup_registers(instructions, parser.allocator.all_registers) |
output_file = name + ".v" |
output_file = open(output_file, "w") |
inputs, outputs = generate_CHIP_area( |
input_file, |
name, |
instructions, |
output_file, |
registers, |
parser.allocator.memory_size_2, |
parser.allocator.memory_size_4, |
initialize_memory, |
parser.allocator.memory_content_2, |
parser.allocator.memory_content_4) |
output_file.close() |
|
else: |
else: |
|
#Optimize for speed |
parser = Parser(input_file, reuse, initialize_memory) |
process = parser.parse_process() |
name = process.main.name |
instructions = process.generate() |
instructions = cleanup_functions(instructions) |
instructions, registers = cleanup_registers(instructions, parser.allocator.all_registers) |
if "no_concurrent" in sys.argv: |
frames = [[i] for i in instructions] |
else: |
frames = parallelise(instructions) |
output_file = name + ".v" |
output_file = open(output_file, "w") |
inputs, outputs = generate_CHIP_speed( |
input_file, |
name, |
frames, |
output_file, |
registers, |
parser.allocator.memory_size_2, |
parser.allocator.memory_size_4, |
initialize_memory, |
parser.allocator.memory_content_2, |
parser.allocator.memory_content_4) |
output_file.close() |
#Optimize for speed |
parser = Parser(input_file, reuse, initialize_memory) |
process = parser.parse_process() |
name = process.main.name |
instructions = process.generate() |
instructions = cleanup_functions(instructions) |
instructions, registers = cleanup_registers(instructions, parser.allocator.all_registers) |
if "no_concurrent" in sys.argv: |
frames = [[i] for i in instructions] |
else: |
frames = parallelise(instructions) |
output_file = name + ".v" |
output_file = open(output_file, "w") |
inputs, outputs = generate_CHIP_speed( |
input_file, |
name, |
frames, |
output_file, |
registers, |
parser.allocator.memory_size_2, |
parser.allocator.memory_size_4, |
initialize_memory, |
parser.allocator.memory_content_2, |
parser.allocator.memory_content_4) |
output_file.close() |
|
except C2CHIPError as err: |
print "Error in file:", err.filename, "at line:", err.lineno |
print err.message |
sys.exit(-1) |
except C2CHIPError as err: |
print "Error in file:", err.filename, "at line:", err.lineno |
print err.message |
sys.exit(-1) |
|
|
return name, inputs, outputs, "" |
return name, inputs, outputs, "" |
/tcp_socket/trunk/chips2/chips/compiler/fpu.py
0,0 → 1,1130
divider = """//IEEE Floating Point Divider (Single Precision) |
//Copyright (C) Jonathan P Dawson 2013 |
//2013-12-12 |
// |
module divider( |
input_a, |
input_b, |
input_a_stb, |
input_b_stb, |
output_z_ack, |
clk, |
rst, |
output_z, |
output_z_stb, |
input_a_ack, |
input_b_ack); |
|
input clk; |
input rst; |
|
input [31:0] input_a; |
input input_a_stb; |
output input_a_ack; |
|
input [31:0] input_b; |
input input_b_stb; |
output input_b_ack; |
|
output [31:0] output_z; |
output output_z_stb; |
input output_z_ack; |
|
reg s_output_z_stb; |
reg [31:0] s_output_z; |
reg s_input_a_ack; |
reg s_input_b_ack; |
|
reg [3:0] state; |
parameter get_a = 4'd0, |
get_b = 4'd1, |
unpack = 4'd2, |
special_cases = 4'd3, |
normalise_a = 4'd4, |
normalise_b = 4'd5, |
divide_0 = 4'd6, |
divide_1 = 4'd7, |
divide_2 = 4'd8, |
divide_3 = 4'd9, |
normalise_1 = 4'd10, |
normalise_2 = 4'd11, |
round = 4'd12, |
pack = 4'd13, |
put_z = 4'd14; |
|
reg [31:0] a, b, z; |
reg [23:0] a_m, b_m, z_m; |
reg [9:0] a_e, b_e, z_e; |
reg a_s, b_s, z_s; |
reg guard, round_bit, sticky; |
reg [50:0] quotient, divisor, dividend, remainder; |
reg [5:0] count; |
|
always @(posedge clk) |
begin |
|
case(state) |
|
get_a: |
begin |
s_input_a_ack <= 1; |
if (s_input_a_ack && input_a_stb) begin |
a <= input_a; |
s_input_a_ack <= 0; |
state <= get_b; |
end |
end |
|
get_b: |
begin |
s_input_b_ack <= 1; |
if (s_input_b_ack && input_b_stb) begin |
b <= input_b; |
s_input_b_ack <= 0; |
state <= unpack; |
end |
end |
|
unpack: |
begin |
a_m <= a[22 : 0]; |
b_m <= b[22 : 0]; |
a_e <= a[30 : 23] - 127; |
b_e <= b[30 : 23] - 127; |
a_s <= a[31]; |
b_s <= b[31]; |
state <= special_cases; |
end |
|
special_cases: |
begin |
//if a is NaN or b is NaN return NaN |
if ((a_e == 128 && a_m != 0) || (b_e == 128 && b_m != 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
//if a is inf and b is inf return NaN |
end else if ((a_e == 128) && (b_e == 128)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
//if a is inf return inf |
end else if (a_e == 128) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
//if b is zero return NaN |
if ($signed(b_e == -127) && (b_m == 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
end |
//if b is inf return zero |
end else if (b_e == 128) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 0; |
z[22:0] <= 0; |
state <= put_z; |
//if a is zero return zero |
end else if (($signed(a_e) == -127) && (a_m == 0)) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 0; |
z[22:0] <= 0; |
state <= put_z; |
//if b is zero return NaN |
if (($signed(b_e) == -127) && (b_m == 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
end |
//if b is zero return inf |
end else if (($signed(b_e) == -127) && (b_m == 0)) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
end else begin |
//Denormalised Number |
if ($signed(a_e) == -127) begin |
a_e <= -126; |
end else begin |
a_m[23] <= 1; |
end |
//Denormalised Number |
if ($signed(b_e) == -127) begin |
b_e <= -126; |
end else begin |
b_m[23] <= 1; |
end |
state <= normalise_a; |
end |
end |
|
normalise_a: |
begin |
if (a_m[23]) begin |
state <= normalise_b; |
end else begin |
a_m <= a_m << 1; |
a_e <= a_e - 1; |
end |
end |
|
normalise_b: |
begin |
if (b_m[23]) begin |
state <= divide_0; |
end else begin |
b_m <= b_m << 1; |
b_e <= b_e - 1; |
end |
end |
|
divide_0: |
begin |
z_s <= a_s ^ b_s; |
z_e <= a_e - b_e; |
quotient <= 0; |
remainder <= 0; |
count <= 0; |
dividend <= a_m << 27; |
divisor <= b_m; |
state <= divide_1; |
end |
|
divide_1: |
begin |
quotient <= quotient << 1; |
remainder <= remainder << 1; |
remainder[0] <= dividend[50]; |
dividend <= dividend << 1; |
state <= divide_2; |
end |
|
divide_2: |
begin |
if (remainder >= divisor) begin |
quotient[0] <= 1; |
remainder <= remainder - divisor; |
end |
if (count == 49) begin |
state <= divide_3; |
end else begin |
count <= count + 1; |
state <= divide_1; |
end |
end |
|
divide_3: |
begin |
z_m <= quotient[26:3]; |
guard <= quotient[2]; |
round_bit <= quotient[1]; |
sticky <= quotient[0] | (remainder != 0); |
state <= normalise_1; |
end |
|
normalise_1: |
begin |
if (z_m[23] == 0 && $signed(z_e) > -126) begin |
z_e <= z_e - 1; |
z_m <= z_m << 1; |
z_m[0] <= guard; |
guard <= round_bit; |
round_bit <= 0; |
end else begin |
state <= normalise_2; |
end |
end |
|
normalise_2: |
begin |
if ($signed(z_e) < -126) begin |
z_e <= z_e + 1; |
z_m <= z_m >> 1; |
guard <= z_m[0]; |
round_bit <= guard; |
sticky <= sticky | round_bit; |
end else begin |
state <= round; |
end |
end |
|
round: |
begin |
if (guard && (round_bit | sticky | z_m[0])) begin |
z_m <= z_m + 1; |
if (z_m == 24'hffffff) begin |
z_e <=z_e + 1; |
end |
end |
state <= pack; |
end |
|
pack: |
begin |
z[22 : 0] <= z_m[22:0]; |
z[30 : 23] <= z_e[7:0] + 127; |
z[31] <= z_s; |
if ($signed(z_e) == -126 && z_m[23] == 0) begin |
z[30 : 23] <= 0; |
end |
//if overflow occurs, return inf |
if ($signed(z_e) > 127) begin |
z[22 : 0] <= 0; |
z[30 : 23] <= 255; |
z[31] <= z_s; |
end |
state <= put_z; |
end |
|
put_z: |
begin |
s_output_z_stb <= 1; |
s_output_z <= z; |
if (s_output_z_stb && output_z_ack) begin |
s_output_z_stb <= 0; |
state <= get_a; |
end |
end |
|
endcase |
|
if (rst == 1) begin |
state <= get_a; |
s_input_a_ack <= 0; |
s_input_b_ack <= 0; |
s_output_z_stb <= 0; |
end |
|
end |
assign input_a_ack = s_input_a_ack; |
assign input_b_ack = s_input_b_ack; |
assign output_z_stb = s_output_z_stb; |
assign output_z = s_output_z; |
|
endmodule |
|
""" |
multiplier = """//IEEE Floating Point Multiplier (Single Precision) |
//Copyright (C) Jonathan P Dawson 2013 |
//2013-12-12 |
module multiplier( |
input_a, |
input_b, |
input_a_stb, |
input_b_stb, |
output_z_ack, |
clk, |
rst, |
output_z, |
output_z_stb, |
input_a_ack, |
input_b_ack); |
|
input clk; |
input rst; |
|
input [31:0] input_a; |
input input_a_stb; |
output input_a_ack; |
|
input [31:0] input_b; |
input input_b_stb; |
output input_b_ack; |
|
output [31:0] output_z; |
output output_z_stb; |
input output_z_ack; |
|
reg s_output_z_stb; |
reg [31:0] s_output_z; |
reg s_input_a_ack; |
reg s_input_b_ack; |
|
reg [3:0] state; |
parameter get_a = 4'd0, |
get_b = 4'd1, |
unpack = 4'd2, |
special_cases = 4'd3, |
normalise_a = 4'd4, |
normalise_b = 4'd5, |
multiply_0 = 4'd6, |
multiply_1 = 4'd7, |
normalise_1 = 4'd8, |
normalise_2 = 4'd9, |
round = 4'd10, |
pack = 4'd11, |
put_z = 4'd12; |
|
reg [31:0] a, b, z; |
reg [23:0] a_m, b_m, z_m; |
reg [9:0] a_e, b_e, z_e; |
reg a_s, b_s, z_s; |
reg guard, round_bit, sticky; |
reg [49:0] product; |
|
always @(posedge clk) |
begin |
|
case(state) |
|
get_a: |
begin |
s_input_a_ack <= 1; |
if (s_input_a_ack && input_a_stb) begin |
a <= input_a; |
s_input_a_ack <= 0; |
state <= get_b; |
end |
end |
|
get_b: |
begin |
s_input_b_ack <= 1; |
if (s_input_b_ack && input_b_stb) begin |
b <= input_b; |
s_input_b_ack <= 0; |
state <= unpack; |
end |
end |
|
unpack: |
begin |
a_m <= a[22 : 0]; |
b_m <= b[22 : 0]; |
a_e <= a[30 : 23] - 127; |
b_e <= b[30 : 23] - 127; |
a_s <= a[31]; |
b_s <= b[31]; |
state <= special_cases; |
end |
|
special_cases: |
begin |
//if a is NaN or b is NaN return NaN |
if ((a_e == 128 && a_m != 0) || (b_e == 128 && b_m != 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
//if a is inf return inf |
end else if (a_e == 128) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
//if b is zero return NaN |
if ($signed(b_e == -127) && (b_m == 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
end |
//if b is inf return inf |
end else if (b_e == 128) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
//if a is zero return zero |
end else if (($signed(a_e) == -127) && (a_m == 0)) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 0; |
z[22:0] <= 0; |
state <= put_z; |
//if b is zero return zero |
end else if (($signed(b_e) == -127) && (b_m == 0)) begin |
z[31] <= a_s ^ b_s; |
z[30:23] <= 0; |
z[22:0] <= 0; |
state <= put_z; |
end else begin |
//Denormalised Number |
if ($signed(a_e) == -127) begin |
a_e <= -126; |
end else begin |
a_m[23] <= 1; |
end |
//Denormalised Number |
if ($signed(b_e) == -127) begin |
b_e <= -126; |
end else begin |
b_m[23] <= 1; |
end |
state <= normalise_a; |
end |
end |
|
normalise_a: |
begin |
if (a_m[23]) begin |
state <= normalise_b; |
end else begin |
a_m <= a_m << 1; |
a_e <= a_e - 1; |
end |
end |
|
normalise_b: |
begin |
if (b_m[23]) begin |
state <= multiply_0; |
end else begin |
b_m <= b_m << 1; |
b_e <= b_e - 1; |
end |
end |
|
multiply_0: |
begin |
z_s <= a_s ^ b_s; |
z_e <= a_e + b_e + 1; |
product <= a_m * b_m * 4; |
state <= multiply_1; |
end |
|
multiply_1: |
begin |
z_m <= product[49:26]; |
guard <= product[25]; |
round_bit <= product[24]; |
sticky <= (product[23:0] != 0); |
state <= normalise_1; |
end |
|
normalise_1: |
begin |
if (z_m[23] == 0) begin |
z_e <= z_e - 1; |
z_m <= z_m << 1; |
z_m[0] <= guard; |
guard <= round_bit; |
round_bit <= 0; |
end else begin |
state <= normalise_2; |
end |
end |
|
normalise_2: |
begin |
if ($signed(z_e) < -126) begin |
z_e <= z_e + 1; |
z_m <= z_m >> 1; |
guard <= z_m[0]; |
round_bit <= guard; |
sticky <= sticky | round_bit; |
end else begin |
state <= round; |
end |
end |
|
round: |
begin |
if (guard && (round_bit | sticky | z_m[0])) begin |
z_m <= z_m + 1; |
if (z_m == 24'hffffff) begin |
z_e <=z_e + 1; |
end |
end |
state <= pack; |
end |
|
pack: |
begin |
z[22 : 0] <= z_m[22:0]; |
z[30 : 23] <= z_e[7:0] + 127; |
z[31] <= z_s; |
if ($signed(z_e) == -126 && z_m[23] == 0) begin |
z[30 : 23] <= 0; |
end |
//if overflow occurs, return inf |
if ($signed(z_e) > 127) begin |
z[22 : 0] <= 0; |
z[30 : 23] <= 255; |
z[31] <= z_s; |
end |
state <= put_z; |
end |
|
put_z: |
begin |
s_output_z_stb <= 1; |
s_output_z <= z; |
if (s_output_z_stb && output_z_ack) begin |
s_output_z_stb <= 0; |
state <= get_a; |
end |
end |
|
endcase |
|
if (rst == 1) begin |
state <= get_a; |
s_input_a_ack <= 0; |
s_input_b_ack <= 0; |
s_output_z_stb <= 0; |
end |
|
end |
assign input_a_ack = s_input_a_ack; |
assign input_b_ack = s_input_b_ack; |
assign output_z_stb = s_output_z_stb; |
assign output_z = s_output_z; |
|
endmodule |
|
""" |
adder = """//IEEE Floating Point Adder (Single Precision) |
//Copyright (C) Jonathan P Dawson 2013 |
//2013-12-12 |
|
module adder( |
input_a, |
input_b, |
input_a_stb, |
input_b_stb, |
output_z_ack, |
clk, |
rst, |
output_z, |
output_z_stb, |
input_a_ack, |
input_b_ack); |
|
input clk; |
input rst; |
|
input [31:0] input_a; |
input input_a_stb; |
output input_a_ack; |
|
input [31:0] input_b; |
input input_b_stb; |
output input_b_ack; |
|
output [31:0] output_z; |
output output_z_stb; |
input output_z_ack; |
|
reg s_output_z_stb; |
reg [31:0] s_output_z; |
reg s_input_a_ack; |
reg s_input_b_ack; |
|
reg [3:0] state; |
parameter get_a = 4'd0, |
get_b = 4'd1, |
unpack = 4'd2, |
special_cases = 4'd3, |
align = 4'd4, |
add_0 = 4'd5, |
add_1 = 4'd6, |
normalise_1 = 4'd7, |
normalise_2 = 4'd8, |
round = 4'd9, |
pack = 4'd10, |
put_z = 4'd11; |
|
reg [31:0] a, b, z; |
reg [26:0] a_m, b_m; |
reg [23:0] z_m; |
reg [9:0] a_e, b_e, z_e; |
reg a_s, b_s, z_s; |
reg guard, round_bit, sticky; |
reg [27:0] sum; |
|
always @(posedge clk) |
begin |
|
case(state) |
|
get_a: |
begin |
s_input_a_ack <= 1; |
if (s_input_a_ack && input_a_stb) begin |
a <= input_a; |
s_input_a_ack <= 0; |
state <= get_b; |
end |
end |
|
get_b: |
begin |
s_input_b_ack <= 1; |
if (s_input_b_ack && input_b_stb) begin |
b <= input_b; |
s_input_b_ack <= 0; |
state <= unpack; |
end |
end |
|
unpack: |
begin |
a_m <= {a[22 : 0], 3'd0}; |
b_m <= {b[22 : 0], 3'd0}; |
a_e <= a[30 : 23] - 127; |
b_e <= b[30 : 23] - 127; |
a_s <= a[31]; |
b_s <= b[31]; |
state <= special_cases; |
end |
|
special_cases: |
begin |
//if a is NaN or b is NaN return NaN |
if ((a_e == 128 && a_m != 0) || (b_e == 128 && b_m != 0)) begin |
z[31] <= 1; |
z[30:23] <= 255; |
z[22] <= 1; |
z[21:0] <= 0; |
state <= put_z; |
//if a is inf return inf |
end else if (a_e == 128) begin |
z[31] <= a_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
//if b is inf return inf |
end else if (b_e == 128) begin |
z[31] <= b_s; |
z[30:23] <= 255; |
z[22:0] <= 0; |
state <= put_z; |
//if a is zero return b |
end else if ((($signed(a_e) == -127) && (a_m == 0)) && (($signed(b_e) == -127) && (b_m == 0))) begin |
z[31] <= a_s & b_s; |
z[30:23] <= b_e[7:0] + 127; |
z[22:0] <= b_m[26:3]; |
state <= put_z; |
//if a is zero return b |
end else if (($signed(a_e) == -127) && (a_m == 0)) begin |
z[31] <= b_s; |
z[30:23] <= b_e[7:0] + 127; |
z[22:0] <= b_m[26:3]; |
state <= put_z; |
//if b is zero return a |
end else if (($signed(b_e) == -127) && (b_m == 0)) begin |
z[31] <= a_s; |
z[30:23] <= a_e[7:0] + 127; |
z[22:0] <= a_m[26:3]; |
state <= put_z; |
end else begin |
//Denormalised Number |
if ($signed(a_e) == -127) begin |
a_e <= -126; |
end else begin |
a_m[26] <= 1; |
end |
//Denormalised Number |
if ($signed(b_e) == -127) begin |
b_e <= -126; |
end else begin |
b_m[26] <= 1; |
end |
state <= align; |
end |
end |
|
align: |
begin |
if ($signed(a_e) > $signed(b_e)) begin |
b_e <= b_e + 1; |
b_m <= b_m >> 1; |
b_m[0] <= b_m[0] | b_m[1]; |
end else if ($signed(a_e) < $signed(b_e)) begin |
a_e <= a_e + 1; |
a_m <= a_m >> 1; |
a_m[0] <= a_m[0] | a_m[1]; |
end else begin |
state <= add_0; |
end |
end |
|
add_0: |
begin |
z_e <= a_e; |
if (a_s == b_s) begin |
sum <= a_m + b_m; |
z_s <= a_s; |
end else begin |
if (a_m >= b_m) begin |
sum <= a_m - b_m; |
z_s <= a_s; |
end else begin |
sum <= b_m - a_m; |
z_s <= b_s; |
end |
end |
state <= add_1; |
end |
|
add_1: |
begin |
if (sum[27]) begin |
z_m <= sum[27:4]; |
guard <= sum[3]; |
round_bit <= sum[2]; |
sticky <= sum[1] | sum[0]; |
z_e <= z_e + 1; |
end else begin |
z_m <= sum[26:3]; |
guard <= sum[2]; |
round_bit <= sum[1]; |
sticky <= sum[0]; |
end |
state <= normalise_1; |
end |
|
normalise_1: |
begin |
if (z_m[23] == 0 && $signed(z_e) > -126) begin |
z_e <= z_e - 1; |
z_m <= z_m << 1; |
z_m[0] <= guard; |
guard <= round_bit; |
round_bit <= 0; |
end else begin |
state <= normalise_2; |
end |
end |
|
normalise_2: |
begin |
if ($signed(z_e) < -126) begin |
z_e <= z_e + 1; |
z_m <= z_m >> 1; |
guard <= z_m[0]; |
round_bit <= guard; |
sticky <= sticky | round_bit; |
end else begin |
state <= round; |
end |
end |
|
round: |
begin |
if (guard && (round_bit | sticky | z_m[0])) begin |
z_m <= z_m + 1; |
if (z_m == 24'hffffff) begin |
z_e <=z_e + 1; |
end |
end |
state <= pack; |
end |
|
pack: |
begin |
z[22 : 0] <= z_m[22:0]; |
z[30 : 23] <= z_e[7:0] + 127; |
z[31] <= z_s; |
if ($signed(z_e) == -126 && z_m[23] == 0) begin |
z[30 : 23] <= 0; |
end |
//if overflow occurs, return inf |
if ($signed(z_e) > 127) begin |
z[22 : 0] <= 0; |
z[30 : 23] <= 255; |
z[31] <= z_s; |
end |
state <= put_z; |
end |
|
put_z: |
begin |
s_output_z_stb <= 1; |
s_output_z <= z; |
if (s_output_z_stb && output_z_ack) begin |
s_output_z_stb <= 0; |
state <= get_a; |
end |
end |
|
endcase |
|
if (rst == 1) begin |
state <= get_a; |
s_input_a_ack <= 0; |
s_input_b_ack <= 0; |
s_output_z_stb <= 0; |
end |
|
end |
assign input_a_ack = s_input_a_ack; |
assign input_b_ack = s_input_b_ack; |
assign output_z_stb = s_output_z_stb; |
assign output_z = s_output_z; |
|
endmodule |
|
""" |
int_to_float = """//Integer to IEEE Floating Point Converter (Single Precision) |
//Copyright (C) Jonathan P Dawson 2013 |
//2013-12-12 |
module int_to_float( |
input_a, |
input_a_stb, |
output_z_ack, |
clk, |
rst, |
output_z, |
output_z_stb, |
input_a_ack); |
|
input clk; |
input rst; |
|
input [31:0] input_a; |
input input_a_stb; |
output input_a_ack; |
|
output [31:0] output_z; |
output output_z_stb; |
input output_z_ack; |
|
reg s_output_z_stb; |
reg [31:0] s_output_z; |
reg s_input_a_ack; |
reg s_input_b_ack; |
|
reg [2:0] state; |
parameter get_a = 3'd0, |
convert_0 = 3'd1, |
convert_1 = 3'd2, |
convert_2 = 3'd3, |
round = 3'd4, |
pack = 3'd5, |
put_z = 3'd6; |
|
reg [31:0] a, z, value; |
reg [23:0] z_m; |
reg [7:0] z_r; |
reg [7:0] z_e; |
reg z_s; |
reg guard, round_bit, sticky; |
|
always @(posedge clk) |
begin |
|
case(state) |
|
get_a: |
begin |
s_input_a_ack <= 1; |
if (s_input_a_ack && input_a_stb) begin |
a <= input_a; |
s_input_a_ack <= 0; |
state <= convert_0; |
end |
end |
|
convert_0: |
begin |
if ( a == 0 ) begin |
z_s <= 0; |
z_m <= 0; |
z_e <= -127; |
state <= pack; |
end else begin |
value <= a[31] ? -a : a; |
z_s <= a[31]; |
state <= convert_1; |
end |
end |
|
convert_1: |
begin |
z_e <= 31; |
z_m <= value[31:8]; |
z_r <= value[7:0]; |
state <= convert_2; |
end |
|
convert_2: |
begin |
if (!z_m[23]) begin |
z_e <= z_e - 1; |
z_m <= z_m << 1; |
z_m[0] <= z_r[7]; |
z_r <= z_r << 1; |
end else begin |
guard <= z_r[7]; |
round_bit <= z_r[6]; |
sticky <= z_r[5:0] != 0; |
state <= round; |
end |
end |
|
round: |
begin |
if (guard && (round_bit || sticky || z_m[0])) begin |
z_m <= z_m + 1; |
if (z_m == 24'hffffff) begin |
z_e <=z_e + 1; |
end |
end |
state <= pack; |
end |
|
pack: |
begin |
z[22 : 0] <= z_m[22:0]; |
z[30 : 23] <= z_e + 127; |
z[31] <= z_s; |
state <= put_z; |
end |
|
put_z: |
begin |
s_output_z_stb <= 1; |
s_output_z <= z; |
if (s_output_z_stb && output_z_ack) begin |
s_output_z_stb <= 0; |
state <= get_a; |
end |
end |
|
endcase |
|
if (rst == 1) begin |
state <= get_a; |
s_input_a_ack <= 0; |
s_output_z_stb <= 0; |
end |
|
end |
assign input_a_ack = s_input_a_ack; |
assign output_z_stb = s_output_z_stb; |
assign output_z = s_output_z; |
|
endmodule |
|
""" |
float_to_int = """//IEEE Floating Point to Integer Converter (Single Precision) |
//Copyright (C) Jonathan P Dawson 2013 |
//2013-12-12 |
module float_to_int( |
input_a, |
input_a_stb, |
output_z_ack, |
clk, |
rst, |
output_z, |
output_z_stb, |
input_a_ack); |
|
input clk; |
input rst; |
|
input [31:0] input_a; |
input input_a_stb; |
output input_a_ack; |
|
output [31:0] output_z; |
output output_z_stb; |
input output_z_ack; |
|
reg s_output_z_stb; |
reg [31:0] s_output_z; |
reg s_input_a_ack; |
|
reg [2:0] state; |
parameter get_a = 3'd0, |
special_cases = 3'd1, |
unpack = 3'd2, |
convert = 3'd3, |
put_z = 3'd4; |
|
reg [31:0] a_m, a, z; |
reg [8:0] a_e; |
reg a_s; |
|
always @(posedge clk) |
begin |
|
case(state) |
|
get_a: |
begin |
s_input_a_ack <= 1; |
if (s_input_a_ack && input_a_stb) begin |
a <= input_a; |
s_input_a_ack <= 0; |
state <= unpack; |
end |
end |
|
unpack: |
begin |
a_m[31:8] <= {1'b1, a[22 : 0]}; |
a_m[7:0] <= 0; |
a_e <= a[30 : 23] - 127; |
a_s <= a[31]; |
state <= special_cases; |
end |
|
special_cases: |
begin |
if ($signed(a_e) == -127) begin |
z <= 0; |
state <= put_z; |
end else if ($signed(a_e) > 31) begin |
z <= 32'h80000000; |
state <= put_z; |
end else begin |
state <= convert; |
end |
end |
|
convert: |
begin |
if ($signed(a_e) < 31) begin |
a_e <= a_e + 1; |
a_m <= a_m >> 1; |
end else begin |
if (a_m[31]) begin |
z <= 32'h80000000; |
end else begin |
z <= a_s ? -a_m : a_m; |
end |
state <= put_z; |
end |
end |
|
put_z: |
begin |
s_output_z_stb <= 1; |
s_output_z <= z; |
if (s_output_z_stb && output_z_ack) begin |
s_output_z_stb <= 0; |
state <= get_a; |
end |
end |
|
endcase |
|
if (rst == 1) begin |
state <= get_a; |
s_input_a_ack <= 0; |
s_output_z_stb <= 0; |
end |
|
end |
assign input_a_ack = s_input_a_ack; |
assign output_z_stb = s_output_z_stb; |
assign output_z = s_output_z; |
|
endmodule |
|
""" |
/tcp_socket/trunk/chips2/chips/compiler/parser.py
2,10 → 2,17
__copyright__ = "Copyright (C) 2012, Jonathan P Dawson" |
__version__ = "0.1" |
|
import struct |
from copy import copy |
|
from parse_tree import * |
from tokens import Tokens |
from allocator import Allocator |
|
types = ["float", "signed", "unsigned", "short", "long", "char", "int", "void"] |
numeric_types = ["float", "signed", "unsigned", "short", "long", "char", "int"] |
storage_specifiers = ["const"] |
|
class Parser: |
|
"""Turn the C input file into a tree of expressions and statements.""" |
38,7 → 45,7
def parse_type_specifier(self): |
type_specifiers = [] |
|
while self.tokens.peek() in ["signed", "unsigned", "short", "long", "char", "int", "void"] + self.structs: |
while self.tokens.peek() in types + self.structs + storage_specifiers: |
type_specifiers.append(self.tokens.get()) |
|
signed = True |
60,6 → 67,21
size = 2 |
signed = False |
|
if "float" in type_specifiers: |
if "short" in type_specifiers: |
self.tokens.error("Float cannot be short") |
if "long" in type_specifiers: |
self.tokens.error("Float cannot be long (but double can)") |
if "unsigned" in type_specifiers: |
self.tokens.error("Float cannot be unsigned") |
type_ = "float" |
size = 4 |
signed = True |
|
const = False |
if "const" in type_specifiers: |
const = True |
|
if "void" in type_specifiers: |
type_ = "void" |
size = 2 |
66,18 → 88,53
signed = False |
|
|
return type_, size, signed |
return type_, size, signed, const |
|
def parse_argument(self): |
type_, size, signed, const = self.parse_type_specifier() |
|
if type_ in ["void"]: |
self.tokens.error("argument cannot be void") |
else: |
argument = self.tokens.get() |
if type_ in self.structs: |
declaration = self.scope[type_] |
else: |
if self.tokens.peek() == "[": |
self.tokens.expect("[") |
self.tokens.expect("]") |
declaration = ArrayDeclaration( |
self.allocator, |
2, |
type_+"[]", |
type_, |
size, |
signed, |
None, |
self.initialize_memory) |
else: |
declaration = VariableDeclaration( |
self.allocator, |
None, |
argument, |
type_, |
size, |
signed, |
const) |
instance = declaration.instance() |
self.scope[argument] = instance |
return instance.reference() |
|
def parse_function(self): |
function = Function() |
function.allocator = self.allocator |
stored_scope = self.scope |
type_, size, signed = self.parse_type_specifier() |
stored_scope = copy(self.scope) |
type_, size, signed, const = self.parse_type_specifier() |
name = self.tokens.get() |
|
|
#check if it is a global declaration |
if self.tokens.peek() != "(": |
return self.parse_global_declaration(type_, size, signed, name) |
return self.parse_global_declaration(type_, size, signed, const, name) |
|
#otherwise continue parsing a function |
self.tokens.expect("(") |
85,41 → 142,38
function.type_ = type_ |
function.size = size |
function.signed = signed |
function.return_address = self.allocator.new(2, function.name+" return address") |
|
function.return_address = self.allocator.new(2, |
function.name+" return address") |
|
if type_ != "void": |
function.return_value = self.allocator.new(function.size, function.name+" return value") |
|
if type_ in self.structs: |
declaration = self.scope[type_] |
else: |
if self.tokens.peek() == "[": |
self.tokens.error( |
"Functions cannot return arrays") |
else: |
declaration = VariableDeclaration( |
self.allocator, |
None, |
function.name+" return value", |
type_, |
size, |
signed, |
const) |
|
function.return_value = declaration.instance().reference() |
|
function.arguments = [] |
while self.tokens.peek() != ")": |
argument_type, argument_size, argument_signed = self.parse_type_specifier() |
if argument_type in ["void"]: |
self.tokens.error("argument cannot be void") |
argument = self.tokens.get() |
element_type = None |
element_size = None |
element_signed = None |
if self.tokens.peek() == "[": |
self.tokens.expect("[") |
self.tokens.expect("]") |
element_type = argument_type |
element_size = argument_size |
element_signed = argument_signed |
argument_type+="[]" |
argument_size = 2 |
argument_signed = False |
|
function.arguments.append(Argument( |
argument, |
argument_type, |
argument_size, |
argument_signed, |
self, |
element_type, |
element_size, |
element_signed)) |
function.arguments.append(self.parse_argument()) |
if self.tokens.peek() == ",": |
self.tokens.expect(",") |
else: |
break |
|
self.tokens.expect(")") |
self.function = function |
function.statement = self.parse_statement() |
149,6 → 203,7
def parse_return(self): |
return_ = Return() |
return_.function = self.function |
return_.allocator = self.allocator |
self.function.return_statement = return_ |
self.tokens.expect("return") |
if hasattr(self.function, "return_value"): |
192,7 → 247,7
return wait_clocks |
|
def parse_statement(self): |
if self.tokens.peek() in ["unsigned", "int", "short", "long", "char"] + self.structs: |
if self.tokens.peek() in numeric_types + self.structs + storage_specifiers: |
return self.parse_compound_declaration() |
elif self.tokens.peek() == "struct": |
return self.parse_struct_declaration() |
232,28 → 287,36
|
def parse_assignment(self): |
assignment_operators = [ |
"=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "<<=", ">>=" |
"=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>=" |
] |
lvalue = self.parse_ternary_expression() |
if self.tokens.peek() in assignment_operators: |
if not hasattr(lvalue, "declaration"): |
if lvalue.const(): |
|
self.tokens.error( |
"left hand operand of assignment is not modifiable" |
) |
"left hand operand of assignment is not modifiable") |
|
operator = self.tokens.get() |
if operator == "=": |
expression = self.parse_ternary_expression() |
else: |
expression = Binary( |
operator[:-1], |
lvalue, |
self.parse_ternary_expression(), |
self.allocator |
) |
if not compatible(lvalue.type_, expression.type_): |
self.tokens.error( |
"type mismatch in assignment" |
) |
|
expression = self.parse_ternary_expression() |
left = lvalue |
left, expression = self.coerce_types(left, expression) |
expression = Binary(operator[:-1], left, expression) |
|
if expression.type_() != lvalue.type_(): |
if expression.type_() == "int" and lvalue.type_() == "float": |
expression = IntToFloat(expression) |
elif expression.type_() == "float" and lvalue.type_() == "int": |
expression = FloatToInt(expression) |
else: |
self.tokens.error( |
"type mismatch in assignment expected: %s actual: %s"%( |
lvalue.type_(), |
expression.type_())) |
|
return Assignment(lvalue, expression, self.allocator) |
else: |
return lvalue |
264,10 → 327,9
self.tokens.expect("if") |
self.tokens.expect("(") |
if_.expression = self.parse_expression() |
if if_.expression.type_ not in ["unsigned", "int", "short", "long", "char"]: |
if if_.expression.type_() not in ["unsigned", "int", "short", "long", "char"]: |
self.tokens.error( |
"if statement conditional must be an integer like expression" |
) |
"if statement conditional must be an integer like expression") |
self.tokens.expect(")") |
if_.true_statement = self.parse_statement() |
if self.tokens.peek() == "else": |
283,10 → 345,9
self.tokens.expect("switch") |
self.tokens.expect("(") |
expression = self.parse_expression() |
if expression.type_ not in ["unsigned", "int", "short", "long", "char"]: |
if expression.type_() not in ["unsigned", "int", "short", "long", "char"]: |
self.tokens.error( |
"switch statement expression must be an integer like expression" |
) |
"switch statement expression must be an integer like expression") |
self.tokens.expect(")") |
stored_loop = self.loop |
self.loop = switch |
300,21 → 361,19
def parse_case(self): |
self.tokens.expect("case") |
expression = self.parse_expression() |
if expression.type_ not in ["int"]: |
if expression.type_() not in ["int"]: |
self.tokens.error( |
"case expression must be an integer like expression" |
) |
"case expression must be an integer like expression") |
self.tokens.expect(":") |
try: |
expression = value(expression) |
expression = expression.value() |
case = Case() |
self.loop.cases[expression] = case |
self.loop.cases[expression] = case |
except NotConstant: |
self.tokens.error("case expression must be constant") |
except AttributeError: |
self.tokens.error( |
"case statements may only be use inside a switch statment" |
) |
"case statements may only be use inside a switch statment") |
return case |
|
def parse_default(self): |
323,12 → 382,10
default = Default() |
if not hasattr(self.loop, "cases"): |
self.tokens.error( |
"default statements may only be used inside a switch statment" |
) |
"default statements may only be used inside a switch statment") |
if hasattr(self.loop, "default"): |
self.tokens.error( |
"A switch statement may only have one default statement" |
) |
"A switch statement may only have one default statement") |
self.loop.default=default |
return default |
|
348,10 → 405,9
break_ = Break() |
break_.loop = loop |
if_.allocator = self.allocator |
if expression.type_ not in ["int"]: |
if expression.type_() not in ["int"]: |
self.tokens.error( |
"if statement conditional must be an integer like expression" |
) |
"while statement conditional must be an integer like expression") |
if_.expression = expression |
if_.false_statement = break_ |
if_.true_statement = statement |
368,10 → 424,16
self.tokens.expect(";") |
if self.tokens.peek() != ";": |
for_.expression = self.parse_expression() |
if for_.expression.type_ not in ["unsigned", "int", "short", "long", "char"]: |
if for_.expression.type_() not in [ |
"unsigned", |
"int", |
"short", |
"long", |
"char"]: |
|
self.tokens.error( |
"for statement conditional must be an integer like expression" |
) |
"For statement conditional must be an integer like expression") |
|
self.tokens.expect(";") |
if self.tokens.peek() != ")": |
for_.statement2 = self.parse_discard() |
384,7 → 446,7
|
def parse_block(self): |
block = Block() |
stored_scope = self.scope |
stored_scope = copy(self.scope) |
self.tokens.expect("{") |
block.statements = [] |
while self.tokens.peek() != "}": |
397,9 → 459,16
self.tokens.expect("{") |
members = {} |
while self.tokens.peek() != "}": |
type_, size, signed = self.parse_type_specifier() |
type_, size, signed, const = self.parse_type_specifier() |
name = self.tokens.get() |
members[name] = self.parse_declaration(type_, size, signed, name) |
|
members[name] = self.parse_declaration( |
type_, |
size, |
signed, |
const, |
name) |
|
self.tokens.expect(";") |
self.tokens.expect("}") |
return members |
429,10 → 498,17
self.scope[name] = instance |
return instance |
|
def parse_global_declaration(self, type_, size, signed, name): |
def parse_global_declaration(self, type_, size, signed, const, name): |
instances = [] |
while True: |
instance = self.parse_declaration(type_, size, signed, name).instance() |
|
instance = self.parse_declaration( |
type_, |
size, |
signed, |
const, |
name).instance() |
|
self.scope[name] = instance |
instances.append(instance) |
if self.tokens.peek() == ",": |
444,11 → 520,18
return CompoundDeclaration(instances) |
|
def parse_compound_declaration(self): |
type_, size, signed = self.parse_type_specifier() |
type_, size, signed, const = self.parse_type_specifier() |
instances = [] |
while True: |
name = self.tokens.get() |
instance = self.parse_declaration(type_, size, signed, name).instance() |
|
instance = self.parse_declaration( |
type_, |
size, |
signed, |
const, |
name).instance() |
|
self.scope[name] = instance |
instances.append(instance) |
if self.tokens.peek() == ",": |
459,17 → 542,24
self.tokens.expect(";") |
return CompoundDeclaration(instances) |
|
def parse_declaration(self, type_, size, signed, name): |
def parse_declaration(self, type_, size, signed, const, name): |
#struct declaration |
if type_ in self.structs: |
declaration = self.scope[type_] |
elif type_ in ["int"]: |
#array declaration |
elif type_ in ["int", "float"]: |
#array declaration |
if self.tokens.peek() == "[": |
array_size = None |
self.tokens.expect("[") |
if self.tokens.peek() != "]": |
array_size = int(self.tokens.get()) |
size_expression = self.parse_ternary_expression() |
if size_expression.type_() != "int": |
self.tokens.error("Array size must be an integer like expression") |
try: |
array_size = size_expression.value() |
except NotConstant: |
self.tokens.error("Array size must be constant") |
|
self.tokens.expect("]") |
initializer = None |
if self.tokens.peek() == "=": |
478,32 → 568,49
initializer = [ord(i) for i in initializer.strip('"').decode("string_escape")] + [0] |
array_size = len(initializer) |
if array_size is None: |
self.tokens.error("array size must be specified if not initialized") |
|
self.tokens.error( |
"array size must be specified if not initialized") |
|
array_type=type_+"[]" |
initialize_memory = self.initialize_memory |
declaration = ArrayDeclaration(self.allocator, |
array_size, |
array_type, |
type_, |
size, |
signed, |
initializer, |
self.initialize_memory) |
declaration = ArrayDeclaration( |
self.allocator, |
array_size, |
array_type, |
type_, |
size, |
signed, |
initializer, |
self.initialize_memory) |
|
#simple variable declaration |
#simple variable declaration |
else: |
if self.tokens.peek() == "=": |
self.tokens.expect("=") |
initializer = self.parse_ternary_expression() |
else: |
initializer = Constant(0) |
initializer = Constant(0, type_, size, signed) |
|
if type_ != initializer.type_(): |
|
if type_ == "int" and initializer.type_() == "float": |
initializer = FloatToInt(initializer) |
elif type_ == "float" and initializer.type_() == "int": |
initializer = IntToFloat(initializer) |
else: |
self.tokens.error( |
"type mismatch in intializer expected: %s actual: %s"%( |
type_, |
intitializer.type_())) |
declaration = VariableDeclaration( |
self.allocator, |
initializer, |
self.allocator, |
initializer, |
name, |
type_, |
size, |
signed |
signed, |
const |
) |
|
return declaration |
536,45 → 643,65
expression = AND(expression, self.parse_binary_expression(["|"])) |
return expression |
|
def substitute_function(self, operator, left, right): |
def substitute_function(self, binary_expression): |
|
""" |
For some operations are more easily implemented in sofftware. |
This function substitutes a call to the builtin library function. |
""" |
|
functions = { |
"False,int,int,4,/" : "long_unsigned_divide_xxxx", |
"True,int,int,4,/" : "long_divide_xxxx", |
"False,int,int,2,/" : "unsigned_divide_xxxx", |
"True,int,int,2,/" : "divide_xxxx", |
"False,int,int,4,%" : "long_unsigned_modulo_xxxx", |
"True,int,int,4,%" : "long_modulo_xxxx", |
"False,int,int,2,%" : "unsigned_modulo_xxxx", |
"True,int,int,2,%" : "modulo_xxxx", |
"True,float,float,4,==" : "float_equal_xxxx", |
"True,float,float,4,!=" : "float_ne_xxxx", |
"True,float,float,4,<" : "float_lt_xxxx", |
"True,float,float,4,>" : "float_gt_xxxx", |
"True,float,float,4,<=" : "float_le_xxxx", |
"True,float,float,4,>=" : "float_ge_xxxx", |
} |
|
#select a function that matches the template. |
signature = ",".join([ |
str(binary_expression.signed()), |
binary_expression.left.type_(), |
binary_expression.right.type_(), |
str(binary_expression.size()), |
binary_expression.operator]) |
|
#Some things can't be implemented in verilog, substitute them with a function |
if operator in ["/", "%"]: |
function_call = FunctionCall() |
function_call.arguments = [left, right] |
if operator == "/": |
if left.signed and right.signed: |
if max(left.size, right.size) == 4: |
function_call.function = self.scope["long_divide_xxxx"] |
else: |
function_call.function = self.scope["divide_xxxx"] |
else: |
if max(left.size, right.size) == 4: |
function_call.function = self.scope["long_unsigned_divide_xxxx"] |
else: |
function_call.function = self.scope["unsigned_divide_xxxx"] |
elif operator == "%": |
if left.signed and right.signed: |
if max(left.size, right.size) == 4: |
function_call.function = self.scope["long_modulo_xxxx"] |
else: |
function_call.function = self.scope["modulo_xxxx"] |
else: |
if max(left.size, right.size) == 4: |
function_call.function = self.scope["long_unsigned_modulo_xxxx"] |
else: |
function_call.function = self.scope["unsigned_modulo_xxxx"] |
function_call.type_ = function_call.function.type_ |
function_call.size = function_call.function.size |
function_call.signed = function_call.function.signed |
if signature in functions: |
function = self.scope[functions[signature]] |
function_call = FunctionCall(function) |
function_call.arguments = [binary_expression.left, binary_expression.right] |
return function_call |
else: |
return Binary( |
operator, |
left, |
right, |
self.allocator |
) |
return binary_expression |
|
def coerce_types(self, left, right): |
|
""" |
Convert numeric types in expressions. |
""" |
|
if left.type_() != right.type_(): |
if left.type_() == "float" and right.type_() == "int": |
return left, IntToFloat(right) |
elif left.type_() == "int" and right.type_() == "float": |
return IntToFloat(left), right |
else: |
self.tokens.error("Incompatible types : %s %s"%( |
left.type_(), |
right.type_())) |
|
return left, right |
|
def parse_binary_expression(self, operators): |
operator_precedence = { |
"|": ["^"], |
586,37 → 713,42
"+": ["*", "/", "%"], |
} |
if operators[0] not in operator_precedence: |
expression = self.parse_unary_expression() |
left = self.parse_unary_expression() |
while self.tokens.peek() in operators: |
operator = self.tokens.get() |
right = self.parse_unary_expression() |
expression = self.substitute_function(operator, expression, right) |
return expression |
left, right = self.coerce_types(left, right) |
left = Binary(operator, left, right) |
left = self.substitute_function(left) |
return left |
else: |
next_operators = operator_precedence[operators[0]] |
expression = self.parse_binary_expression(next_operators) |
left = self.parse_binary_expression(next_operators) |
while self.tokens.peek() in operators: |
expression = Binary( |
self.tokens.get(), |
expression, |
self.parse_binary_expression(next_operators), |
self.allocator |
) |
return expression |
operator = self.tokens.get() |
right = self.parse_binary_expression(next_operators) |
left, right = self.coerce_types(left, right) |
left = Binary(operator, left, right) |
left = self.substitute_function(left) |
return left |
|
def parse_unary_expression(self): |
if self.tokens.peek() == "!": |
operator = self.tokens.get() |
expression = self.parse_postfix_expression() |
return Binary("==", expression, Constant(0), self.allocator) |
return Binary("==", expression, Constant(0)) |
elif self.tokens.peek() == "-": |
operator = self.tokens.get() |
expression = self.parse_postfix_expression() |
return Binary("-", Constant(0), expression, self.allocator) |
return Binary("-", Constant(0, |
expression.type_(), |
expression.size(), |
expression.signed()), |
expression) |
elif self.tokens.peek() == "~": |
operator = self.tokens.get() |
expression = self.parse_postfix_expression() |
return Unary("~", expression, self.allocator) |
return Unary("~", expression) |
elif self.tokens.peek() == "sizeof": |
operator = self.tokens.get() |
expression = self.parse_unary_expression() |
630,7 → 762,7
operator = self.tokens.get() |
expression = PostIncrement( |
operator[:-1], |
expression, |
expression, |
self.allocator |
) |
return expression |
700,7 → 832,10
return self.parse_file_read() |
if name == "file_write": |
return self.parse_file_write() |
function_call = FunctionCall() |
if name not in self.scope: |
self.tokens.error("Unknown function: %s"%name) |
function = self.scope[name] |
function_call = FunctionCall(function) |
function_call.arguments = [] |
self.tokens.expect("(") |
while self.tokens.peek() != ")": |
711,13 → 846,7
break |
self.tokens.expect(")") |
|
if name not in self.scope: |
self.tokens.error("Unknown function: %s"%name) |
|
function_call.function = self.scope[name] |
function_call.type_ = function_call.function.type_ |
function_call.size = function_call.function.size |
function_call.signed = function_call.function.signed |
required_arguments = len(function_call.function.arguments) |
actual_arguments = len(function_call.arguments) |
if required_arguments != actual_arguments: |
724,22 → 853,29
self.tokens.error("Function %s takes %s arguments %s given."%( |
name, |
len(function_call.function.arguments), |
len(function_call.arguments) |
)) |
len(function_call.arguments))) |
required_arguments = function_call.function.arguments |
actual_arguments = function_call.arguments |
corrected_arguments = [] |
for required, actual in zip(required_arguments, actual_arguments): |
if not compatible(required.type_, actual.type_): |
self.tokens.error("Type mismatch expected type : %s got: %s."%( |
required.type_, |
actual.type_ |
)) |
if not compatible(required, actual): |
if actual.type_() == "int" and required.type_() == "float": |
actual = IntToFloat(actual) |
elif actual.type_() == "float" and required.type_() == "int": |
actual = FloatToInt(actual) |
else: |
self.tokens.error( |
"type mismatch in assignment expected: %s actual: %s"%( |
required.type_(), |
actual.type_())) |
corrected_arguments.append(actual) |
function_call.arguments = corrected_arguments |
|
|
return function_call |
|
def parse_number(self): |
token = self.tokens.get() |
type_ = "int" |
size = 2 |
signed = True |
if token.startswith("'"): |
754,18 → 890,36
size = len(initializer) |
initialize_memory = self.initialize_memory |
declaration = ArrayDeclaration( |
self.allocator, |
size, |
"int[]", |
"int", |
2, |
False, |
initializer, |
self.allocator, |
size, |
"int[]", |
"int", |
2, |
False, |
initializer, |
self.initialize_memory) |
return declaration.instance() |
return ConstArray(declaration.instance()) |
except SyntaxError: |
self.tokens.error("%s is not a character literal"%token) |
elif "." in token: |
#float literal |
try: |
type_ = "float" |
signed = True |
size = 4 |
token = token.upper().replace("F", "") |
token = token.upper().replace("L", "") |
value = float(eval(token)) |
|
try: |
byte_value = struct.pack(">f", value) |
except OverflowError: |
self.tokens.error("value too large") |
|
except SyntaxError: |
self.tokens.error("%s is not a floating point literal"%token) |
else: |
#integer literal |
try: |
if "U" in token.upper(): |
signed = False |
787,34 → 941,45
|
except SyntaxError: |
self.tokens.error("%s is not an integer literal"%token) |
return Constant(value, size, signed) |
|
return Constant(value, type_, size, signed) |
|
def parse_variable(self, name): |
if name not in self.scope: |
self.tokens.error("Unknown variable: %s"%name) |
instance = self.scope[name] |
return self.parse_variable_array_struct(instance) |
|
|
def parse_variable_array_struct(self, instance): |
if instance.type_ in ["unsigned", "int", "short", "long", "char"]: |
return Variable(instance, self.allocator) |
elif instance.type_.endswith("[]"): |
if instance.type_() in numeric_types: |
|
if not hasattr(instance, "reference"): |
|
self.tokens.error( |
"Not an expression") |
|
return Variable(instance) |
elif instance.type_().endswith("[]"): |
if self.tokens.peek() == "[": |
self.tokens.expect("[") |
index_expression = self.parse_expression() |
self.tokens.expect("]") |
if index_expression.type_ not in ["unsigned", "int", "short", "long", "char"]: |
if index_expression.type_() not in ["int"]: |
|
self.tokens.error( |
"array indices must be an integer like expression" |
) |
return ArrayIndex(instance, index_expression, self.allocator) |
"Array indices must be an integer like expression") |
|
return ArrayIndex(instance, index_expression) |
else: |
return Array(instance, self.allocator) |
elif instance.type_ == "struct": |
self.tokens.expect(".") |
member = self.tokens.get() |
instance = instance.members[member] |
return self.parse_variable_array_struct(instance) |
return Array(instance) |
elif instance.type_().startswith("struct"): |
if self.tokens.peek() == ".": |
self.tokens.expect(".") |
member = self.tokens.get() |
instance = instance.members[member] |
return self.parse_variable_array_struct(instance) |
else: |
return Struct(instance) |
|
def compatible(left, right): |
return left == right |
return left.type_() == right.type_() |
/tcp_socket/trunk/chips2/chips/compiler/verilog_area.py
14,22 → 14,24
__copyright__ = "Copyright (C) 2013, Jonathan P Dawson" |
__version__ = "0.1" |
|
import fpu |
|
def unique(l): |
|
"""In the absence of set in older python implementations, make list values unique""" |
"""In the absence of set in older python implementations, make list values unique""" |
|
return dict(zip(l, l)).keys() |
return dict(zip(l, l)).keys() |
|
def log2(instructions): |
|
"""Integer only algorithm to calculate the number of bits needed to store a number""" |
"""Integer only algorithm to calculate the number of bits needed to store a number""" |
|
bits = 1 |
power = 2 |
while power < instructions: |
bits += 1 |
power *= 2 |
return bits |
bits = 1 |
power = 2 |
while power < instructions: |
bits += 1 |
power *= 2 |
return bits |
|
def print_verilog_literal(size, value): |
|
60,7 → 62,7
if instruction["srcb"] == wait_2_for: |
wait = max(wait, 2) |
for i in range(wait): |
new_instructions.append({"op":"nop"}) |
new_instructions.append({"op":"nop"}) |
new_instructions.append(instruction) |
|
if instruction["op"] != "label": |
84,10 → 86,12
encoded_instruction["src"] = 0 |
encoded_instruction["srcb"] = 0 |
encoded_instruction["literal"] = 0 |
encoded_instruction["float"] = True |
opcode["op"] = instruction["op"] |
opcode["right"] = False |
opcode["unsigned"] = False |
opcode["literal"] = False |
opcode["literal"] = False |
opcode["float"] = False |
|
if "signed" in instruction: |
opcode["unsigned"] = not instruction["signed"] |
95,8 → 99,11
if "element_size" in instruction: |
opcode["element_size"] = instruction["element_size"] |
|
if "file_name" in instruction: |
opcode["file_name"] = instruction["file_name"] |
|
if "file" in instruction: |
opcode["file_"] = instruction["file"] |
opcode["file"] = instruction["file"] |
|
if "line" in instruction: |
opcode["line"] = instruction["line"] |
125,6 → 132,11
opcode["right"] = True |
encoded_instruction["literal"] = instruction["right"] |
|
if "type" in instruction: |
if instruction["type"] == "float": |
opcode["float"] = True |
encoded_instruction["float"] = True |
|
if "literal" in instruction: |
opcode["literal"] = True |
encoded_instruction["literal"] = instruction["literal"] |
147,389 → 159,539
|
def calculate_jumps(instructions): |
|
"""change symbolic labels into numeric addresses""" |
"""change symbolic labels into numeric addresses""" |
|
#calculate the values of jump locations |
location = 0 |
labels = {} |
new_instructions = [] |
for instruction in instructions: |
if instruction["op"] == "label": |
labels[instruction["label"]] = location |
else: |
new_instructions.append(instruction) |
location += 1 |
instructions = new_instructions |
#calculate the values of jump locations |
location = 0 |
labels = {} |
new_instructions = [] |
for instruction in instructions: |
if instruction["op"] == "label": |
labels[instruction["label"]] = location |
else: |
new_instructions.append(instruction) |
location += 1 |
instructions = new_instructions |
|
#substitue real values for labeled jump locations |
for instruction in instructions: |
if "label" in instruction: |
instruction["label"]=labels[instruction["label"]] |
#substitue real values for labeled jump locations |
for instruction in instructions: |
if "label" in instruction: |
instruction["label"]=labels[instruction["label"]] |
|
return instructions |
return instructions |
|
def generate_declarations(instructions, no_tb_mode, register_bits, opcode_bits): |
|
"""Generate verilog declarations""" |
"""Generate verilog declarations""" |
|
#list all inputs and outputs used in the program |
inputs = unique([i["input"] for i in instructions if "input" in i]) |
outputs = unique([i["output"] for i in instructions if "output" in i]) |
input_files = unique([i["file_name"] for i in instructions if "file_read" == i["op"]]) |
output_files = unique([i["file_name"] for i in instructions if "file_write" == i["op"]]) |
testbench = not inputs and not outputs and not no_tb_mode |
#list all inputs and outputs used in the program |
inputs = unique([i["input"] for i in instructions if "input" in i]) |
outputs = unique([i["output"] for i in instructions if "output" in i]) |
input_files = unique([i["file_name"] for i in instructions if "file_read" == i["op"]]) |
output_files = unique([i["file_name"] for i in instructions if "file_write" == i["op"]]) |
testbench = not inputs and not outputs and not no_tb_mode |
|
#Do not generate a port in testbench mode |
inports = [ |
("input_" + i, 16) for i in inputs |
] + [ |
("input_" + i + "_stb", 1) for i in inputs |
] + [ |
("output_" + i + "_ack", 1) for i in outputs |
] |
#Do not generate a port in testbench mode |
inports = [ |
("input_" + i, 16) for i in inputs |
] + [ |
("input_" + i + "_stb", 1) for i in inputs |
] + [ |
("output_" + i + "_ack", 1) for i in outputs |
] |
|
outports = [ |
("output_" + i, 16) for i in outputs |
] + [ |
("output_" + i + "_stb", 1) for i in outputs |
] + [ |
("input_" + i + "_ack", 1) for i in inputs |
] |
outports = [ |
("output_" + i, 16) for i in outputs |
] + [ |
("output_" + i + "_stb", 1) for i in outputs |
] + [ |
("input_" + i + "_ack", 1) for i in inputs |
] |
|
#create list of signals |
signals = [ |
("timer", 16), |
("timer_enable", 1), |
("stage_0_enable", 1), |
("stage_1_enable", 1), |
("stage_2_enable", 1), |
("program_counter", log2(len(instructions))), |
("program_counter_0", log2(len(instructions))), |
("instruction_0", 32 + register_bits*2 + opcode_bits), |
("opcode_0", opcode_bits), |
("dest_0", register_bits), |
("src_0", register_bits), |
("srcb_0", register_bits), |
("literal_0", 32), |
("program_counter_1", log2(len(instructions))), |
("opcode_1", opcode_bits), |
("dest_1", register_bits), |
("register_1", 32), |
("registerb_1", 32), |
("literal_1", 32), |
("dest_2", register_bits), |
("result_2", 32), |
("write_enable_2", 1), |
("address_2", 16), |
("data_out_2", 16), |
("data_in_2", 16), |
("memory_enable_2", 1), |
("address_4", 16), |
("data_out_4", 32), |
("data_in_4", 32), |
("memory_enable_4", 1), |
] + [ |
("s_output_" + i + "_stb", 16) for i in outputs |
] + [ |
("s_output_" + i, 16) for i in outputs |
] + [ |
("s_input_" + i + "_ack", 16) for i in inputs |
] |
#create list of signals |
signals = [ |
("timer", 16), |
("timer_enable", 1), |
("stage_0_enable", 1), |
("stage_1_enable", 1), |
("stage_2_enable", 1), |
("program_counter", log2(len(instructions))), |
("program_counter_0", log2(len(instructions))), |
("instruction_0", 32 + register_bits*2 + opcode_bits), |
("opcode_0", opcode_bits), |
("dest_0", register_bits), |
("src_0", register_bits), |
("srcb_0", register_bits), |
("literal_0", 32), |
("program_counter_1", log2(len(instructions))), |
("opcode_1", opcode_bits), |
("dest_1", register_bits), |
("register_1", 32), |
("registerb_1", 32), |
("literal_1", 32), |
("dest_2", register_bits), |
("result_2", 32), |
("write_enable_2", 1), |
("address_2", 16), |
("data_out_2", 16), |
("data_in_2", 16), |
("memory_enable_2", 1), |
("address_4", 16), |
("data_out_4", 32), |
("data_in_4", 32), |
("memory_enable_4", 1), |
] + [ |
("s_output_" + i + "_stb", 16) for i in outputs |
] + [ |
("s_output_" + i, 16) for i in outputs |
] + [ |
("s_input_" + i + "_ack", 16) for i in inputs |
] |
|
if testbench: |
signals.append(("clk", 1)) |
signals.append(("rst", 1)) |
else: |
inports.append(("clk", 1)) |
inports.append(("rst", 1)) |
if testbench: |
signals.append(("clk", 1)) |
signals.append(("rst", 1)) |
else: |
inports.append(("clk", 1)) |
inports.append(("rst", 1)) |
|
return inputs, outputs, input_files, output_files, testbench, inports, outports, signals |
return inputs, outputs, input_files, output_files, testbench, inports, outports, signals |
|
def generate_CHIP(input_file, |
name, |
instructions, |
output_file, |
registers, |
memory_size_2, |
memory_size_4, |
def floating_point_enables(instruction_set): |
enable_adder = False |
enable_multiplier = False |
enable_divider = False |
enable_int_to_float = False |
enable_float_to_int = False |
for i in instruction_set: |
if i["op"] == "+" and i["float"]: |
enable_adder = True |
if i["op"] == "-" and i["float"]: |
enable_adder = True |
if i["op"] == "*" and i["float"]: |
enable_multiplier = True |
if i["op"] == "/" and i["float"]: |
enable_divider = True |
if i["op"] == "int_to_float": |
enable_int_to_float = True |
if i["op"] == "float_to_int": |
enable_float_to_int = True |
return ( |
enable_adder, |
enable_multiplier, |
enable_divider, |
enable_int_to_float, |
enable_float_to_int) |
|
def generate_CHIP(input_file, |
name, |
instructions, |
output_file, |
registers, |
memory_size_2, |
memory_size_4, |
initialize_memory, |
memory_content_2, |
memory_content_4, |
memory_content_2, |
memory_content_4, |
no_tb_mode=False): |
|
"""A big ugly function to crunch through all the instructions and generate the CHIP equivilent""" |
"""A big ugly function to crunch through all the instructions and generate the CHIP equivilent""" |
|
instructions = remove_register_hazards(instructions) |
instructions = calculate_jumps(instructions) |
instruction_set, instruction_memory = generate_instruction_set(instructions) |
register_bits = log2(len(registers)); |
opcode_bits = log2(len(instruction_set)); |
instruction_bits = 32 + register_bits*2 + opcode_bits |
declarations = generate_declarations(instructions, no_tb_mode, register_bits, opcode_bits) |
inputs, outputs, input_files, output_files, testbench, inports, outports, signals = declarations |
instructions = remove_register_hazards(instructions) |
instructions = calculate_jumps(instructions) |
instruction_set, instruction_memory = generate_instruction_set(instructions) |
register_bits = log2(len(registers)); |
opcode_bits = log2(len(instruction_set)); |
instruction_bits = 32 + register_bits*2 + opcode_bits |
declarations = generate_declarations(instructions, no_tb_mode, register_bits, opcode_bits) |
inputs, outputs, input_files, output_files, testbench, inports, outports, signals = declarations |
enable_adder, enable_multiplier, enable_divider, enable_int_to_float, enable_float_to_int = floating_point_enables(instruction_set) |
|
#output the code in verilog |
output_file.write("//name : %s\n"%name) |
output_file.write("//tag : c components\n") |
for i in inputs: |
output_file.write("//input : input_%s:16\n"%i) |
for i in outputs: |
output_file.write("//output : output_%s:16\n"%i) |
output_file.write("//source_file : %s\n"%input_file) |
output_file.write("///%s\n"%"".join(["=" for i in name])) |
output_file.write("///\n") |
output_file.write("///*Created by C2CHIP*\n\n") |
#output the code in verilog |
output_file.write("//////////////////////////////////////////////////////////////////////////////\n") |
output_file.write("//name : %s\n"%name) |
for i in inputs: |
output_file.write("//input : input_%s:16\n"%i) |
for i in outputs: |
output_file.write("//output : output_%s:16\n"%i) |
output_file.write("//source_file : %s\n"%input_file) |
output_file.write("///%s\n"%"".join(["=" for i in name])) |
output_file.write("///\n") |
output_file.write("///Created by C2CHIP\n\n") |
|
if enable_adder: |
output_file.write(fpu.adder) |
if enable_divider: |
output_file.write(fpu.divider) |
if enable_multiplier: |
output_file.write(fpu.multiplier) |
if enable_int_to_float: |
output_file.write(fpu.int_to_float) |
if enable_float_to_int: |
output_file.write(fpu.float_to_int) |
|
output_file.write("//////////////////////////////////////////////////////////////////////////////\n") |
output_file.write("// Register Allocation\n") |
output_file.write("// ===================\n") |
output_file.write("// %s %s %s \n"%("Register".center(20), "Name".center(20), "Size".center(20))) |
for register, definition in registers.iteritems(): |
register_name, size = definition |
output_file.write("// %s %s %s \n"%(str(register).center(20), register_name.center(20), str(size).center(20))) |
|
output_file.write(" \n`timescale 1ns/1ps\n") |
output_file.write("module %s"%name) |
output_file.write("//////////////////////////////////////////////////////////////////////////////\n") |
output_file.write("// Register Allocation\n") |
output_file.write("// ===================\n") |
output_file.write("// %s %s %s \n"%("Register".center(20), "Name".center(20), "Size".center(20))) |
for register, definition in registers.iteritems(): |
register_name, size = definition |
output_file.write("// %s %s %s \n"%(str(register).center(20), register_name.center(20), str(size).center(20))) |
|
all_ports = [name for name, size in inports + outports] |
if all_ports: |
output_file.write("(") |
output_file.write(",".join(all_ports)) |
output_file.write(");\n") |
else: |
output_file.write(";\n") |
|
output_file.write(" integer file_count;\n") |
output_file.write("module %s"%name) |
|
input_files = dict(zip(input_files, ["input_file_%s"%i for i, j in enumerate(input_files)])) |
for i in input_files.values(): |
output_file.write(" integer %s;\n"%i) |
all_ports = [name for name, size in inports + outports] |
if all_ports: |
output_file.write("(") |
output_file.write(",".join(all_ports)) |
output_file.write(");\n") |
else: |
output_file.write(";\n") |
|
output_files = dict(zip(output_files, ["output_file_%s"%i for i, j in enumerate(output_files)])) |
for i in output_files.values(): |
output_file.write(" integer %s;\n"%i) |
output_file.write(" integer file_count;\n") |
|
|
def write_declaration(object_type, name, size, value=None): |
if size == 1: |
output_file.write(object_type) |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
else: |
output_file.write(object_type) |
output_file.write("[%i:0]"%(size-1)) |
output_file.write(" ") |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
if enable_adder: |
generate_adder_signals(output_file) |
if enable_multiplier: |
generate_multiplier_signals(output_file) |
if enable_divider: |
generate_divider_signals(output_file) |
if enable_int_to_float: |
generate_int_to_float_signals(output_file) |
if enable_float_to_int: |
generate_float_to_int_signals(output_file) |
|
for name, size in inports: |
write_declaration(" input ", name, size) |
output_file.write(" real fp_value;\n") |
if enable_adder or enable_multiplier or enable_divider or enable_int_to_float or enable_float_to_int: |
output_file.write(" parameter wait_go = 2'd0,\n") |
output_file.write(" write_a = 2'd1,\n") |
output_file.write(" write_b = 2'd2,\n") |
output_file.write(" read_z = 2'd3;\n") |
|
|
for name, size in outports: |
write_declaration(" output ", name, size) |
input_files = dict(zip(input_files, ["input_file_%s"%i for i, j in enumerate(input_files)])) |
for i in input_files.values(): |
output_file.write(" integer %s;\n"%i) |
|
for name, size in signals: |
write_declaration(" reg ", name, size) |
output_files = dict(zip(output_files, ["output_file_%s"%i for i, j in enumerate(output_files)])) |
for i in output_files.values(): |
output_file.write(" integer %s;\n"%i) |
|
memory_size_2 = int(memory_size_2) |
memory_size_4 = int(memory_size_4) |
if memory_size_2: |
output_file.write(" reg [15:0] memory_2 [%i:0];\n"%(memory_size_2-1)) |
if memory_size_4: |
output_file.write(" reg [31:0] memory_4 [%i:0];\n"%(memory_size_4-1)) |
|
output_file.write(" reg [%s:0] instructions [%i:0];\n"%(instruction_bits-1, len(instructions)-1)) |
output_file.write(" reg [31:0] registers [%i:0];\n"%(len(registers)-1)) |
def write_declaration(object_type, name, size, value=None): |
if size == 1: |
output_file.write(object_type) |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
else: |
output_file.write(object_type) |
output_file.write("[%i:0]"%(size-1)) |
output_file.write(" ") |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
|
for name, size in inports: |
write_declaration(" input ", name, size) |
|
#generate clock and reset in testbench mode |
if testbench: |
for name, size in outports: |
write_declaration(" output ", name, size) |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CLOCK AND RESET GENERATION \n") |
output_file.write(" // \n") |
output_file.write(" // This file was generated in test bench mode. In this mode, the verilog \n") |
output_file.write(" // output file can be executed directly within a verilog simulator. \n") |
output_file.write(" // In test bench mode, a simulated clock and reset signal are generated within\n") |
output_file.write(" // the output file. \n") |
output_file.write(" // Verilog files generated in testbecnch mode are not suitable for synthesis, \n") |
output_file.write(" // or for instantiation within a larger design.\n") |
for name, size in signals: |
write_declaration(" reg ", name, size) |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" rst <= 1'b1;\n") |
output_file.write(" #50 rst <= 1'b0;\n") |
output_file.write(" end\n\n") |
memory_size_2 = int(memory_size_2) |
memory_size_4 = int(memory_size_4) |
if memory_size_2: |
output_file.write(" reg [15:0] memory_2 [%i:0];\n"%(memory_size_2-1)) |
if memory_size_4: |
output_file.write(" reg [31:0] memory_4 [%i:0];\n"%(memory_size_4-1)) |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" clk <= 1'b0;\n") |
output_file.write(" while (1) begin\n") |
output_file.write(" #5 clk <= ~clk;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" reg [%s:0] instructions [%i:0];\n"%(instruction_bits-1, len(instructions)-1)) |
output_file.write(" reg [31:0] registers [%i:0];\n"%(len(registers)-1)) |
|
#Generate a state machine to execute the instructions |
binary_operators = ["+", "-", "*", "/", "|", "&", "^", "<<", ">>", "<",">", ">=", |
"<=", "==", "!="] |
|
#generate clock and reset in testbench mode |
if testbench: |
|
if initialize_memory and (memory_content_2 or memory_content_4): |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CLOCK AND RESET GENERATION \n") |
output_file.write(" // \n") |
output_file.write(" // This file was generated in test bench mode. In this mode, the verilog \n") |
output_file.write(" // output file can be executed directly within a verilog simulator. \n") |
output_file.write(" // In test bench mode, a simulated clock and reset signal are generated within\n") |
output_file.write(" // the output file. \n") |
output_file.write(" // Verilog files generated in testbecnch mode are not suitable for synthesis, \n") |
output_file.write(" // or for instantiation within a larger design.\n") |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // MEMORY INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // In order to reduce program size, array contents have been stored into \n") |
output_file.write(" // memory at initialization. In an FPGA, this will result in the memory being \n") |
output_file.write(" // initialized when the FPGA configures. \n") |
output_file.write(" // Memory will not be re-initialized at reset. \n") |
output_file.write(" // Dissable this behaviour using the no_initialize_memory switch \n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" rst <= 1'b1;\n") |
output_file.write(" #50 rst <= 1'b0;\n") |
output_file.write(" end\n\n") |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, content in memory_content_2.iteritems(): |
output_file.write(" memory_2[%s] = %s;\n"%(location, content)) |
for location, content in memory_content_4.iteritems(): |
output_file.write(" memory_4[%s] = %s;\n"%(location, content)) |
output_file.write(" end\n\n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" clk <= 1'b0;\n") |
output_file.write(" while (1) begin\n") |
output_file.write(" #5 clk <= ~clk;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
#Instance Floating Point Arithmetic |
if enable_adder or enable_multiplier or enable_divider or enable_int_to_float or enable_float_to_int: |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // INSTRUCTION INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // Initialise the contents of the instruction memory \n") |
output_file.write(" //\n") |
output_file.write(" // Intruction Set\n") |
output_file.write(" // ==============\n") |
for num, opcode in enumerate(instruction_set): |
output_file.write(" // %s %s\n"%(num, opcode)) |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // Floating Point Arithmetic \n") |
output_file.write(" // \n") |
output_file.write(" // Generate IEEE 754 single precision divider, adder and multiplier \n") |
output_file.write(" // \n") |
|
output_file.write(" // Intructions\n") |
output_file.write(" // ===========\n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, instruction in enumerate(instruction_memory): |
output_file.write(" instructions[%s] = {%s, %s, %s, %s};//%s\n"%( |
location, |
print_verilog_literal(opcode_bits, instruction["op"]), |
print_verilog_literal(register_bits, instruction["dest"]), |
print_verilog_literal(register_bits, instruction["src"]), |
print_verilog_literal(32, instruction["srcb"] | instruction["literal"]), |
instruction["comment"])) |
output_file.write(" end\n\n") |
if enable_divider: |
connect_divider(output_file) |
if enable_multiplier: |
connect_multiplier(output_file) |
if enable_adder: |
connect_adder(output_file) |
if enable_int_to_float: |
connect_int_to_float(output_file) |
if enable_float_to_int: |
connect_float_to_int(output_file) |
|
if input_files or output_files: |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // OPEN FILES \n") |
output_file.write(" // \n") |
output_file.write(" // Open all files used at the start of the process \n") |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for file_name, file_ in input_files.iteritems(): |
output_file.write(" %s = $fopenr(\"%s\");\n"%(file_, file_name)) |
for file_name, file_ in output_files.iteritems(): |
output_file.write(" %s = $fopen(\"%s\");\n"%(file_, file_name)) |
output_file.write(" end\n\n") |
#Generate a state machine to execute the instructions |
binary_operators = ["+", "-", "*", "/", "|", "&", "^", "<<", ">>", "<",">", ">=", |
"<=", "==", "!="] |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CPU IMPLEMENTAION OF C PROCESS \n") |
output_file.write(" // \n") |
output_file.write(" // This section of the file contains a CPU implementing the C process. \n") |
|
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
if initialize_memory and (memory_content_2 or memory_content_4): |
|
if memory_size_2: |
output_file.write(" //implement memory for 2 byte x n arrays\n") |
output_file.write(" if (memory_enable_2 == 1'b1) begin\n") |
output_file.write(" memory_2[address_2] <= data_in_2;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_2 <= memory_2[address_2];\n") |
output_file.write(" memory_enable_2 <= 1'b0;\n\n") |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // MEMORY INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // In order to reduce program size, array contents have been stored into \n") |
output_file.write(" // memory at initialization. In an FPGA, this will result in the memory being \n") |
output_file.write(" // initialized when the FPGA configures. \n") |
output_file.write(" // Memory will not be re-initialized at reset. \n") |
output_file.write(" // Dissable this behaviour using the no_initialize_memory switch \n") |
|
if memory_size_4: |
output_file.write(" //implement memory for 4 byte x n arrays\n") |
output_file.write(" if (memory_enable_4 == 1'b1) begin\n") |
output_file.write(" memory_4[address_4] <= data_in_4;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_4 <= memory_4[address_4];\n") |
output_file.write(" memory_enable_4 <= 1'b0;\n\n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, content in memory_content_2.iteritems(): |
output_file.write(" memory_2[%s] = %s;\n"%(location, content)) |
for location, content in memory_content_4.iteritems(): |
output_file.write(" memory_4[%s] = %s;\n"%(location, content)) |
output_file.write(" end\n\n") |
|
output_file.write(" write_enable_2 <= 0;\n") |
|
output_file.write(" //stage 0 instruction fetch\n") |
output_file.write(" if (stage_0_enable) begin\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" instruction_0 <= instructions[program_counter];\n") |
output_file.write(" opcode_0 = instruction_0[%s:%s];\n"%( |
register_bits * 2 + opcode_bits + 31, |
register_bits * 2 + 32)) |
output_file.write(" dest_0 = instruction_0[%s:%s];\n"%( |
register_bits * 2 + 31, |
register_bits + 32)) |
output_file.write(" src_0 = instruction_0[%s:32];\n"%( |
register_bits + 31)) |
output_file.write(" srcb_0 = instruction_0[%s:0];\n"%(register_bits-1)) |
output_file.write(" literal_0 = instruction_0[31:0];\n") |
output_file.write(" if(write_enable_2) begin\n") |
output_file.write(" registers[dest_2] <= result_2;\n") |
output_file.write(" end\n") |
output_file.write(" program_counter_0 <= program_counter;\n") |
output_file.write(" program_counter <= program_counter + 1;\n") |
output_file.write(" end\n\n") |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // INSTRUCTION INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // Initialise the contents of the instruction memory \n") |
output_file.write(" //\n") |
output_file.write(" // Intruction Set\n") |
output_file.write(" // ==============\n") |
for num, opcode in enumerate(instruction_set): |
output_file.write(" // %s %s\n"%(num, opcode)) |
|
output_file.write(" //stage 1 opcode fetch\n") |
output_file.write(" if (stage_1_enable) begin\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" register_1 <= registers[src_0];\n") |
output_file.write(" registerb_1 <= registers[srcb_0];\n") |
output_file.write(" dest_1 <= dest_0;\n") |
output_file.write(" literal_1 <= literal_0;\n") |
output_file.write(" opcode_1 <= opcode_0;\n") |
output_file.write(" program_counter_1 <= program_counter_0;\n") |
output_file.write(" end\n\n") |
output_file.write(" // Intructions\n") |
output_file.write(" // ===========\n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, instruction in enumerate(instruction_memory): |
output_file.write(" instructions[%s] = {%s, %s, %s, %s};//%s\n"%( |
location, |
print_verilog_literal(opcode_bits, instruction["op"]), |
print_verilog_literal(register_bits, instruction["dest"]), |
print_verilog_literal(register_bits, instruction["src"]), |
print_verilog_literal(32, instruction["srcb"] | instruction["literal"]), |
instruction["comment"])) |
output_file.write(" end\n\n") |
|
output_file.write(" //stage 2 opcode fetch\n") |
output_file.write(" if (stage_2_enable) begin\n") |
output_file.write(" dest_2 <= dest_1;\n") |
output_file.write(" case(opcode_1)\n\n") |
if input_files or output_files: |
|
#A frame is executed in each state |
for opcode, instruction in enumerate(instruction_set): |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // OPEN FILES \n") |
output_file.write(" // \n") |
output_file.write(" // Open all files used at the start of the process \n") |
|
if instruction["op"] == "literal": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= literal_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for file_name, file_ in input_files.iteritems(): |
output_file.write(" %s = $fopenr(\"%s\");\n"%(file_, file_name)) |
for file_name, file_ in output_files.iteritems(): |
output_file.write(" %s = $fopen(\"%s\");\n"%(file_, file_name)) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "move": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= register_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CPU IMPLEMENTAION OF C PROCESS \n") |
output_file.write(" // \n") |
output_file.write(" // This section of the file contains a CPU implementing the C process. \n") |
|
elif instruction["op"] == "~": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= ~register_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
|
elif instruction["op"] in binary_operators: |
if memory_size_2: |
output_file.write(" //implement memory for 2 byte x n arrays\n") |
output_file.write(" if (memory_enable_2 == 1'b1) begin\n") |
output_file.write(" memory_2[address_2] <= data_in_2;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_2 <= memory_2[address_2];\n") |
output_file.write(" memory_enable_2 <= 1'b0;\n\n") |
|
if memory_size_4: |
output_file.write(" //implement memory for 4 byte x n arrays\n") |
output_file.write(" if (memory_enable_4 == 1'b1) begin\n") |
output_file.write(" memory_4[address_4] <= data_in_4;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_4 <= memory_4[address_4];\n") |
output_file.write(" memory_enable_4 <= 1'b0;\n\n") |
|
output_file.write(" write_enable_2 <= 0;\n") |
|
if enable_divider: |
output_file.write(" divider_go <= 0;\n") |
if enable_multiplier: |
output_file.write(" multiplier_go <= 0;\n") |
if enable_adder: |
output_file.write(" adder_go <= 0;\n") |
if enable_int_to_float: |
output_file.write(" int_to_float_go <= 0;\n") |
if enable_float_to_int: |
output_file.write(" float_to_int_go <= 0;\n") |
|
output_file.write(" //stage 0 instruction fetch\n") |
output_file.write(" if (stage_0_enable) begin\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" instruction_0 <= instructions[program_counter];\n") |
output_file.write(" opcode_0 = instruction_0[%s:%s];\n"%( |
register_bits * 2 + opcode_bits + 31, |
register_bits * 2 + 32)) |
output_file.write(" dest_0 = instruction_0[%s:%s];\n"%( |
register_bits * 2 + 31, |
register_bits + 32)) |
output_file.write(" src_0 = instruction_0[%s:32];\n"%( |
register_bits + 31)) |
output_file.write(" srcb_0 = instruction_0[%s:0];\n"%(register_bits-1)) |
output_file.write(" literal_0 = instruction_0[31:0];\n") |
output_file.write(" if(write_enable_2) begin\n") |
output_file.write(" registers[dest_2] <= result_2;\n") |
output_file.write(" end\n") |
output_file.write(" program_counter_0 <= program_counter;\n") |
output_file.write(" program_counter <= program_counter + 1;\n") |
output_file.write(" end\n\n") |
|
output_file.write(" //stage 1 opcode fetch\n") |
output_file.write(" if (stage_1_enable) begin\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" register_1 <= registers[src_0];\n") |
output_file.write(" registerb_1 <= registers[srcb_0];\n") |
output_file.write(" dest_1 <= dest_0;\n") |
output_file.write(" literal_1 <= literal_0;\n") |
output_file.write(" opcode_1 <= opcode_0;\n") |
output_file.write(" program_counter_1 <= program_counter_0;\n") |
output_file.write(" end\n\n") |
|
output_file.write(" //stage 2 opcode fetch\n") |
output_file.write(" if (stage_2_enable) begin\n") |
output_file.write(" dest_2 <= dest_1;\n") |
output_file.write(" case(opcode_1)\n\n") |
|
#A frame is executed in each state |
for opcode, instruction in enumerate(instruction_set): |
|
if instruction["op"] == "literal": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= literal_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "move": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= register_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "~": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= ~register_1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "int_to_float": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" int_to <= register_1;\n") |
output_file.write(" int_to_float_go <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "float_to_int": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" float_to <= register_1;\n") |
output_file.write(" float_to_int_go <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] in binary_operators: |
if instruction["literal"]: |
if instruction["unsigned"]: |
if instruction["float"]: |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["op"] == "/": |
if instruction["right"]: |
output_file.write(" divider_a <= register_1;\n") |
output_file.write(" divider_b <= literal_1;\n") |
else: |
output_file.write(" divider_a <= literal_1;\n") |
output_file.write(" divider_b <= register_1;\n") |
output_file.write(" divider_go <= 1;\n") |
elif instruction["op"] == "*": |
if instruction["right"]: |
output_file.write(" multiplier_a <= register_1;\n") |
output_file.write(" multiplier_b <= literal_1;\n") |
else: |
output_file.write(" multiplier_a <= literal_1;\n") |
output_file.write(" multiplier_b <= register_1;\n") |
output_file.write(" multiplier_go <= 1;\n") |
elif instruction["op"] == "+": |
if instruction["right"]: |
output_file.write(" adder_a <= register_1;\n") |
output_file.write(" adder_b <= literal_1;\n") |
else: |
output_file.write(" adder_a <= literal_1;\n") |
output_file.write(" adder_b <= register_1;\n") |
output_file.write(" adder_go <= 1;\n") |
elif instruction["op"] == "-": |
if instruction["right"]: |
output_file.write(" adder_a <= register_1;\n") |
output_file.write(" adder_b <= {~literal_1[31], literal_1[30:0]};\n") |
else: |
output_file.write(" adder_a <= literal_1;\n") |
output_file.write(" adder_b <= {~register_1[31], register_1[30:0]};\n") |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["unsigned"]: |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["right"]: |
output_file.write(" result_2 <= $unsigned(register_1) %s $unsigned(literal_1);\n"%(instruction["op"])) |
else: |
548,9 → 710,32
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
else: |
if instruction["unsigned"]: |
if instruction["float"]: |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["op"] == "/": |
output_file.write(" divider_a <= register_1;\n") |
output_file.write(" divider_b <= registerb_1;\n") |
output_file.write(" divider_go <= 1;\n") |
elif instruction["op"] == "*": |
output_file.write(" multiplier_a <= register_1;\n") |
output_file.write(" multiplier_b <= registerb_1;\n") |
output_file.write(" multiplier_go <= 1;\n") |
elif instruction["op"] == "+": |
output_file.write(" adder_a <= register_1;\n") |
output_file.write(" adder_b <= registerb_1;\n") |
output_file.write(" adder_go <= 1;\n") |
elif instruction["op"] == "-": |
output_file.write(" adder_a <= register_1;\n") |
output_file.write(" adder_b <= {~registerb_1[31], registerb_1[30:0]};\n") |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["unsigned"]: |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= $unsigned(register_1) %s $unsigned(registerb_1);\n"%(instruction["op"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
563,237 → 748,634
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "jmp_if_false": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 == 0) begin\n"); |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "jmp_if_false": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 == 0) begin\n"); |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "jmp_if_true": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 != 0) begin\n"); |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "jmp_if_true": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 != 0) begin\n"); |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "jmp_and_link": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" result_2 <= program_counter_1 + 1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "jmp_and_link": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" result_2 <= program_counter_1 + 1;\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "jmp_to_reg": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= register_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "jmp_to_reg": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= register_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "goto": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "goto": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= literal_1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "file_read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" file_count = $fscanf(%s, \"%%d\\n\", result_2);\n"%( |
input_files[instruction["file_"]])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "file_read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" file_count = $fscanf(%s, \"%%d\\n\", result_2);\n"%( |
input_files[instruction["file_name"]])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "file_write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" $fdisplay(%s, \"%%d\", register_1);\n"%( |
output_files[instruction["file_name"]])) |
output_file.write(" end\n\n") |
elif instruction["op"] == "file_write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["float"]: |
output_file.write(' fp_value = (register_1[31]?-1.0:1.0) *\n') |
output_file.write(' (2.0 ** (register_1[30:23]-127.0)) *\n') |
output_file.write(' ({1\'d1, register_1[22:0]} / (2.0**23));\n') |
output_file.write(' $fdisplay (%s, "%%f", fp_value);\n'%( |
output_files[instruction["file_name"]])) |
else: |
output_file.write(" $fdisplay(%s, \"%%d\", register_1);\n"%( |
output_files[instruction["file_name"]])) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" s_input_%s_ack <= 1'b1;\n"%instruction["input"]) |
output_file.write(" end\n\n") |
elif instruction["op"] == "read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" s_input_%s_ack <= 1'b1;\n"%instruction["input"]) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "ready": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= 0;\n") |
output_file.write(" result_2[0] <= input_%s_stb;\n"%( |
instruction["input"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "ready": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= 0;\n") |
output_file.write(" result_2[0] <= input_%s_stb;\n"%( |
instruction["input"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" s_output_%s_stb <= 1'b1;\n"%instruction["output"]) |
output_file.write(" s_output_%s <= register_1;\n"%instruction["output"]) |
output_file.write(" end\n\n") |
elif instruction["op"] == "write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" s_output_%s_stb <= 1'b1;\n"%instruction["output"]) |
output_file.write(" s_output_%s <= register_1;\n"%instruction["output"]) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "memory_read_request": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" address_%s <= register_1;\n"%( |
instruction["element_size"])) |
output_file.write(" end\n\n") |
elif instruction["op"] == "memory_read_request": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" address_%s <= register_1;\n"%( |
instruction["element_size"])) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "memory_read_wait": |
pass |
elif instruction["op"] == "memory_read_wait": |
pass |
|
elif instruction["op"] == "memory_read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= data_out_%s;\n"%( |
instruction["element_size"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "memory_read": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" result_2 <= data_out_%s;\n"%( |
instruction["element_size"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "memory_write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" address_%s <= register_1;\n"%( |
instruction["element_size"])) |
output_file.write(" data_in_%s <= registerb_1;\n"%( |
instruction["element_size"])) |
output_file.write(" memory_enable_%s <= 1'b1;\n"%( |
instruction["element_size"])) |
output_file.write(" end\n\n") |
elif instruction["op"] == "memory_write": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" address_%s <= register_1;\n"%( |
instruction["element_size"])) |
output_file.write(" data_in_%s <= registerb_1;\n"%( |
instruction["element_size"])) |
output_file.write(" memory_enable_%s <= 1'b1;\n"%( |
instruction["element_size"])) |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "assert": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 == 0) begin\n") |
output_file.write(" $display(\"Assertion failed at line: %s in file: %s\");\n"%( |
instruction["line"], |
instruction["file_"])) |
output_file.write(" $finish_and_return(1);\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "assert": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" if (register_1 == 0) begin\n") |
output_file.write(" $display(\"Assertion failed at line: %s in file: %s\");\n"%( |
instruction["line"], |
instruction["file"])) |
output_file.write(" $finish_and_return(1);\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "wait_clocks": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" timer <= register_1;\n") |
output_file.write(" timer_enable <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "wait_clocks": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
output_file.write(" timer <= register_1;\n") |
output_file.write(" timer_enable <= 1;\n") |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "report": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["unsigned"]: |
output_file.write(' $display ("%%d (report at line: %s in file: %s)", $unsigned(register_1));\n'%( |
instruction["line"], |
instruction["file_"])) |
else: |
output_file.write(' $display ("%%d (report at line: %s in file: %s)", $signed(register_1));\n'%( |
instruction["line"], |
instruction["file_"],)) |
output_file.write(" end\n\n") |
elif instruction["op"] == "report": |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
if instruction["float"]: |
|
output_file.write(' fp_value = (register_1[31]?-1.0:1.0) *\n') |
output_file.write(' (2.0 ** (register_1[30:23]-127.0)) *\n') |
output_file.write(' ({1\'d1, register_1[22:0]} / (2.0**23));\n') |
|
elif instruction["op"] == "stop": |
#If we are in testbench mode stop the simulation |
#If we are part of a larger design, other C programs may still be running |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
for file_ in input_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
for file_ in output_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
if testbench: |
output_file.write(' $finish;\n') |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
output_file.write(' $display ("%%f (report at line: %s in file: %s)", fp_value);\n'%( |
instruction["line"], |
instruction["file"])) |
|
elif instruction["unsigned"]: |
|
output_file.write(" endcase\n") |
output_file.write(" end\n") |
output_file.write(' $display ("%%d (report at line: %s in file: %s)", $unsigned(register_1));\n'%( |
instruction["line"], |
instruction["file"])) |
|
for instruction in instruction_set: |
else: |
|
if instruction["op"] == "read": |
output_file.write(" if (s_input_%s_ack == 1'b1 && input_%s_stb == 1'b1) begin\n"%( |
instruction["input"], |
instruction["input"])) |
output_file.write(" result_2 <= input_%s;\n"%(instruction["input"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" s_input_%s_ack <= 1'b0;\n"%instruction["input"]) |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
output_file.write(' $display ("%%d (report at line: %s in file: %s)", $signed(register_1));\n'%( |
instruction["line"], |
instruction["file"],)) |
|
elif instruction["op"] == "write": |
output_file.write(" if (s_output_%s_stb == 1'b1 && output_%s_ack == 1'b1) begin\n"%( |
instruction["output"], |
instruction["output"])) |
output_file.write(" s_output_%s_stb <= 1'b0;\n"%instruction["output"]) |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
output_file.write(" end\n\n") |
|
output_file.write(" if (timer == 0) begin\n") |
output_file.write(" if (timer_enable) begin\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" timer_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end else begin\n") |
output_file.write(" timer <= timer - 1;\n") |
output_file.write(" end\n\n") |
elif instruction["op"] == "stop": |
#If we are in testbench mode stop the simulation |
#If we are part of a larger design, other C programs may still be running |
output_file.write(" 16'd%s:\n"%(opcode)) |
output_file.write(" begin\n") |
for file_ in input_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
for file_ in output_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
if testbench: |
output_file.write(' $finish;\n') |
output_file.write(" stage_0_enable <= 0;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" end\n\n") |
|
#Reset program counter and control signals |
output_file.write(" if (rst == 1'b1) begin\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" timer <= 0;\n") |
output_file.write(" timer_enable <= 0;\n") |
output_file.write(" program_counter <= 0;\n") |
for i in inputs: |
output_file.write(" s_input_%s_ack <= 0;\n"%(i)) |
for i in outputs: |
output_file.write(" s_output_%s_stb <= 0;\n"%(i)) |
output_file.write(" end\n") |
output_file.write(" end\n") |
for i in inputs: |
output_file.write(" assign input_%s_ack = s_input_%s_ack;\n"%(i, i)) |
for i in outputs: |
output_file.write(" assign output_%s_stb = s_output_%s_stb;\n"%(i, i)) |
output_file.write(" assign output_%s = s_output_%s;\n"%(i, i)) |
output_file.write("\nendmodule\n") |
|
return inputs, outputs |
output_file.write(" endcase\n") |
output_file.write(" end\n") |
|
for instruction in instruction_set: |
|
if instruction["op"] == "read": |
output_file.write(" if (s_input_%s_ack == 1'b1 && input_%s_stb == 1'b1) begin\n"%( |
instruction["input"], |
instruction["input"])) |
output_file.write(" result_2 <= input_%s;\n"%(instruction["input"])) |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" s_input_%s_ack <= 1'b0;\n"%instruction["input"]) |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
elif instruction["op"] == "write": |
output_file.write(" if (s_output_%s_stb == 1'b1 && output_%s_ack == 1'b1) begin\n"%( |
instruction["output"], |
instruction["output"])) |
output_file.write(" s_output_%s_stb <= 1'b0;\n"%instruction["output"]) |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
output_file.write(" if (timer == 0) begin\n") |
output_file.write(" if (timer_enable) begin\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" timer_enable <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end else begin\n") |
output_file.write(" timer <= timer - 1;\n") |
output_file.write(" end\n\n") |
|
|
if enable_adder: |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
if enable_multiplier: |
output_file.write(" if (multiplier_done) begin\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
if enable_divider: |
output_file.write(" if (divider_done) begin\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
if enable_int_to_float: |
output_file.write(" if (int_to_float_done) begin\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
if enable_float_to_int: |
output_file.write(" if (float_to_int_done) begin\n") |
output_file.write(" write_enable_2 <= 1;\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 1;\n") |
output_file.write(" stage_2_enable <= 1;\n") |
output_file.write(" end\n\n") |
|
#Reset program counter and control signals |
output_file.write(" if (rst == 1'b1) begin\n") |
output_file.write(" stage_0_enable <= 1;\n") |
output_file.write(" stage_1_enable <= 0;\n") |
output_file.write(" stage_2_enable <= 0;\n") |
output_file.write(" timer <= 0;\n") |
output_file.write(" timer_enable <= 0;\n") |
output_file.write(" program_counter <= 0;\n") |
for i in inputs: |
output_file.write(" s_input_%s_ack <= 0;\n"%(i)) |
for i in outputs: |
output_file.write(" s_output_%s_stb <= 0;\n"%(i)) |
output_file.write(" end\n") |
output_file.write(" end\n") |
for i in inputs: |
output_file.write(" assign input_%s_ack = s_input_%s_ack;\n"%(i, i)) |
for i in outputs: |
output_file.write(" assign output_%s_stb = s_output_%s_stb;\n"%(i, i)) |
output_file.write(" assign output_%s = s_output_%s;\n"%(i, i)) |
output_file.write("\nendmodule\n") |
|
return inputs, outputs |
|
def connect_float_to_int(output_file): |
output_file.write(" \n float_to_int float_to_int_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(float_to),\n") |
output_file.write(" .input_a_stb(float_to_stb),\n") |
output_file.write(" .input_a_ack(float_to_ack),\n") |
output_file.write(" .output_z(to_int),\n") |
output_file.write(" .output_z_stb(to_int_stb),\n") |
output_file.write(" .output_z_ack(to_int_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" float_to_int_done <= 0;\n") |
output_file.write(" case(float_to_int_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (float_to_int_go) begin\n") |
output_file.write(" float_to_int_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" float_to_stb <= 1;\n") |
output_file.write(" if (float_to_stb && float_to_ack) begin\n") |
output_file.write(" float_to_stb <= 0;\n") |
output_file.write(" float_to_int_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" to_int_ack <= 1;\n") |
output_file.write(" if (to_int_stb && to_int_ack) begin\n") |
output_file.write(" to_int_ack <= 0;\n") |
output_file.write(" result_2 <= to_int;\n") |
output_file.write(" float_to_int_state <= wait_go;\n") |
output_file.write(" float_to_int_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" float_to_int_state <= wait_go;\n") |
output_file.write(" float_to_stb <= 0;\n") |
output_file.write(" to_int_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def connect_int_to_float(output_file): |
output_file.write(" \n int_to_float int_to_float_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(int_to),\n") |
output_file.write(" .input_a_stb(int_to_stb),\n") |
output_file.write(" .input_a_ack(int_to_ack),\n") |
output_file.write(" .output_z(to_float),\n") |
output_file.write(" .output_z_stb(to_float_stb),\n") |
output_file.write(" .output_z_ack(to_float_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" int_to_float_done <= 0;\n") |
output_file.write(" case(int_to_float_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (int_to_float_go) begin\n") |
output_file.write(" int_to_float_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" int_to_stb <= 1;\n") |
output_file.write(" if (int_to_stb && int_to_ack) begin\n") |
output_file.write(" int_to_stb <= 0;\n") |
output_file.write(" int_to_float_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" to_float_ack <= 1;\n") |
output_file.write(" if (to_float_stb && to_float_ack) begin\n") |
output_file.write(" to_float_ack <= 0;\n") |
output_file.write(" result_2 <= to_float;\n") |
output_file.write(" int_to_float_state <= wait_go;\n") |
output_file.write(" int_to_float_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" int_to_float_state <= wait_go;\n") |
output_file.write(" int_to_stb <= 0;\n") |
output_file.write(" to_float_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def connect_divider(output_file): |
output_file.write(" \n divider divider_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(divider_a),\n") |
output_file.write(" .input_a_stb(divider_a_stb),\n") |
output_file.write(" .input_a_ack(divider_a_ack),\n") |
output_file.write(" .input_b(divider_b),\n") |
output_file.write(" .input_b_stb(divider_b_stb),\n") |
output_file.write(" .input_b_ack(divider_b_ack),\n") |
output_file.write(" .output_z(divider_z),\n") |
output_file.write(" .output_z_stb(divider_z_stb),\n") |
output_file.write(" .output_z_ack(divider_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" divider_done <= 0;\n") |
output_file.write(" case(div_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (divider_go) begin\n") |
output_file.write(" div_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_a_stb <= 1;\n") |
output_file.write(" if (divider_a_stb && divider_a_ack) begin\n") |
output_file.write(" divider_a_stb <= 0;\n") |
output_file.write(" div_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_b_stb <= 1;\n") |
output_file.write(" if (divider_b_stb && divider_b_ack) begin\n") |
output_file.write(" divider_b_stb <= 0;\n") |
output_file.write(" div_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_z_ack <= 1;\n") |
output_file.write(" if (divider_z_stb && divider_z_ack) begin\n") |
output_file.write(" divider_z_ack <= 0;\n") |
output_file.write(" result_2 <= divider_z;\n") |
output_file.write(" div_state <= wait_go;\n") |
output_file.write(" divider_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" div_state <= wait_go;\n") |
output_file.write(" divider_a_stb <= 0;\n") |
output_file.write(" divider_b_stb <= 0;\n") |
output_file.write(" divider_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def connect_multiplier(output_file): |
output_file.write(" \n multiplier multiplier_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(multiplier_a),\n") |
output_file.write(" .input_a_stb(multiplier_a_stb),\n") |
output_file.write(" .input_a_ack(multiplier_a_ack),\n") |
output_file.write(" .input_b(multiplier_b),\n") |
output_file.write(" .input_b_stb(multiplier_b_stb),\n") |
output_file.write(" .input_b_ack(multiplier_b_ack),\n") |
output_file.write(" .output_z(multiplier_z),\n") |
output_file.write(" .output_z_stb(multiplier_z_stb),\n") |
output_file.write(" .output_z_ack(multiplier_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" multiplier_done <= 0;\n") |
output_file.write(" case(mul_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (multiplier_go) begin\n") |
output_file.write(" mul_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_a_stb <= 1;\n") |
output_file.write(" if (multiplier_a_stb && multiplier_a_ack) begin\n") |
output_file.write(" multiplier_a_stb <= 0;\n") |
output_file.write(" mul_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_b_stb <= 1;\n") |
output_file.write(" if (multiplier_b_stb && multiplier_b_ack) begin\n") |
output_file.write(" multiplier_b_stb <= 0;\n") |
output_file.write(" mul_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_z_ack <= 1;\n") |
output_file.write(" if (multiplier_z_stb && multiplier_z_ack) begin\n") |
output_file.write(" multiplier_z_ack <= 0;\n") |
output_file.write(" result_2 <= multiplier_z;\n") |
output_file.write(" mul_state <= wait_go;\n") |
output_file.write(" multiplier_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" endcase\n\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" mul_state <= wait_go;\n") |
output_file.write(" multiplier_a_stb <= 0;\n") |
output_file.write(" multiplier_b_stb <= 0;\n") |
output_file.write(" multiplier_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def connect_adder(output_file): |
output_file.write(" \n adder adder_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(adder_a),\n") |
output_file.write(" .input_a_stb(adder_a_stb),\n") |
output_file.write(" .input_a_ack(adder_a_ack),\n") |
output_file.write(" .input_b(adder_b),\n") |
output_file.write(" .input_b_stb(adder_b_stb),\n") |
output_file.write(" .input_b_ack(adder_b_ack),\n") |
output_file.write(" .output_z(adder_z),\n") |
output_file.write(" .output_z_stb(adder_z_stb),\n") |
output_file.write(" .output_z_ack(adder_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" adder_done <= 0;\n") |
output_file.write(" case(add_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (adder_go) begin\n") |
output_file.write(" add_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_a_stb <= 1;\n") |
output_file.write(" if (adder_a_stb && adder_a_ack) begin\n") |
output_file.write(" adder_a_stb <= 0;\n") |
output_file.write(" add_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_b_stb <= 1;\n") |
output_file.write(" if (adder_b_stb && adder_b_ack) begin\n") |
output_file.write(" adder_b_stb <= 0;\n") |
output_file.write(" add_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_z_ack <= 1;\n") |
output_file.write(" if (adder_z_stb && adder_z_ack) begin\n") |
output_file.write(" adder_z_ack <= 0;\n") |
output_file.write(" result_2 <= adder_z;\n") |
output_file.write(" add_state <= wait_go;\n") |
output_file.write(" adder_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" add_state <= wait_go;\n") |
output_file.write(" adder_a_stb <= 0;\n") |
output_file.write(" adder_b_stb <= 0;\n") |
output_file.write(" adder_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def generate_float_to_int_signals(output_file): |
output_file.write(" reg [31:0] float_to;\n") |
output_file.write(" reg float_to_stb;\n") |
output_file.write(" wire float_to_ack;\n") |
output_file.write(" wire [31:0] to_int;\n") |
output_file.write(" wire to_int_stb;\n") |
output_file.write(" reg to_int_ack;\n") |
output_file.write(" reg [1:0] float_to_int_state;\n") |
output_file.write(" reg float_to_int_go;\n") |
output_file.write(" reg float_to_int_done;\n") |
|
def generate_int_to_float_signals(output_file): |
output_file.write(" reg [31:0] int_to;\n") |
output_file.write(" reg int_to_stb;\n") |
output_file.write(" wire int_to_ack;\n") |
output_file.write(" wire [31:0] to_float;\n") |
output_file.write(" wire to_float_stb;\n") |
output_file.write(" reg to_float_ack;\n") |
output_file.write(" reg [1:0] int_to_float_state;\n") |
output_file.write(" reg int_to_float_go;\n") |
output_file.write(" reg int_to_float_done;\n") |
|
def generate_divider_signals(output_file): |
output_file.write(" reg [31:0] divider_a;\n") |
output_file.write(" reg divider_a_stb;\n") |
output_file.write(" wire divider_a_ack;\n") |
output_file.write(" reg [31:0] divider_b;\n") |
output_file.write(" reg divider_b_stb;\n") |
output_file.write(" wire divider_b_ack;\n") |
output_file.write(" wire [31:0] divider_z;\n") |
output_file.write(" wire divider_z_stb;\n") |
output_file.write(" reg divider_z_ack;\n") |
output_file.write(" reg [1:0] div_state;\n") |
output_file.write(" reg divider_go;\n") |
output_file.write(" reg divider_done;\n") |
|
def generate_multiplier_signals(output_file): |
output_file.write(" reg [31:0] multiplier_a;\n") |
output_file.write(" reg multiplier_a_stb;\n") |
output_file.write(" wire multiplier_a_ack;\n") |
output_file.write(" reg [31:0] multiplier_b;\n") |
output_file.write(" reg multiplier_b_stb;\n") |
output_file.write(" wire multiplier_b_ack;\n") |
output_file.write(" wire [31:0] multiplier_z;\n") |
output_file.write(" wire multiplier_z_stb;\n") |
output_file.write(" reg multiplier_z_ack;\n") |
output_file.write(" reg [1:0] mul_state;\n") |
output_file.write(" reg multiplier_go;\n") |
output_file.write(" reg multiplier_done;\n") |
|
def generate_adder_signals(output_file): |
output_file.write(" reg [31:0] adder_a;\n") |
output_file.write(" reg adder_a_stb;\n") |
output_file.write(" wire adder_a_ack;\n") |
output_file.write(" reg [31:0] adder_b;\n") |
output_file.write(" reg adder_b_stb;\n") |
output_file.write(" wire adder_b_ack;\n") |
output_file.write(" wire [31:0] adder_z;\n") |
output_file.write(" wire adder_z_stb;\n") |
output_file.write(" reg adder_z_ack;\n") |
output_file.write(" reg [1:0] add_state;\n") |
output_file.write(" reg adder_go;\n") |
output_file.write(" reg adder_done;\n") |
/tcp_socket/trunk/chips2/chips/compiler/allocator.py
4,44 → 4,45
|
class Allocator: |
|
"""Maintain a pool of registers, variables and arrays. Keep track of what they are used for.""" |
"""Maintain a pool of registers, variables and arrays. Keep track of what they are used for.""" |
|
def __init__(self, reuse): |
self.registers = [] |
self.all_registers = {} |
self.memory_size_2 = 0 |
self.memory_size_4 = 0 |
self.reuse = reuse |
self.memory_content_2 = {} |
self.memory_content_4 = {} |
def __init__(self, reuse): |
self.registers = [] |
self.all_registers = {} |
self.memory_size_2 = 0 |
self.memory_size_4 = 0 |
self.reuse = reuse |
self.memory_content_2 = {} |
self.memory_content_4 = {} |
|
def new_array(self, size, contents, element_size): |
if element_size == 2: |
reg = self.memory_size_2 |
self.memory_size_2 += int(size) |
if contents is not None: |
for location, value in enumerate(contents, reg): |
self.memory_content_2[location] = value |
return reg |
elif element_size == 4: |
reg = self.memory_size_4 |
self.memory_size_4 += int(size) |
if contents is not None: |
for location, value in enumerate(contents, reg): |
self.memory_content_4[location] = value |
return reg |
def new_array(self, size, contents, element_size): |
if element_size == 2: |
reg = self.memory_size_2 |
self.memory_size_2 += int(size) |
if contents is not None: |
for location, value in enumerate(contents, reg): |
self.memory_content_2[location] = value |
return reg |
elif element_size == 4: |
reg = self.memory_size_4 |
self.memory_size_4 += int(size) |
if contents is not None: |
for location, value in enumerate(contents, reg): |
self.memory_content_4[location] = value |
return reg |
|
def regsize(self, reg): |
return self.all_registers[reg][1] |
|
def new(self, size, name="temporary_register"): |
assert type(size) == int |
reg = 0 |
while reg in self.registers or (reg in self.all_registers and self.regsize(reg) != size): |
reg += 1 |
self.registers.append(reg) |
self.all_registers[reg] = (name, size) |
return reg |
|
def new(self, size, name="temporary_register"): |
assert type(size) == int |
reg = 0 |
while reg in self.registers: |
reg += 1 |
self.registers.append(reg) |
self.all_registers[reg] = (name, size) |
return reg |
|
def free(self, register): |
if register in self.registers and self.reuse: |
self.registers.remove(register) |
def free(self, register): |
if register in self.registers and self.reuse: |
self.registers.remove(register) |
/tcp_socket/trunk/chips2/chips/compiler/optimizer.py
4,36 → 4,36
|
def cleanup_functions(instructions): |
|
"""Remove functions that are not called""" |
"""Remove functions that are not called""" |
|
|
#This is an iterative processr. Once a function is removed, |
#there may be more unused functions |
while 1: |
#This is an iterative processr. Once a function is removed, |
#there may be more unused functions |
while 1: |
|
#find function calls |
live_functions = {} |
for instruction in instructions: |
if instruction["op"] == "jmp_and_link": |
if instruction["label"].startswith("function"): |
live_functions[instruction["label"]] = None |
#find function calls |
live_functions = {} |
for instruction in instructions: |
if instruction["op"] == "jmp_and_link": |
if instruction["label"].startswith("function"): |
live_functions[instruction["label"]] = None |
|
#remove instructions without function calls |
kept_instructions = [] |
generate_on = True |
for instruction in instructions: |
if instruction["op"] == "label": |
if instruction["label"].startswith("function"): |
if instruction["label"] in live_functions: |
generate_on = True |
else: |
generate_on = False |
if generate_on: |
kept_instructions.append(instruction) |
#remove instructions without function calls |
kept_instructions = [] |
generate_on = True |
for instruction in instructions: |
if instruction["op"] == "label": |
if instruction["label"].startswith("function"): |
if instruction["label"] in live_functions: |
generate_on = True |
else: |
generate_on = False |
if generate_on: |
kept_instructions.append(instruction) |
|
if len(instructions) == len(kept_instructions): |
return kept_instructions |
instructions = kept_instructions |
if len(instructions) == len(kept_instructions): |
return kept_instructions |
instructions = kept_instructions |
|
def reallocate_registers(instructions, registers): |
|
41,9 → 41,9
new_registers = {} |
n = 0 |
for register, definition in registers.iteritems(): |
register_map[register] = n |
new_registers[n] = definition |
n+=1 |
register_map[register] = n |
new_registers[n] = definition |
n+=1 |
|
for instruction in instructions: |
if "dest" in instruction: |
84,116 → 84,119
|
def parallelise(instructions): |
|
def modifies_register(instruction): |
def modifies_register(instruction): |
|
"""Return the register modified by this instruction if any""" |
"""Return the register modified by this instruction if any""" |
|
if "dest" in instruction: |
return instruction["dest"] |
return None |
if "dest" in instruction: |
return instruction["dest"] |
return None |
|
def uses_registers(instruction): |
def uses_registers(instruction): |
|
"""Return the registers used by this instruction if any""" |
"""Return the registers used by this instruction if any""" |
|
registers = [] |
for field in ["src", "srcb"]: |
if field in instruction: |
registers.append(instruction[field]) |
return registers |
registers = [] |
for field in ["src", "srcb"]: |
if field in instruction: |
registers.append(instruction[field]) |
return registers |
|
def memory_clash(a, b): |
def memory_clash(a, b): |
|
"""do instructions result in a memory clash""" |
"""do instructions result in a memory clash""" |
|
if a["op"] in ["memory_write", "memory_write_literal"]: |
return b["op"] in ["memory_write", "memory_write_literal", "memory_read", "memory_read_wait", "memory_read_request"] |
if a["op"] in ["memory_write", "memory_write_literal"]: |
return b["op"] in ["memory_write", "memory_write_literal", "memory_read", "memory_read_wait", "memory_read_request"] |
|
if b["op"] in ["memory_write", "memory_write_literal"]: |
return a["op"] in ["memory_write", "memory_write_literal", "memory_read", "memory_read_wait", "memory_read_request"] |
if b["op"] in ["memory_write", "memory_write_literal"]: |
return a["op"] in ["memory_write", "memory_write_literal", "memory_read", "memory_read_wait", "memory_read_request"] |
|
if a["op"] in ["memory_read", "memory_read_wait", "memory_read_request", "memory_write", "memory_write_literal"]: |
return b["op"] == a["op"] |
if a["op"] in ["memory_read", "memory_read_wait", "memory_read_request", "memory_write", "memory_write_literal"]: |
return b["op"] == a["op"] |
|
if b["op"] in ["memory_read", "memory_read_wait", "memory_read_request", "memory_write", "memory_write_literal"]: |
return b["op"] == a["op"] |
if b["op"] in ["memory_read", "memory_read_wait", "memory_read_request", "memory_write", "memory_write_literal"]: |
return b["op"] == a["op"] |
|
def is_part_of_read(a, b): |
def is_part_of_read(a, b): |
|
"""requests, waits and reads with the same sequence number must not be concurrent""" |
"""requests, waits and reads with the same sequence number must not be concurrent""" |
|
read_instructions = ["memory_read_request", "memory_read_wait", "memory_read"] |
if (a["op"] in read_instructions) and (b["op"] in read_instructions): |
return a["sequence"] == b["sequence"] |
return False |
read_instructions = ["memory_read_request", "memory_read_wait", "memory_read"] |
if (a["op"] in read_instructions) and (b["op"] in read_instructions): |
return a["sequence"] == b["sequence"] |
return False |
|
def is_solitary(instruction): |
def is_solitary(instruction): |
|
"""Return True if an instruction cannot be executed in parallel with other instructions""" |
"""Return True if an instruction cannot be executed in parallel with other instructions""" |
|
return instruction["op"] in ["read", "write", "ready", "label", "/", "%"] |
if "type" in instruction and instruction["type"] == "float": |
if instruction["op"] in ["+", "-", "/", "*"]: |
return True |
return instruction["op"] in ["read", "write", "ready", "label", "/", "%", "int_to_float", "float_to_int", "file_write", "file_read"] |
|
def is_jump(instruction): |
def is_jump(instruction): |
|
"""Return True if an instruction contains a branch or jump""" |
"""Return True if an instruction contains a branch or jump""" |
|
return instruction["op"] in ["goto", "jmp_if_true", "jmp_if_false", "jmp_and_link", |
"jmp_to_reg"] |
return instruction["op"] in ["goto", "jmp_if_true", "jmp_if_false", "jmp_and_link", |
"jmp_to_reg"] |
|
def is_dependent(instruction, frame, preceding): |
def is_dependent(instruction, frame, preceding): |
|
"""determine whether an instruction is dependent on the outcome of: |
- an instruction within the current frame |
- preceding instructions not within the frame """ |
"""determine whether an instruction is dependent on the outcome of: |
- an instruction within the current frame |
- preceding instructions not within the frame """ |
|
for i in frame + preceding: |
if modifies_register(i) is not None: |
if modifies_register(i) in uses_registers(instruction): |
return True |
if modifies_register(i) == modifies_register(instruction): |
return True |
if memory_clash(i, instruction): |
return True |
if is_part_of_read(i, instruction): |
return True |
if is_jump(i): |
return True |
for i in preceding: |
if modifies_register(instruction) is not None: |
if modifies_register(instruction) in uses_registers(i): |
return True |
if memory_clash(i, instruction): |
return True |
if is_part_of_read(i, instruction): |
return True |
if is_jump(instruction) and preceding: |
return True |
return False |
for i in frame + preceding: |
if modifies_register(i) is not None: |
if modifies_register(i) in uses_registers(instruction): |
return True |
if modifies_register(i) == modifies_register(instruction): |
return True |
if memory_clash(i, instruction): |
return True |
if is_part_of_read(i, instruction): |
return True |
if is_jump(i): |
return True |
for i in preceding: |
if modifies_register(instruction) is not None: |
if modifies_register(instruction) in uses_registers(i): |
return True |
if memory_clash(i, instruction): |
return True |
if is_part_of_read(i, instruction): |
return True |
if is_jump(instruction) and preceding: |
return True |
return False |
|
def add_instructions(frame, instructions): |
def add_instructions(frame, instructions): |
|
"""Add more instructions to the current frame if dependencies allow.""" |
"""Add more instructions to the current frame if dependencies allow.""" |
|
instructions_added = True |
while instructions_added: |
instructions_added = False |
for index, instruction in enumerate(instructions): |
if is_solitary(instruction): |
return |
for i in frame: |
if is_jump(i): |
return |
if is_solitary(i): |
return |
if not is_dependent(instruction, frame, instructions[:index]): |
frame.append(instructions.pop(index)) |
instructions_added = True |
break |
instructions_added = True |
while instructions_added: |
instructions_added = False |
for index, instruction in enumerate(instructions): |
if is_solitary(instruction): |
return |
for i in frame: |
if is_jump(i): |
return |
if is_solitary(i): |
return |
if not is_dependent(instruction, frame, instructions[:index]): |
frame.append(instructions.pop(index)) |
instructions_added = True |
break |
|
frames = [] |
while instructions: |
frame = [instructions.pop(0)] |
add_instructions(frame, instructions) |
frames.append(frame) |
frames = [] |
while instructions: |
frame = [instructions.pop(0)] |
add_instructions(frame, instructions) |
frames.append(frame) |
|
return frames |
return frames |
/tcp_socket/trunk/chips2/chips/compiler/tokens.py
7,42 → 7,43
|
from chips.compiler.exceptions import C2CHIPError |
from chips.compiler.builtins import builtins |
from chips.compiler.library import libs |
|
operators = [ |
"!", "~", "+", "-", "*", "/", "//", "%", "=", "==", "<", ">", "<=", ">=", |
"!=", "|", "&", "^", "||", "&&", "(", ")", "{", "}", "[", "]", ";", "<<", |
">>", ",", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "<<=", ">>=", "++", |
"--", "?", ":", "." |
"!=", "|", "&", "^", "||", "&&", "(", ")", "{", "}", "[", "]", ";", "<<", |
">>", ",", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "<<=", ">>=", "^=", |
"++", "--", "?", ":", "." |
] |
|
class Tokens: |
|
"""Break the input file into a stream of tokens, |
"""Break the input file into a stream of tokens, |
provide functions to traverse the stream.""" |
|
def __init__(self, filename): |
self.tokens = [] |
self.filename = None |
self.lineno = None |
self.scan("built in", StringIO.StringIO(builtins)) |
self.scan(filename) |
self.tokens = [] |
self.filename = None |
self.lineno = None |
self.scan("built in", StringIO.StringIO(builtins)) |
self.scan(filename) |
|
def scan(self, filename, input_file=None): |
|
|
"""Convert the test file into tokens""" |
self.filename = filename |
|
|
if input_file is None: |
try: |
input_file = open(self.filename) |
input_file = open(self.filename) |
except IOError: |
raise C2CHIPError("Cannot open file: "+self.filename) |
|
|
token = [] |
tokens = [] |
self.lineno = 1 |
for line in input_file: |
|
|
#include files |
line = line+" " |
if line.strip().startswith("#include"): |
51,20 → 52,25
self.tokens.extend(tokens) |
directory = os.path.abspath(self.filename) |
directory = os.path.dirname(directory) |
self.filename = line.strip().replace("#include", "").strip(' ><"') |
self.filename = os.path.join(directory, self.filename) |
self.scan(self.filename) |
if line.strip().endswith(">"): |
self.filename = "library" |
library = line.strip().split("<")[1].strip(' ><"') |
self.scan(self.filename, StringIO.StringIO(libs[library])) |
else: |
self.filename = line.strip().replace("#include", "").strip(' ><"') |
self.filename = os.path.join(directory, self.filename) |
self.scan(self.filename) |
self.lineno = lineno |
self.filename = filename |
tokens = [] |
continue |
|
continue |
|
newline = True |
for char in line: |
|
|
if not token: |
token = char |
|
|
#c style comment |
elif (token + char).startswith("/*"): |
if (token + char).endswith("*/"): |
71,7 → 77,7
token = "" |
else: |
token += char |
|
|
#c++ style comment |
elif token.startswith("//"): |
if newline: |
78,7 → 84,7
token = char |
else: |
token += char |
|
|
#identifier |
elif token[0].isalpha(): |
if char.isalnum() or char== "_": |
86,10 → 92,10
else: |
tokens.append((self.filename, self.lineno, token)) |
token = char |
|
|
#number |
elif token[0].isdigit(): |
if char.upper() in "UXABCDEFL0123456789": |
if char.upper() in "UXABCDEFL0123456789.": |
token += char |
else: |
tokens.append((self.filename, self.lineno, token)) |
116,7 → 122,7
token = "" |
else: |
token += char |
|
|
#operator |
elif token in operators: |
if token + char in operators: |
124,51 → 130,51
else: |
tokens.append((self.filename, self.lineno, token)) |
token = char |
|
|
else: |
token = char |
|
|
newline = False |
self.lineno += 1 |
|
|
self.tokens.extend(tokens) |
|
def error(self, string): |
|
|
"""Generate an error message (including the filename and line number)""" |
|
|
raise C2CHIPError(string + "\n", self.filename, self.lineno) |
|
|
def peek(self): |
|
|
"""Return the next token in the stream, but don't consume it""" |
|
|
if self.tokens: |
return self.tokens[0][2] |
else: |
return "" |
|
|
def get(self): |
|
|
"""Return the next token in the stream, and consume it""" |
|
|
if self.tokens: |
self.lineno = self.tokens[0][1] |
self.filename = self.tokens[0][0] |
filename, lineno, token = self.tokens.pop(0) |
return token |
|
|
def end(self): |
|
|
"""Return True if all the tokens have been consumed""" |
|
|
return not self.tokens |
|
|
def expect(self, expected): |
|
"""Consume the next token in the stream, |
|
"""Consume the next token in the stream, |
generate an error if it is not as expected.""" |
|
|
filename, lineno, actual = self.tokens.pop(0) |
if self.tokens: |
self.lineno = self.tokens[0][1] |
/tcp_socket/trunk/chips2/chips/compiler/library.py
0,0 → 1,101
#!/usr/bin/env python |
"""Support Library for builtin Functionality""" |
|
__author__ = "Jon Dawson" |
__copyright__ = "Copyright (C) 2013, Jonathan P Dawson" |
__version__ = "0.1" |
|
libs={"print.h":""" |
|
//Print a string *string* to stdout |
void print_string(unsigned string[]){ |
unsigned i=0; |
while(string[i]){ |
stdout_put_char(string[i]); |
i++; |
} |
} |
|
//Print an unsigned int to stdout in hex format |
void print_uhex(unsigned uhex){ |
unsigned digit_3 = (uhex >> 12) & 0xf; |
unsigned digit_2 = (uhex >> 8) & 0xf; |
unsigned digit_1 = (uhex >> 4) & 0xf; |
unsigned digit_0 = uhex & 0xf; |
if(digit_3 < 9) stdout_put_char(digit_3 | 0x30); |
else stdout_put_char(digit_3 + 87); |
if(digit_2 < 9) stdout_put_char(digit_2 | 0x30); |
else stdout_put_char(digit_2 + 87); |
if(digit_1 < 9) stdout_put_char(digit_1 | 0x30); |
else stdout_put_char(digit_1 + 87); |
if(digit_0 < 9) stdout_put_char(digit_0 | 0x30); |
else stdout_put_char(digit_0 + 87); |
} |
|
//Print an unsigned int to stdout in decimal format |
//leading 0s will be suppressed |
void print_udecimal(unsigned udecimal){ |
unsigned digit; |
unsigned significant = 0; |
digit = 0; |
while(udecimal >= 10000){ |
udecimal -= 10000; |
digit += 1; |
} |
if(digit | significant){ |
stdout_put_char(digit | 0x30); |
significant = 1; |
} |
digit = 0; |
while(udecimal >= 1000){ |
udecimal -= 1000; |
digit += 1; |
} |
if(digit | significant){ |
stdout_put_char(digit | 0x30); |
significant = 1; |
} |
digit = 0; |
while(udecimal >= 100){ |
udecimal -= 100; |
digit += 1; |
} |
if(digit | significant){ |
stdout_put_char(digit | 0x30); |
significant = 1; |
} |
digit = 0; |
while(udecimal >= 10){ |
udecimal -= 10; |
digit += 1; |
} |
if(digit | significant){ |
stdout_put_char(digit | 0x30); |
significant = 1; |
} |
stdout_put_char(udecimal | 0x30); |
} |
|
//Print a signed int to stdout in hex format |
void print_hex(int hex){ |
if(hex >= 0){ |
print_uhex(hex); |
} else { |
stdout_put_char('-'); |
print_uhex(-hex); |
} |
} |
|
//Print a signed int to stdout in decimal format |
//leading 0s will be suppressed |
void print_decimal(int decimal){ |
if(decimal >= 0){ |
print_udecimal(decimal); |
} else { |
stdout_put_char('-'); |
print_udecimal(-decimal); |
} |
} |
|
|
"""} |
tcp_socket/trunk/chips2/chips/compiler/library.py
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tcp_socket/trunk/chips2/chips/compiler/parser.py,cover
===================================================================
--- tcp_socket/trunk/chips2/chips/compiler/parser.py,cover (revision 3)
+++ tcp_socket/trunk/chips2/chips/compiler/parser.py,cover (revision 4)
@@ -2,28 +2,22 @@
> __copyright__ = "Copyright (C) 2012, Jonathan P Dawson"
> __version__ = "0.1"
+> import struct
+> from copy import copy
+
> from parse_tree import *
> from tokens import Tokens
> from allocator import Allocator
-> def optimise_if(if_statement):
-> try:
-> if value(if_statement.expression):
-> return if_statement.true_statement
-> elif if_statement.false_statement:
-> return if_statement.false_statement
-> else:
-> null_instruction = Block()
-> null_instruction.statements = []
-> return null_instruction
-> except NotConstant:
-> return if_statement
+> types = ["float", "signed", "unsigned", "short", "long", "char", "int", "void"]
+> numeric_types = ["float", "signed", "unsigned", "short", "long", "char", "int"]
+> storage_specifiers = ["const"]
> class Parser:
> """Turn the C input file into a tree of expressions and statements."""
-> def __init__(self, input_file, reuse):
+> def __init__(self, input_file, reuse, initialize_memory):
> self.scope = {}
> self.function = None
> self.loop = None
@@ -30,6 +24,7 @@
> self.tokens = Tokens(input_file)
> self.allocator = Allocator(reuse)
> self.structs = []
+> self.initialize_memory = initialize_memory
> def parse_process(self):
> process = Process()
@@ -47,43 +42,138 @@
> process.main = self.main
> return process
+> def parse_type_specifier(self):
+> type_specifiers = []
+
+> while self.tokens.peek() in types + self.structs + storage_specifiers:
+> type_specifiers.append(self.tokens.get())
+
+> signed = True
+> if "unsigned" in type_specifiers:
+> signed = False
+> if "signed" in type_specifiers:
+! self.tokens.error("Cannot be signed and unsigned")
+
+> size = 2
+> if "long" in type_specifiers:
+> if "short" in type_specifiers:
+! self.tokens.error("Cannot be long and short")
+> size = 4
+
+> type_ = "int"
+> for i in type_specifiers:
+> if i in self.structs:
+> type_ = i
+> size = 2
+> signed = False
+
+> if "float" in type_specifiers:
+> if "short" in type_specifiers:
+! self.tokens.error("Float cannot be short")
+> if "long" in type_specifiers:
+! self.tokens.error("Float cannot be long (but double can)")
+> if "unsigned" in type_specifiers:
+! self.tokens.error("Float cannot be unsigned")
+> type_ = "float"
+> size = 4
+> signed = True
+
+> const = False
+> if "const" in type_specifiers:
+> const = True
+
+> if "void" in type_specifiers:
+> type_ = "void"
+> size = 2
+> signed = False
+
+
+> return type_, size, signed, const
+
+> def parse_argument(self):
+> type_, size, signed, const = self.parse_type_specifier()
+
+> if type_ in ["void"]:
+! self.tokens.error("argument cannot be void")
+> else:
+> argument = self.tokens.get()
+> if type_ in self.structs:
+> declaration = self.scope[type_]
+> else:
+> if self.tokens.peek() == "[":
+> self.tokens.expect("[")
+> self.tokens.expect("]")
+> declaration = ArrayDeclaration(
+> self.allocator,
+> 2,
+> type_+"[]",
+> type_,
+> size,
+> signed,
+> None,
+> self.initialize_memory)
+> else:
+> declaration = VariableDeclaration(
+> self.allocator,
+> None,
+> argument,
+> type_,
+> size,
+> signed,
+> const)
+> instance = declaration.instance()
+> self.scope[argument] = instance
+> return instance.reference()
+
> def parse_function(self):
> function = Function()
> function.allocator = self.allocator
-> stored_scope = self.scope
-> type_ = self.tokens.get()
+> stored_scope = copy(self.scope)
+> type_, size, signed, const = self.parse_type_specifier()
> name = self.tokens.get()
-
+
#check if it is a global declaration
> if self.tokens.peek() != "(":
-> if type_ not in ["int", "short", "long", "char"] + self.structs:
-! self.tokens.error("unknown type")
-> return self.parse_global_declaration(type_, name)
+> return self.parse_global_declaration(type_, size, signed, const, name)
#otherwise continue parsing a function
> self.tokens.expect("(")
> function.name = name
> function.type_ = type_
-> function.return_address = self.allocator.new(function.name+" return address")
-> if type_ not in ["int", "short", "long", "char", "void"]:
-! self.tokens.error("unknown type")
+> function.size = size
+> function.signed = signed
+
+> function.return_address = self.allocator.new(2,
+> function.name+" return address")
+
> if type_ != "void":
-> function.return_value = self.allocator.new(function.name+" return value")
+
+> if type_ in self.structs:
+! declaration = self.scope[type_]
+> else:
+> if self.tokens.peek() == "[":
+! self.tokens.error(
+! "Functions cannot return arrays")
+> else:
+> declaration = VariableDeclaration(
+> self.allocator,
+> None,
+> function.name+" return value",
+> type_,
+> size,
+> signed,
+> const)
+
+> function.return_value = declaration.instance().reference()
+
> function.arguments = []
> while self.tokens.peek() != ")":
-> type_ = self.tokens.get()
-> if type_ not in ["int", "short", "long", "char"]:
-! self.tokens.error("unknown type")
-> argument = self.tokens.get()
-> if self.tokens.peek() == "[":
-> self.tokens.expect("[")
-> self.tokens.expect("]")
-> type_+="[]"
-> function.arguments.append(Argument(argument, type_, self))
+> function.arguments.append(self.parse_argument())
> if self.tokens.peek() == ",":
> self.tokens.expect(",")
> else:
> break
+
> self.tokens.expect(")")
> self.function = function
> function.statement = self.parse_statement()
@@ -113,6 +203,7 @@
> def parse_return(self):
> return_ = Return()
> return_.function = self.function
+> return_.allocator = self.allocator
> self.function.return_statement = return_
> self.tokens.expect("return")
> if hasattr(self.function, "return_value"):
@@ -156,7 +247,7 @@
> return wait_clocks
> def parse_statement(self):
-> if self.tokens.peek() in ["int", "short", "long", "char"] + self.structs:
+> if self.tokens.peek() in numeric_types + self.structs + storage_specifiers:
> return self.parse_compound_declaration()
> elif self.tokens.peek() == "struct":
> return self.parse_struct_declaration()
@@ -196,41 +287,40 @@
> def parse_assignment(self):
> assignment_operators = [
-> "=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "<<=", ">>=",
-> "++", "--"
+> "=", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "<<=", ">>="
> ]
> lvalue = self.parse_ternary_expression()
> if self.tokens.peek() in assignment_operators:
-> if not hasattr(lvalue, "declaration"):
+> if lvalue.const():
+
> self.tokens.error(
-> "left hand operand of assignment is not modifiable"
-> )
+> "left hand operand of assignment is not modifiable")
+
> operator = self.tokens.get()
> if operator == "=":
> expression = self.parse_ternary_expression()
-> elif operator in ["++", "--"]:
-> expression = Binary(
-> operator[:-1],
-> lvalue,
-> Constant(1),
-> self.allocator
-> )
> else:
-> expression = Binary(
-> operator[:-1],
-> lvalue,
-> self.parse_ternary_expression(),
-> self.allocator
-> )
-> if lvalue.type_ != expression.type_:
-> self.tokens.error(
-> "type mismatch in assignment"
-> )
+
+> expression = self.parse_ternary_expression()
+> left = lvalue
+> left, expression = self.coerce_types(left, expression)
+> expression = Binary(operator[:-1], left, expression)
+
+> if expression.type_() != lvalue.type_():
+> if expression.type_() == "int" and lvalue.type_() == "float":
+! expression = IntToFloat(expression)
+> elif expression.type_() == "float" and lvalue.type_() == "int":
+> expression = FloatToInt(expression)
+> else:
+> self.tokens.error(
+> "type mismatch in assignment expected: %s actual: %s"%(
+> lvalue.type_(),
+> expression.type_()))
+
> return Assignment(lvalue, expression, self.allocator)
> else:
> return lvalue
-
> def parse_if(self):
> if_ = If()
> if_.allocator = self.allocator
@@ -237,10 +327,9 @@
> self.tokens.expect("if")
> self.tokens.expect("(")
> if_.expression = self.parse_expression()
-> if if_.expression.type_ not in ["int", "short", "long", "char"]:
+> if if_.expression.type_() not in ["unsigned", "int", "short", "long", "char"]:
> self.tokens.error(
-> "if statement conditional must be an integer like expression"
-> )
+> "if statement conditional must be an integer like expression")
> self.tokens.expect(")")
> if_.true_statement = self.parse_statement()
> if self.tokens.peek() == "else":
@@ -248,7 +337,7 @@
> if_.false_statement = self.parse_statement()
> else:
> if_.false_statement = None
-> return optimise_if(if_)
+> return if_
> def parse_switch(self):
> switch = Switch()
@@ -256,10 +345,9 @@
> self.tokens.expect("switch")
> self.tokens.expect("(")
> expression = self.parse_expression()
-> if expression.type_ not in ["int", "short", "long", "char"]:
+> if expression.type_() not in ["unsigned", "int", "short", "long", "char"]:
> self.tokens.error(
-> "switch statement expression must be an integer like expression"
-> )
+> "switch statement expression must be an integer like expression")
> self.tokens.expect(")")
> stored_loop = self.loop
> self.loop = switch
@@ -273,21 +361,19 @@
> def parse_case(self):
> self.tokens.expect("case")
> expression = self.parse_expression()
-> if expression.type_ not in ["int", "short", "long", "char"]:
+> if expression.type_() not in ["int"]:
> self.tokens.error(
-> "case expression must be an integer like expression"
-> )
+> "case expression must be an integer like expression")
> self.tokens.expect(":")
> try:
-> expression = value(expression)
+> expression = expression.value()
> case = Case()
-> self.loop.cases[expression] = case
+> self.loop.cases[expression] = case
> except NotConstant:
> self.tokens.error("case expression must be constant")
> except AttributeError:
> self.tokens.error(
-> "case statements may only be use inside a switch statment"
-> )
+> "case statements may only be use inside a switch statment")
> return case
> def parse_default(self):
@@ -296,12 +382,10 @@
> default = Default()
> if not hasattr(self.loop, "cases"):
> self.tokens.error(
-> "default statements may only be used inside a switch statment"
-> )
+> "default statements may only be used inside a switch statment")
> if hasattr(self.loop, "default"):
> self.tokens.error(
-> "A switch statement may only have one default statement"
-> )
+> "A switch statement may only have one default statement")
> self.loop.default=default
> return default
@@ -317,18 +401,17 @@
> self.loop = stored_loop
> if_ = If()
+> loop.statement = if_
> break_ = Break()
> break_.loop = loop
> if_.allocator = self.allocator
-> if expression.type_ not in ["int", "short", "long", "char"]:
+> if expression.type_() not in ["int"]:
> self.tokens.error(
-> "if statement conditional must be an integer like expression"
-> )
+> "while statement conditional must be an integer like expression")
> if_.expression = expression
> if_.false_statement = break_
> if_.true_statement = statement
-> loop.statement = optimise_if(if_)
> return loop
> def parse_for(self):
@@ -341,10 +424,16 @@
> self.tokens.expect(";")
> if self.tokens.peek() != ";":
> for_.expression = self.parse_expression()
-> if for_.expression.type_ not in ["int", "short", "long", "char"]:
+> if for_.expression.type_() not in [
+> "unsigned",
+> "int",
+> "short",
+> "long",
+> "char"]:
+
> self.tokens.error(
-> "for statement conditional must be an integer like expression"
-> )
+> "For statement conditional must be an integer like expression")
+
> self.tokens.expect(";")
> if self.tokens.peek() != ")":
> for_.statement2 = self.parse_discard()
@@ -357,7 +446,7 @@
> def parse_block(self):
> block = Block()
-> stored_scope = self.scope
+> stored_scope = copy(self.scope)
> self.tokens.expect("{")
> block.statements = []
> while self.tokens.peek() != "}":
@@ -370,9 +459,16 @@
> self.tokens.expect("{")
> members = {}
> while self.tokens.peek() != "}":
-> type_ = self.tokens.get()
+> type_, size, signed, const = self.parse_type_specifier()
> name = self.tokens.get()
-> members[name] = self.parse_declaration(type_, name)
+
+> members[name] = self.parse_declaration(
+> type_,
+> size,
+> signed,
+> const,
+> name)
+
> self.tokens.expect(";")
> self.tokens.expect("}")
> return members
@@ -402,10 +498,17 @@
> self.scope[name] = instance
> return instance
-> def parse_global_declaration(self, type_, name):
+> def parse_global_declaration(self, type_, size, signed, const, name):
> instances = []
> while True:
-> instance = self.parse_declaration(type_, name).instance()
+
+> instance = self.parse_declaration(
+> type_,
+> size,
+> signed,
+> const,
+> name).instance()
+
> self.scope[name] = instance
> instances.append(instance)
> if self.tokens.peek() == ",":
@@ -417,11 +520,18 @@
> return CompoundDeclaration(instances)
> def parse_compound_declaration(self):
-> type_ = self.tokens.get()
+> type_, size, signed, const = self.parse_type_specifier()
> instances = []
> while True:
> name = self.tokens.get()
-> instance = self.parse_declaration(type_, name).instance()
+
+> instance = self.parse_declaration(
+> type_,
+> size,
+> signed,
+> const,
+> name).instance()
+
> self.scope[name] = instance
> instances.append(instance)
> if self.tokens.peek() == ",":
@@ -432,41 +542,75 @@
> self.tokens.expect(";")
> return CompoundDeclaration(instances)
-> def parse_declaration(self, type_, name):
+> def parse_declaration(self, type_, size, signed, const, name):
#struct declaration
> if type_ in self.structs:
> declaration = self.scope[type_]
-> elif type_ in ["int", "short", "long", "char"]:
- #array declaration
+> elif type_ in ["int", "float"]:
+ #array declaration
> if self.tokens.peek() == "[":
-> size = None
+> array_size = None
> self.tokens.expect("[")
> if self.tokens.peek() != "]":
-> size = self.tokens.get()
+> size_expression = self.parse_ternary_expression()
+> if size_expression.type_() != "int":
+! self.tokens.error("Array size must be an integer like expression")
+> try:
+> array_size = size_expression.value()
+> except NotConstant:
+> self.tokens.error("Array size must be constant")
+
> self.tokens.expect("]")
> initializer = None
> if self.tokens.peek() == "=":
> self.tokens.expect("=")
> initializer = self.tokens.get()
-> initializer = [ord(i) for i in initializer.strip('"')] + [0]
-> size = len(initializer)
-> if size is None:
-> self.tokens.error("array size must be specified if not initialized")
-> type_+="[]"
-> declaration = ArrayDeclaration(self.allocator, size, type_, initializer)
+> initializer = [ord(i) for i in initializer.strip('"').decode("string_escape")] + [0]
+> array_size = len(initializer)
+> if array_size is None:
- #simple variable declaration
+> self.tokens.error(
+> "array size must be specified if not initialized")
+
+> array_type=type_+"[]"
+> initialize_memory = self.initialize_memory
+> declaration = ArrayDeclaration(
+> self.allocator,
+> array_size,
+> array_type,
+> type_,
+> size,
+> signed,
+> initializer,
+> self.initialize_memory)
+
+ #simple variable declaration
> else:
> if self.tokens.peek() == "=":
> self.tokens.expect("=")
> initializer = self.parse_ternary_expression()
> else:
-> initializer = Constant(0)
+> initializer = Constant(0, type_, size, signed)
+
+> if type_ != initializer.type_():
+
+> if type_ == "int" and initializer.type_() == "float":
+> initializer = FloatToInt(initializer)
+> elif type_ == "float" and initializer.type_() == "int":
+> initializer = IntToFloat(initializer)
+> else:
+> self.tokens.error(
+> "type mismatch in intializer expected: %s actual: %s"%(
+> type_,
+> intitializer.type_()))
> declaration = VariableDeclaration(
-> self.allocator,
-> initializer,
+> self.allocator,
+> initializer,
> name,
-> type_
+> type_,
+> size,
+> signed,
+> const
> )
> return declaration
@@ -499,6 +643,65 @@
> expression = AND(expression, self.parse_binary_expression(["|"]))
> return expression
+> def substitute_function(self, binary_expression):
+
+> """
+> For some operations are more easily implemented in sofftware.
+> This function substitutes a call to the builtin library function.
+> """
+
+> functions = {
+> "False,int,int,4,/" : "long_unsigned_divide_xxxx",
+> "True,int,int,4,/" : "long_divide_xxxx",
+> "False,int,int,2,/" : "unsigned_divide_xxxx",
+> "True,int,int,2,/" : "divide_xxxx",
+> "False,int,int,4,%" : "long_unsigned_modulo_xxxx",
+> "True,int,int,4,%" : "long_modulo_xxxx",
+> "False,int,int,2,%" : "unsigned_modulo_xxxx",
+> "True,int,int,2,%" : "modulo_xxxx",
+> "True,float,float,4,==" : "float_equal_xxxx",
+> "True,float,float,4,!=" : "float_ne_xxxx",
+> "True,float,float,4,<" : "float_lt_xxxx",
+> "True,float,float,4,>" : "float_gt_xxxx",
+> "True,float,float,4,<=" : "float_le_xxxx",
+> "True,float,float,4,>=" : "float_ge_xxxx",
+> }
+
+ #select a function that matches the template.
+> signature = ",".join([
+> str(binary_expression.signed()),
+> binary_expression.left.type_(),
+> binary_expression.right.type_(),
+> str(binary_expression.size()),
+> binary_expression.operator])
+
+ #Some things can't be implemented in verilog, substitute them with a function
+> if signature in functions:
+> function = self.scope[functions[signature]]
+> function_call = FunctionCall(function)
+> function_call.arguments = [binary_expression.left, binary_expression.right]
+> return function_call
+> else:
+> return binary_expression
+
+> def coerce_types(self, left, right):
+
+> """
+> Convert numeric types in expressions.
+> """
+
+> if left.type_() != right.type_():
+> if left.type_() == "float" and right.type_() == "int":
+> return left, IntToFloat(right)
+> elif left.type_() == "int" and right.type_() == "float":
+> return IntToFloat(left), right
+> else:
+> self.tokens.error("Incompatible types : %s %s"%(
+> left.type_(),
+> right.type_()))
+
+> return left, right
+
> def parse_binary_expression(self, operators):
> operator_precedence = {
> "|": ["^"],
@@ -510,43 +713,60 @@
> "+": ["*", "/", "%"],
> }
> if operators[0] not in operator_precedence:
-> expression = self.parse_unary_expression()
+> left = self.parse_unary_expression()
> while self.tokens.peek() in operators:
-> expression = Binary(
-> self.tokens.get(),
-> expression,
-> self.parse_unary_expression(),
-> self.allocator
-> )
-> return expression
+> operator = self.tokens.get()
+> right = self.parse_unary_expression()
+> left, right = self.coerce_types(left, right)
+> left = Binary(operator, left, right)
+> left = self.substitute_function(left)
+> return left
> else:
> next_operators = operator_precedence[operators[0]]
-> expression = self.parse_binary_expression(next_operators)
+> left = self.parse_binary_expression(next_operators)
> while self.tokens.peek() in operators:
-> expression = Binary(
-> self.tokens.get(),
-> expression,
-> self.parse_binary_expression(next_operators),
-> self.allocator
-> )
-> return expression
+> operator = self.tokens.get()
+> right = self.parse_binary_expression(next_operators)
+> left, right = self.coerce_types(left, right)
+> left = Binary(operator, left, right)
+> left = self.substitute_function(left)
+> return left
> def parse_unary_expression(self):
> if self.tokens.peek() == "!":
> operator = self.tokens.get()
-> expression = self.parse_paren_expression()
-> return Binary("==", expression, Constant(0), self.allocator)
+> expression = self.parse_postfix_expression()
+> return Binary("==", expression, Constant(0))
> elif self.tokens.peek() == "-":
> operator = self.tokens.get()
-> expression = self.parse_paren_expression()
-> return Binary("-", Constant(0), expression, self.allocator)
+> expression = self.parse_postfix_expression()
+> return Binary("-", Constant(0,
+> expression.type_(),
+> expression.size(),
+> expression.signed()),
+> expression)
> elif self.tokens.peek() == "~":
> operator = self.tokens.get()
-> expression = self.parse_paren_expression()
+> expression = self.parse_postfix_expression()
> return Unary("~", expression)
+> elif self.tokens.peek() == "sizeof":
+> operator = self.tokens.get()
+> expression = self.parse_unary_expression()
+> return SizeOf(expression)
> else:
-> return self.parse_paren_expression()
+> return self.parse_postfix_expression()
+> def parse_postfix_expression(self):
+> expression = self.parse_paren_expression()
+> while self.tokens.peek() in ["++", "--"]:
+> operator = self.tokens.get()
+> expression = PostIncrement(
+> operator[:-1],
+> expression,
+> self.allocator
+> )
+> return expression
+
> def parse_paren_expression(self):
> if self.tokens.peek() == "(":
> self.tokens.expect("(")
@@ -566,6 +786,22 @@
> else:
> return self.parse_number()
+> def parse_file_read(self):
+! self.tokens.expect("(")
+! file_name = self.tokens.get()
+> file_name = file_name.strip('"').decode("string_escape")
+> self.tokens.expect(")")
+! return FileRead(file_name)
+
+> def parse_file_write(self):
+> self.tokens.expect("(")
+> expression = self.parse_expression()
+> self.tokens.expect(",")
+> file_name = self.tokens.get()
+> file_name = file_name.strip('"').decode("string_escape")
+> self.tokens.expect(")")
+> return FileWrite(file_name, expression)
+
> def parse_input(self, name):
> input_name = name.replace("input_", "")
> self.tokens.expect("(")
@@ -592,7 +828,14 @@
> return self.parse_ready(name)
> if name.startswith("output_"):
> return self.parse_output(name)
-> function_call = FunctionCall()
+> if name == "file_read":
+> return self.parse_file_read()
+> if name == "file_write":
+> return self.parse_file_write()
+> if name not in self.scope:
+> self.tokens.error("Unknown function: %s"%name)
+> function = self.scope[name]
+> function_call = FunctionCall(function)
> function_call.arguments = []
> self.tokens.expect("(")
> while self.tokens.peek() != ")":
@@ -603,11 +846,7 @@
> break
> self.tokens.expect(")")
-> if name not in self.scope:
-> self.tokens.error("Unknown function: %s"%name)
-> function_call.function = self.scope[name]
-> function_call.type_ = function_call.function.type_
> required_arguments = len(function_call.function.arguments)
> actual_arguments = len(function_call.arguments)
> if required_arguments != actual_arguments:
@@ -614,22 +853,31 @@
> self.tokens.error("Function %s takes %s arguments %s given."%(
> name,
> len(function_call.function.arguments),
-> len(function_call.arguments)
-> ))
+> len(function_call.arguments)))
> required_arguments = function_call.function.arguments
> actual_arguments = function_call.arguments
+> corrected_arguments = []
> for required, actual in zip(required_arguments, actual_arguments):
-> if required.type_ != actual.type_:
-> self.tokens.error("Type mismatch expected type : %s got: %s."%(
-> required.type_,
-> actual.type_
-> ))
+> if not compatible(required, actual):
+> if actual.type_() == "int" and required.type_() == "float":
+> actual = IntToFloat(actual)
+> elif actual.type_() == "float" and required.type_() == "int":
+! actual = FloatToInt(actual)
+> else:
+> self.tokens.error(
+> "type mismatch in assignment expected: %s actual: %s"%(
+> required.type_(),
+> actual.type_()))
+> corrected_arguments.append(actual)
+> function_call.arguments = corrected_arguments
-
> return function_call
> def parse_number(self):
> token = self.tokens.get()
+> type_ = "int"
+> size = 2
+> signed = True
> if token.startswith("'"):
> try:
> token = eval(token)
@@ -636,36 +884,102 @@
> value = ord(token)
! except SyntaxError:
! self.tokens.error("%s is not a character literal"%token)
+> elif token.startswith('"'):
+> try:
+> initializer = [ord(i) for i in token.strip('"').decode("string_escape")] + [0]
+> size = len(initializer)
+> initialize_memory = self.initialize_memory
+> declaration = ArrayDeclaration(
+> self.allocator,
+> size,
+> "int[]",
+> "int",
+> 2,
+> False,
+> initializer,
+> self.initialize_memory)
+> return ConstArray(declaration.instance())
+! except SyntaxError:
+! self.tokens.error("%s is not a character literal"%token)
+> elif "." in token:
+ #float literal
+> try:
+> type_ = "float"
+> signed = True
+> size = 4
+> token = token.upper().replace("F", "")
+> token = token.upper().replace("L", "")
+> value = float(eval(token))
+
+> try:
+> byte_value = struct.pack(">f", value)
+> except OverflowError:
+> self.tokens.error("value too large")
+
+> except SyntaxError:
+> self.tokens.error("%s is not a floating point literal"%token)
> else:
+ #integer literal
> try:
+> if "U" in token.upper():
+> signed = False
+> if "L" in token.upper():
+> size = 4
+> token = token.upper().replace("U", "")
> value = int(eval(token))
+
+> if signed:
+> if value > 2**((size * 8)-1) - 1:
+> self.tokens.error("value too large")
+> if value < -(2**((size * 8)-1)):
+> self.tokens.error("value too small")
+> else:
+> if value > 2**(size * 8) - 1:
+! self.tokens.error("value too large")
+> if value < 0:
+> self.tokens.error("value too small")
+
> except SyntaxError:
> self.tokens.error("%s is not an integer literal"%token)
-> return Constant(value)
+> return Constant(value, type_, size, signed)
+
> def parse_variable(self, name):
> if name not in self.scope:
> self.tokens.error("Unknown variable: %s"%name)
> instance = self.scope[name]
> return self.parse_variable_array_struct(instance)
-
+
> def parse_variable_array_struct(self, instance):
-> if instance.type_ in ["int", "short", "long", "char"]:
-> return Variable(instance, self.allocator)
-> elif instance.type_.endswith("[]"):
+> if instance.type_() in numeric_types:
+
+> if not hasattr(instance, "reference"):
+
+> self.tokens.error(
+> "Not an expression")
+
+> return Variable(instance)
+> elif instance.type_().endswith("[]"):
> if self.tokens.peek() == "[":
> self.tokens.expect("[")
> index_expression = self.parse_expression()
> self.tokens.expect("]")
-> if index_expression.type_ not in ["int", "short", "long", "char"]:
+> if index_expression.type_() not in ["int"]:
+
> self.tokens.error(
-> "array indices must be an integer like expression"
-> )
-> return ArrayIndex(instance, index_expression, self.allocator)
+> "Array indices must be an integer like expression")
+
+> return ArrayIndex(instance, index_expression)
> else:
-> return Array(instance, self.allocator)
-> elif instance.type_ == "struct":
-> self.tokens.expect(".")
-> member = self.tokens.get()
-> instance = instance.members[member]
-> return self.parse_variable_array_struct(instance)
+> return Array(instance)
+> elif instance.type_().startswith("struct"):
+> if self.tokens.peek() == ".":
+> self.tokens.expect(".")
+> member = self.tokens.get()
+> instance = instance.members[member]
+> return self.parse_variable_array_struct(instance)
+> else:
+> return Struct(instance)
+
+> def compatible(left, right):
+> return left.type_() == right.type_()
/tcp_socket/trunk/chips2/chips/compiler/verilog_speed.py
5,530 → 5,1145
__copyright__ = "Copyright (C) 2013, Jonathan P Dawson" |
__version__ = "0.1" |
|
import fpu |
|
def unique(l): |
|
"""In the absence of set in older python implementations, make list values unique""" |
"""In the absence of set in older python implementations, make list values unique""" |
|
return dict(zip(l, l)).keys() |
return dict(zip(l, l)).keys() |
|
def log2(frames): |
|
"""Integer only algorithm to calculate the number of bits needed to store a number""" |
"""Integer only algorithm to calculate the number of bits needed to store a number""" |
|
bits = 1 |
power = 2 |
while power < frames: |
bits += 1 |
power *= 2 |
return bits |
bits = 1 |
power = 2 |
while power < frames: |
bits += 1 |
power *= 2 |
return bits |
|
def to_gray(i): |
|
"""Convert integer to gray code""" |
"""Convert integer to gray code""" |
|
return (i >> 1) ^ i |
return (i >> 1) ^ i |
|
def generate_CHIP(input_file, |
name, |
frames, |
output_file, |
registers, |
memory_size_2, |
memory_size_4, |
def sign_extend(value, bytes_): |
bits = bytes_*8 |
mask = (1<<bits)-1 |
mask = ~mask |
if value & 1<<(bits-1): |
return value | mask |
else: |
return value |
|
|
def floating_point_enables(frames): |
enable_adder = False |
enable_multiplier = False |
enable_divider = False |
enable_int_to_float = False |
enable_float_to_int = False |
for frame in frames: |
for i in frame: |
if i["op"] == "+" and "type" in i and i["type"] == "float": |
enable_adder = True |
if i["op"] == "-" and "type" in i and i["type"] == "float": |
enable_adder = True |
if i["op"] == "*" and "type" in i and i["type"] == "float": |
enable_multiplier = True |
if i["op"] == "/" and "type" in i and i["type"] == "float": |
enable_divider = True |
if i["op"] == "int_to_float": |
enable_int_to_float = True |
if i["op"] == "float_to_int": |
enable_float_to_int = True |
return ( |
enable_adder, |
enable_multiplier, |
enable_divider, |
enable_int_to_float, |
enable_float_to_int) |
|
|
def generate_CHIP(input_file, |
name, |
frames, |
output_file, |
registers, |
memory_size_2, |
memory_size_4, |
initialize_memory, |
memory_content_2, |
memory_content_4, |
memory_content_2, |
memory_content_4, |
no_tb_mode=False): |
|
"""A big ugly function to crunch through all the instructions and generate the CHIP equivilent""" |
"""A big ugly function to crunch through all the instructions and generate the CHIP equivilent""" |
|
#calculate the values of jump locations |
location = 0 |
labels = {} |
new_frames = [] |
for frame in frames: |
if frame[0]["op"] == "label": |
labels[frame[0]["label"]] = location |
#calculate the values of jump locations |
location = 0 |
labels = {} |
new_frames = [] |
for frame in frames: |
if frame[0]["op"] == "label": |
labels[frame[0]["label"]] = location |
else: |
new_frames.append(frame) |
location += 1 |
frames = new_frames |
|
#substitue real values for labeled jump locations |
for frame in frames: |
for instruction in frame: |
if "label" in instruction: |
instruction["label"]=labels[instruction["label"]] |
|
#list all inputs and outputs used in the program |
inputs = unique([i["input"] for frame in frames for i in frame if "input" in i]) |
outputs = unique([i["output"] for frame in frames for i in frame if "output" in i]) |
input_files = unique([i["file_name"] for frame in frames for i in frame if "file_read" == i["op"]]) |
output_files = unique([i["file_name"] for frame in frames for i in frame if "file_write" == i["op"]]) |
testbench = not inputs and not outputs and not no_tb_mode |
enable_adder, enable_multiplier, enable_divider, enable_int_to_float, enable_float_to_int = floating_point_enables(frames) |
|
#Do not generate a port in testbench mode |
inports = [ |
("input_" + i, 16) for i in inputs |
] + [ |
("input_" + i + "_stb", 1) for i in inputs |
] + [ |
("output_" + i + "_ack", 1) for i in outputs |
] |
|
outports = [ |
("output_" + i, 16) for i in outputs |
] + [ |
("output_" + i + "_stb", 1) for i in outputs |
] + [ |
("input_" + i + "_ack", 1) for i in inputs |
] |
|
#create list of signals |
signals = [ |
("timer", 16), |
("program_counter", log2(len(frames))), |
("address_2", 16), |
("data_out_2", 16), |
("data_in_2", 16), |
("write_enable_2", 1), |
("address_4", 16), |
("data_out_4", 32), |
("data_in_4", 32), |
("write_enable_4", 1), |
] + [ |
("register_%s"%(register), definition[1]*8) for register, definition in registers.iteritems() |
] + [ |
("s_output_" + i + "_stb", 16) for i in outputs |
] + [ |
("s_output_" + i, 16) for i in outputs |
] + [ |
("s_input_" + i + "_ack", 16) for i in inputs |
] |
|
if testbench: |
signals.append(("clk", 1)) |
signals.append(("rst", 1)) |
else: |
new_frames.append(frame) |
location += 1 |
frames = new_frames |
inports.append(("clk", 1)) |
inports.append(("rst", 1)) |
|
#substitue real values for labeled jump locations |
for frame in frames: |
for instruction in frame: |
if "label" in instruction: |
instruction["label"]=labels[instruction["label"]] |
if enable_adder: |
output_file.write(fpu.adder) |
if enable_divider: |
output_file.write(fpu.divider) |
if enable_multiplier: |
output_file.write(fpu.multiplier) |
if enable_int_to_float: |
output_file.write(fpu.int_to_float) |
if enable_float_to_int: |
output_file.write(fpu.float_to_int) |
|
#list all inputs and outputs used in the program |
inputs = unique([i["input"] for frame in frames for i in frame if "input" in i]) |
outputs = unique([i["output"] for frame in frames for i in frame if "output" in i]) |
input_files = unique([i["file_name"] for frame in frames for i in frame if "file_read" == i["op"]]) |
output_files = unique([i["file_name"] for frame in frames for i in frame if "file_write" == i["op"]]) |
testbench = not inputs and not outputs and not no_tb_mode |
#output the code in verilog |
output_file.write("//name : %s\n"%name) |
output_file.write("//tag : c components\n") |
for i in inputs: |
output_file.write("//input : input_%s:16\n"%i) |
for i in outputs: |
output_file.write("//output : output_%s:16\n"%i) |
output_file.write("//source_file : %s\n"%input_file) |
output_file.write("///%s\n"%"".join(["=" for i in name])) |
output_file.write("///\n") |
output_file.write("///*Created by C2CHIP*\n\n") |
|
#Do not generate a port in testbench mode |
inports = [ |
("input_" + i, 16) for i in inputs |
] + [ |
("input_" + i + "_stb", 1) for i in inputs |
] + [ |
("output_" + i + "_ack", 1) for i in outputs |
] |
|
outports = [ |
("output_" + i, 16) for i in outputs |
] + [ |
("output_" + i + "_stb", 1) for i in outputs |
] + [ |
("input_" + i + "_ack", 1) for i in inputs |
] |
output_file.write("// Register Allocation\n") |
output_file.write("// ===================\n") |
output_file.write("// %s %s %s \n"%("Register".center(20), "Name".center(20), "Size".center(20))) |
for register, definition in registers.iteritems(): |
register_name, size = definition |
output_file.write("// %s %s %s \n"%(str(register).center(20), register_name.center(20), str(size).center(20))) |
|
#create list of signals |
signals = [ |
("timer", 16), |
("program_counter", log2(len(frames))), |
("address_2", 16), |
("data_out_2", 16), |
("data_in_2", 16), |
("write_enable_2", 1), |
("address_4", 16), |
("data_out_4", 32), |
("data_in_4", 32), |
("write_enable_4", 1), |
] + [ |
("register_%s"%(register), definition[1]*8) for register, definition in registers.iteritems() |
] + [ |
("s_output_" + i + "_stb", 16) for i in outputs |
] + [ |
("s_output_" + i, 16) for i in outputs |
] + [ |
("s_input_" + i + "_ack", 16) for i in inputs |
] |
output_file.write(" \n`timescale 1ns/1ps\n") |
output_file.write("module %s"%name) |
|
if testbench: |
signals.append(("clk", 1)) |
signals.append(("rst", 1)) |
else: |
inports.append(("clk", 1)) |
inports.append(("rst", 1)) |
all_ports = [name for name, size in inports + outports] |
if all_ports: |
output_file.write("(") |
output_file.write(",".join(all_ports)) |
output_file.write(");\n") |
else: |
output_file.write(";\n") |
|
#output the code in verilog |
output_file.write("//name : %s\n"%name) |
output_file.write("//tag : c components\n") |
for i in inputs: |
output_file.write("//input : input_%s:16\n"%i) |
for i in outputs: |
output_file.write("//output : output_%s:16\n"%i) |
output_file.write("//source_file : %s\n"%input_file) |
output_file.write("///%s\n"%"".join(["=" for i in name])) |
output_file.write("///\n") |
output_file.write("///*Created by C2CHIP*\n\n") |
output_file.write(" integer file_count;\n") |
|
if enable_adder: |
generate_adder_signals(output_file) |
if enable_multiplier: |
generate_multiplier_signals(output_file) |
if enable_divider: |
generate_divider_signals(output_file) |
if enable_int_to_float: |
generate_int_to_float_signals(output_file) |
if enable_float_to_int: |
generate_float_to_int_signals(output_file) |
output_file.write(" real fp_value;\n") |
|
output_file.write("// Register Allocation\n") |
output_file.write("// ===================\n") |
output_file.write("// %s %s %s \n"%("Register".center(20), "Name".center(20), "Size".center(20))) |
for register, definition in registers.iteritems(): |
register_name, size = definition |
output_file.write("// %s %s %s \n"%(str(register).center(20), register_name.center(20), str(size).center(20))) |
if enable_adder or enable_multiplier or enable_divider or enable_int_to_float or enable_float_to_int: |
output_file.write(" parameter wait_go = 3'd0,\n") |
output_file.write(" write_a = 3'd1,\n") |
output_file.write(" write_b = 3'd2,\n") |
output_file.write(" read_z = 3'd3,\n") |
output_file.write(" wait_next = 3'd4;\n") |
|
output_file.write(" \n`timescale 1ns/1ps\n") |
output_file.write("module %s"%name) |
input_files = dict(zip(input_files, ["input_file_%s"%i for i, j in enumerate(input_files)])) |
for i in input_files.values(): |
output_file.write(" integer %s;\n"%i) |
|
all_ports = [name for name, size in inports + outports] |
if all_ports: |
output_file.write("(") |
output_file.write(",".join(all_ports)) |
output_file.write(");\n") |
else: |
output_file.write(";\n") |
output_files = dict(zip(output_files, ["output_file_%s"%i for i, j in enumerate(output_files)])) |
for i in output_files.values(): |
output_file.write(" integer %s;\n"%i) |
|
output_file.write(" integer file_count;\n") |
def write_declaration(object_type, name, size, value=None): |
if size == 1: |
output_file.write(object_type) |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
else: |
output_file.write(object_type) |
output_file.write("[%i:0]"%(size-1)) |
output_file.write(" ") |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
|
input_files = dict(zip(input_files, ["input_file_%s"%i for i, j in enumerate(input_files)])) |
for i in input_files.values(): |
output_file.write(" integer %s;\n"%i) |
for name, size in inports: |
write_declaration(" input ", name, size) |
|
output_files = dict(zip(output_files, ["output_file_%s"%i for i, j in enumerate(output_files)])) |
for i in output_files.values(): |
output_file.write(" integer %s;\n"%i) |
for name, size in outports: |
write_declaration(" output ", name, size) |
|
for name, size in signals: |
write_declaration(" reg ", name, size) |
|
def write_declaration(object_type, name, size, value=None): |
if size == 1: |
output_file.write(object_type) |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
else: |
output_file.write(object_type) |
output_file.write("[%i:0]"%(size-1)) |
output_file.write(" ") |
output_file.write(name) |
if value is not None: |
output_file.write("= %s'd%s"%(size,value)) |
output_file.write(";\n") |
memory_size_2 = int(memory_size_2) |
memory_size_4 = int(memory_size_4) |
if memory_size_2: |
output_file.write(" reg [15:0] memory_2 [%i:0];\n"%(memory_size_2-1)) |
if memory_size_4: |
output_file.write(" reg [31:0] memory_4 [%i:0];\n"%(memory_size_4-1)) |
|
for name, size in inports: |
write_declaration(" input ", name, size) |
#generate clock and reset in testbench mode |
if testbench: |
|
for name, size in outports: |
write_declaration(" output ", name, size) |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CLOCK AND RESET GENERATION \n") |
output_file.write(" // \n") |
output_file.write(" // This file was generated in test bench mode. In this mode, the verilog \n") |
output_file.write(" // output file can be executed directly within a verilog simulator. \n") |
output_file.write(" // In test bench mode, a simulated clock and reset signal are generated within\n") |
output_file.write(" // the output file. \n") |
output_file.write(" // Verilog files generated in testbecnch mode are not suitable for synthesis, \n") |
output_file.write(" // or for instantiation within a larger design.\n") |
|
for name, size in signals: |
write_declaration(" reg ", name, size) |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" rst <= 1'b1;\n") |
output_file.write(" #50 rst <= 1'b0;\n") |
output_file.write(" end\n\n") |
|
memory_size_2 = int(memory_size_2) |
memory_size_4 = int(memory_size_4) |
if memory_size_2: |
output_file.write(" reg [15:0] memory_2 [%i:0];\n"%(memory_size_2-1)) |
if memory_size_4: |
output_file.write(" reg [31:0] memory_4 [%i:0];\n"%(memory_size_4-1)) |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" clk <= 1'b0;\n") |
output_file.write(" while (1) begin\n") |
output_file.write(" #5 clk <= ~clk;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
#generate clock and reset in testbench mode |
if testbench: |
#Instance Floating Point Arithmetic |
if enable_adder or enable_multiplier or enable_divider or enable_int_to_float or enable_float_to_int: |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // CLOCK AND RESET GENERATION \n") |
output_file.write(" // \n") |
output_file.write(" // This file was generated in test bench mode. In this mode, the verilog \n") |
output_file.write(" // output file can be executed directly within a verilog simulator. \n") |
output_file.write(" // In test bench mode, a simulated clock and reset signal are generated within\n") |
output_file.write(" // the output file. \n") |
output_file.write(" // Verilog files generated in testbecnch mode are not suitable for synthesis, \n") |
output_file.write(" // or for instantiation within a larger design.\n") |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // Floating Point Arithmetic \n") |
output_file.write(" // \n") |
output_file.write(" // Generate IEEE 754 single precision divider, adder and multiplier \n") |
output_file.write(" // \n") |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" rst <= 1'b1;\n") |
output_file.write(" #50 rst <= 1'b0;\n") |
output_file.write(" end\n\n") |
if enable_divider: |
connect_divider(output_file) |
if enable_multiplier: |
connect_multiplier(output_file) |
if enable_adder: |
connect_adder(output_file) |
if enable_int_to_float: |
connect_int_to_float(output_file) |
if enable_float_to_int: |
connect_float_to_int(output_file) |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
output_file.write(" clk <= 1'b0;\n") |
output_file.write(" while (1) begin\n") |
output_file.write(" #5 clk <= ~clk;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
#Generate a state machine to execute the instructions |
binary_operators = ["+", "-", "*", "/", "|", "&", "^", "<<", ">>", "<",">", ">=", |
"<=", "==", "!="] |
|
#Generate a state machine to execute the instructions |
binary_operators = ["+", "-", "*", "/", "|", "&", "^", "<<", ">>", "<",">", ">=", |
"<=", "==", "!="] |
|
if initialize_memory and (memory_content_2 or memory_content_4): |
|
if initialize_memory and (memory_content_2 or memory_content_4): |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // MEMORY INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // In order to reduce program size, array contents have been stored into \n") |
output_file.write(" // memory at initialization. In an FPGA, this will result in the memory being \n") |
output_file.write(" // initialized when the FPGA configures. \n") |
output_file.write(" // Memory will not be re-initialized at reset. \n") |
output_file.write(" // Dissable this behaviour using the no_initialize_memory switch \n") |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // MEMORY INITIALIZATION \n") |
output_file.write(" // \n") |
output_file.write(" // In order to reduce program size, array contents have been stored into \n") |
output_file.write(" // memory at initialization. In an FPGA, this will result in the memory being \n") |
output_file.write(" // initialized when the FPGA configures. \n") |
output_file.write(" // Memory will not be re-initialized at reset. \n") |
output_file.write(" // Dissable this behaviour using the no_initialize_memory switch \n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, content in memory_content_2.iteritems(): |
output_file.write(" memory_2[%s] = %s;\n"%(location, content)) |
for location, content in memory_content_4.iteritems(): |
output_file.write(" memory_4[%s] = %s;\n"%(location, content)) |
output_file.write(" end\n\n") |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for location, content in memory_content_2.iteritems(): |
output_file.write(" memory_2[%s] = %s;\n"%(location, content)) |
for location, content in memory_content_4.iteritems(): |
output_file.write(" memory_4[%s] = %s;\n"%(location, content)) |
output_file.write(" end\n\n") |
if input_files or output_files: |
|
if input_files or output_files: |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // OPEN FILES \n") |
output_file.write(" // \n") |
output_file.write(" // Open all files used at the start of the process \n") |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // OPEN FILES \n") |
output_file.write(" // \n") |
output_file.write(" // Open all files used at the start of the process \n") |
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for file_name, file_ in input_files.iteritems(): |
output_file.write(" %s = $fopenr(\"%s\");\n"%(file_, file_name)) |
for file_name, file_ in output_files.iteritems(): |
output_file.write(" %s = $fopen(\"%s\");\n"%(file_, file_name)) |
output_file.write(" end\n\n") |
|
output_file.write(" \n initial\n") |
output_file.write(" begin\n") |
for file_name, file_ in input_files.iteritems(): |
output_file.write(" %s = $fopenr(\"%s\");\n"%(file_, file_name)) |
for file_name, file_ in output_files.iteritems(): |
output_file.write(" %s = $fopen(\"%s\");\n"%(file_, file_name)) |
output_file.write(" end\n\n") |
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // FSM IMPLEMENTAION OF C PROCESS \n") |
output_file.write(" // \n") |
output_file.write(" // This section of the file contains a Finite State Machine (FSM) implementing\n") |
output_file.write(" // the C process. In general execution is sequential, but the compiler will \n") |
output_file.write(" // attempt to execute instructions in parallel if the instruction dependencies\n") |
output_file.write(" // allow. Further concurrency can be achieved by executing multiple C \n") |
output_file.write(" // processes concurrently within the device. \n") |
|
output_file.write("\n //////////////////////////////////////////////////////////////////////////////\n") |
output_file.write(" // FSM IMPLEMENTAION OF C PROCESS \n") |
output_file.write(" // \n") |
output_file.write(" // This section of the file contains a Finite State Machine (FSM) implementing\n") |
output_file.write(" // the C process. In general execution is sequential, but the compiler will \n") |
output_file.write(" // attempt to execute instructions in parallel if the instruction dependencies\n") |
output_file.write(" // allow. Further concurrency can be achieved by executing multiple C \n") |
output_file.write(" // processes concurrently within the device. \n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
|
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
if memory_size_2: |
output_file.write(" //implement memory for 2 byte x n arrays\n") |
output_file.write(" if (write_enable_2 == 1'b1) begin\n") |
output_file.write(" memory_2[address_2] <= data_in_2;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_2 <= memory_2[address_2];\n") |
output_file.write(" write_enable_2 <= 1'b0;\n\n") |
|
if memory_size_2: |
output_file.write(" //implement memory for 2 byte x n arrays\n") |
output_file.write(" if (write_enable_2 == 1'b1) begin\n") |
output_file.write(" memory_2[address_2] <= data_in_2;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_2 <= memory_2[address_2];\n") |
output_file.write(" write_enable_2 <= 1'b0;\n\n") |
if memory_size_4: |
output_file.write(" //implement memory for 4 byte x n arrays\n") |
output_file.write(" if (write_enable_4 == 1'b1) begin\n") |
output_file.write(" memory_4[address_4] <= data_in_4;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_4 <= memory_4[address_4];\n") |
output_file.write(" write_enable_4 <= 1'b0;\n\n") |
|
if memory_size_4: |
output_file.write(" //implement memory for 4 byte x n arrays\n") |
output_file.write(" if (write_enable_4 == 1'b1) begin\n") |
output_file.write(" memory_4[address_4] <= data_in_4;\n") |
output_file.write(" end\n") |
output_file.write(" data_out_4 <= memory_4[address_4];\n") |
output_file.write(" write_enable_4 <= 1'b0;\n\n") |
output_file.write(" //implement timer\n") |
output_file.write(" timer <= 16'h0000;\n\n") |
output_file.write(" case(program_counter)\n\n") |
|
output_file.write(" //implement timer\n") |
output_file.write(" timer <= 16'h0000;\n\n") |
output_file.write(" case(program_counter)\n\n") |
#A frame is executed in each state |
for location, frame in enumerate(frames): |
output_file.write(" 16'd%s:\n"%to_gray(location)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
for instruction in frame: |
|
#A frame is executed in each state |
for location, frame in enumerate(frames): |
output_file.write(" 16'd%s:\n"%to_gray(location)) |
output_file.write(" begin\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
for instruction in frame: |
if instruction["op"] == "literal": |
output_file.write( |
" register_%s <= %s;\n"%( |
instruction["dest"], |
instruction["literal"])) |
|
if instruction["op"] == "literal": |
output_file.write( |
" register_%s <= %s;\n"%( |
instruction["dest"], |
instruction["literal"])) |
elif instruction["op"] == "move": |
output_file.write( |
" register_%s <= register_%s;\n"%( |
instruction["dest"], |
instruction["src"])) |
|
elif instruction["op"] == "move": |
output_file.write( |
" register_%s <= register_%s;\n"%( |
instruction["dest"], |
instruction["src"])) |
elif instruction["op"] in ["~"]: |
output_file.write( |
" register_%s <= ~register_%s;\n"%( |
instruction["dest"], |
instruction["src"])) |
|
elif instruction["op"] in ["~"]: |
output_file.write( |
" register_%s <= ~register_%s;\n"%( |
instruction["dest"], |
instruction["src"])) |
elif instruction["op"] in ["int_to_float"]: |
output_file.write(" int_to <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= to_float;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" int_to_float_go <= 1;\n") |
output_file.write(" if (int_to_float_done) begin\n") |
output_file.write(" int_to_float_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] in binary_operators and "left" in instruction: |
if not instruction["signed"]: |
output_file.write( |
" register_%s <= %s %s $unsigned(register_%s);\n"%( |
instruction["dest"], |
instruction["left"], |
instruction["op"], |
instruction["src"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= %s %s $signed(register_%s);\n"%( |
instruction["dest"], |
instruction["left"], |
instruction["op"], |
instruction["src"])) |
elif instruction["op"] in ["float_to_int"]: |
output_file.write(" float_to <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= to_int;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" float_to_int_go <= 1;\n") |
output_file.write(" if (float_to_int_done) begin\n") |
output_file.write(" float_to_int_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] in binary_operators and "right" in instruction: |
if not instruction["signed"]: |
output_file.write( |
" register_%s <= $unsigned(register_%s) %s %s;\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["right"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= $signed(register_%s) %s %s;\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["right"])) |
elif instruction["op"] in binary_operators and "left" in instruction: |
if ("type" in instruction and |
instruction["type"] == "float" and |
instruction["op"] in ["+", "-", "*", "/"]): |
|
elif instruction["op"] in binary_operators: |
if not instruction["signed"]: |
output_file.write( |
" register_%s <= $unsigned(register_%s) %s $unsigned(register_%s);\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["srcb"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= $signed(register_%s) %s $signed(register_%s);\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["srcb"])) |
if instruction["op"] == "+": |
output_file.write(" adder_a <= %s;\n"%(instruction["left"])) |
output_file.write(" adder_b <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
if instruction["op"] == "-": |
output_file.write(" adder_a <= %s;\n"%(instruction["left"])) |
output_file.write(" adder_b <= {~register_%s[31], register_%s[30:0]};\n"%( |
instruction["src"], |
instruction["src"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write( " if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "*": |
output_file.write(" multiplier_a <= %s;\n"%(instruction["left"])) |
output_file.write(" multiplier_b <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= multiplier_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" multiplier_go <= 1;\n") |
output_file.write( " if (multiplier_done) begin\n") |
output_file.write(" multiplier_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "/": |
output_file.write(" divider_a <= %s;\n"%(instruction["left"])) |
output_file.write(" divider_b <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= divider_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" divider_go <= 1;\n") |
output_file.write(" if (divider_done) begin\n") |
output_file.write(" divider_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif not instruction["signed"]: |
output_file.write( |
" register_%s <= %s %s $unsigned(register_%s);\n"%( |
instruction["dest"], |
instruction["left"], |
instruction["op"], |
instruction["src"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= %s %s $signed(register_%s);\n"%( |
instruction["dest"], |
sign_extend(instruction["left"], instruction["size"]), |
instruction["op"], |
instruction["src"])) |
|
elif instruction["op"] == "jmp_if_false": |
output_file.write(" if (register_%s == 0)\n"%(instruction["src"])); |
output_file.write(" program_counter <= %s;\n"%to_gray(instruction["label"]&0xffff)) |
elif instruction["op"] in binary_operators and "right" in instruction: |
if ("type" in instruction and |
instruction["type"] == "float" and |
instruction["op"] in ["+", "-", "*", "/"]): |
|
elif instruction["op"] == "jmp_if_true": |
output_file.write(" if (register_%s != 0)\n"%(instruction["src"])); |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(instruction["label"]&0xffff)) |
if instruction["op"] == "+": |
output_file.write(" adder_b <= %s;\n"%(instruction["right"])) |
output_file.write(" adder_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
if instruction["op"] == "-": |
output_file.write(" adder_b <= %s;\n"%( |
instruction["right"] ^ 0x80000000)) |
output_file.write(" adder_a <= register_%s;\n"%( |
instruction["src"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "*": |
output_file.write(" multiplier_b <= %s;\n"%(instruction["right"])) |
output_file.write(" multiplier_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= multiplier_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" multiplier_go <= 1;\n") |
output_file.write(" if (multiplier_done) begin\n") |
output_file.write(" multiplier_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "/": |
output_file.write(" divider_b <= %s;\n"%(instruction["right"])) |
output_file.write(" divider_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" register_%s <= divider_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" divider_go <= 1;\n") |
output_file.write(" if (divider_done) begin\n") |
output_file.write(" divider_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] == "jmp_and_link": |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(instruction["label"]&0xffff)) |
output_file.write(" register_%s <= 16'd%s;\n"%( |
instruction["dest"], to_gray((location+1)&0xffff))) |
elif not instruction["signed"]: |
output_file.write( |
" register_%s <= $unsigned(register_%s) %s %s;\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["right"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= $signed(register_%s) %s %s;\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
sign_extend(instruction["right"], instruction["size"]))) |
|
elif instruction["op"] == "jmp_to_reg": |
output_file.write( |
" program_counter <= register_%s;\n"%instruction["src"]) |
elif instruction["op"] in binary_operators: |
if ("type" in instruction and |
instruction["type"] == "float" and |
instruction["op"] in ["+", "-", "*", "/"]): |
|
elif instruction["op"] == "goto": |
output_file.write(" program_counter <= 16'd%s;\n"%(to_gray(instruction["label"]&0xffff))) |
if instruction["op"] == "+": |
output_file.write(" adder_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" adder_b <= register_%s;\n"%(instruction["srcb"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
if instruction["op"] == "-": |
output_file.write(" adder_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" adder_b <= {~register_%s[31], register_%s[30:0]};\n"%( |
instruction["srcb"], |
instruction["srcb"])) |
output_file.write(" register_%s <= adder_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" adder_go <= 1;\n") |
output_file.write(" if (adder_done) begin\n") |
output_file.write(" adder_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "*": |
output_file.write(" multiplier_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" multiplier_b <= register_%s;\n"%(instruction["srcb"])) |
output_file.write(" register_%s <= multiplier_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" multiplier_go <= 1;\n") |
output_file.write(" if (multiplier_done) begin\n") |
output_file.write(" multiplier_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "/": |
output_file.write(" divider_a <= register_%s;\n"%(instruction["src"])) |
output_file.write(" divider_b <= register_%s;\n"%(instruction["srcb"])) |
output_file.write(" register_%s <= divider_z;\n"%(instruction["dest"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" divider_go <= 1;\n") |
output_file.write(" if (divider_done) begin\n") |
output_file.write(" divider_go <= 0;\n") |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] == "file_read": |
output_file.write(" file_count = $fscanf(%s, \"%%d\\n\", register_%s);\n"%( |
input_files[instruction["file_name"]], instruction["dest"])) |
elif not instruction["signed"]: |
output_file.write( |
" register_%s <= $unsigned(register_%s) %s $unsigned(register_%s);\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["srcb"])) |
else: |
#Verilog uses >>> as an arithmetic right shift |
if instruction["op"] == ">>": |
instruction["op"] = ">>>" |
output_file.write( |
" register_%s <= $signed(register_%s) %s $signed(register_%s);\n"%( |
instruction["dest"], |
instruction["src"], |
instruction["op"], |
instruction["srcb"])) |
|
elif instruction["op"] == "file_write": |
output_file.write(" $fdisplay(%s, \"%%d\", register_%s);\n"%( |
output_files[instruction["file_name"]], instruction["src"])) |
elif instruction["op"] == "jmp_if_false": |
output_file.write(" if (register_%s == 0)\n"%(instruction["src"])); |
output_file.write(" program_counter <= %s;\n"%to_gray(instruction["label"]&0xffff)) |
|
elif instruction["op"] == "read": |
output_file.write(" register_%s <= input_%s;\n"%( |
instruction["dest"], instruction["input"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" s_input_%s_ack <= 1'b1;\n"%instruction["input"]) |
output_file.write( " if (s_input_%s_ack == 1'b1 && input_%s_stb == 1'b1) begin\n"%( |
instruction["input"], |
instruction["input"] |
)) |
output_file.write(" s_input_%s_ack <= 1'b0;\n"%instruction["input"]) |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "jmp_if_true": |
output_file.write(" if (register_%s != 0)\n"%(instruction["src"])); |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(instruction["label"]&0xffff)) |
|
elif instruction["op"] == "ready": |
output_file.write(" register_%s <= 0;\n"%instruction["dest"]) |
output_file.write(" register_%s[0] <= input_%s_stb;\n"%( |
instruction["dest"], instruction["input"])) |
elif instruction["op"] == "jmp_and_link": |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(instruction["label"]&0xffff)) |
output_file.write(" register_%s <= 16'd%s;\n"%( |
instruction["dest"], to_gray((location+1)&0xffff))) |
|
elif instruction["op"] == "write": |
output_file.write(" s_output_%s <= register_%s;\n"%( |
instruction["output"], instruction["src"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" s_output_%s_stb <= 1'b1;\n"%instruction["output"]) |
output_file.write( |
" if (s_output_%s_stb == 1'b1 && output_%s_ack == 1'b1) begin\n"%( |
instruction["output"], |
instruction["output"] |
)) |
output_file.write(" s_output_%s_stb <= 1'b0;\n"%instruction["output"]) |
output_file.write(" program_counter <= %s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
elif instruction["op"] == "jmp_to_reg": |
output_file.write( |
" program_counter <= register_%s;\n"%instruction["src"]) |
|
elif instruction["op"] == "memory_read_request": |
output_file.write( |
" address_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["src"]) |
) |
elif instruction["op"] == "goto": |
output_file.write(" program_counter <= 16'd%s;\n"%(to_gray(instruction["label"]&0xffff))) |
|
elif instruction["op"] == "memory_read_wait": |
pass |
elif instruction["op"] == "file_read": |
output_file.write(" file_count = $fscanf(%s, \"%%d\\n\", register_%s);\n"%( |
input_files[instruction["file_name"]], instruction["dest"])) |
|
elif instruction["op"] == "memory_read": |
output_file.write( |
" register_%s <= data_out_%s;\n"%( |
instruction["dest"], |
instruction["element_size"]) |
) |
elif instruction["op"] == "file_write": |
if instruction["type"] == "float": |
output_file.write(' fp_value = (register_%s[31]?-1.0:1.0) *\n'%instruction["src"]) |
output_file.write(' (2.0 ** (register_%s[30:23]-127.0)) *\n'%instruction["src"]) |
output_file.write(' ({1\'d1, register_%s[22:0]} / (2.0**23));\n'%instruction["src"]) |
|
elif instruction["op"] == "memory_write": |
output_file.write(" address_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["src"]) |
) |
output_file.write(" data_in_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["srcb"]) |
) |
output_file.write(" write_enable_%s <= 1'b1;\n"%( |
instruction["element_size"]) |
) |
output_file.write(' $fdisplay(%s, fp_value);\n'%( |
output_files[instruction["file_name"]])) |
else: |
output_file.write(" $fdisplay(%s, \"%%d\", register_%s);\n"%( |
output_files[instruction["file_name"]], instruction["src"])) |
|
elif instruction["op"] == "memory_write_literal": |
output_file.write(" address_%s <= 16'd%s;\n"%( |
instruction["element_size"], |
instruction["address"]) |
) |
output_file.write(" data_in_%s <= %s;\n"%( |
instruction["element_size"], |
instruction["value"]) |
) |
output_file.write(" write_enable_%s <= 1'b1;\n"%( |
instruction["element_size"]) |
) |
elif instruction["op"] == "read": |
output_file.write(" register_%s <= input_%s;\n"%( |
instruction["dest"], instruction["input"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" s_input_%s_ack <= 1'b1;\n"%instruction["input"]) |
output_file.write( " if (s_input_%s_ack == 1'b1 && input_%s_stb == 1'b1) begin\n"%( |
instruction["input"], |
instruction["input"] |
)) |
output_file.write(" s_input_%s_ack <= 1'b0;\n"%instruction["input"]) |
output_file.write(" program_counter <= 16'd%s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] == "assert": |
output_file.write( " if (register_%s == 0) begin\n"%instruction["src"]) |
output_file.write( " $display(\"Assertion failed at line: %s in file: %s\");\n"%( |
instruction["line"], |
instruction["file"] |
)) |
output_file.write( " $finish_and_return(1);\n") |
output_file.write( " end\n") |
elif instruction["op"] == "ready": |
output_file.write(" register_%s <= 0;\n"%instruction["dest"]) |
output_file.write(" register_%s[0] <= input_%s_stb;\n"%( |
instruction["dest"], instruction["input"])) |
|
elif instruction["op"] == "wait_clocks": |
output_file.write(" if (timer < register_%s) begin\n"%instruction["src"]) |
output_file.write(" program_counter <= program_counter;\n") |
output_file.write(" timer <= timer+1;\n") |
output_file.write(" end\n") |
elif instruction["op"] == "write": |
output_file.write(" s_output_%s <= register_%s;\n"%( |
instruction["output"], instruction["src"])) |
output_file.write(" program_counter <= %s;\n"%to_gray(location)) |
output_file.write(" s_output_%s_stb <= 1'b1;\n"%instruction["output"]) |
output_file.write( |
" if (s_output_%s_stb == 1'b1 && output_%s_ack == 1'b1) begin\n"%( |
instruction["output"], |
instruction["output"] |
)) |
output_file.write(" s_output_%s_stb <= 1'b0;\n"%instruction["output"]) |
output_file.write(" program_counter <= %s;\n"%to_gray(location+1)) |
output_file.write(" end\n") |
|
elif instruction["op"] == "report": |
if not instruction["signed"]: |
output_file.write( |
' $display ("%%d (report at line: %s in file: %s)", $unsigned(register_%s));\n'%( |
instruction["line"], |
instruction["file"], |
instruction["src"], |
)) |
else: |
output_file.write( |
' $display ("%%d (report at line: %s in file: %s)", $signed(register_%s));\n'%( |
instruction["line"], |
instruction["file"], |
instruction["src"], |
)) |
elif instruction["op"] == "memory_read_request": |
output_file.write( |
" address_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["src"])) |
|
elif instruction["op"] == "stop": |
#If we are in testbench mode stop the simulation |
#If we are part of a larger design, other C programs may still be running |
for file_ in input_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
for file_ in output_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
if testbench: |
output_file.write(' $finish;\n') |
output_file.write(" program_counter <= program_counter;\n") |
elif instruction["op"] == "memory_read_wait": |
pass |
|
elif instruction["op"] == "memory_read": |
output_file.write( |
" register_%s <= data_out_%s;\n"%( |
instruction["dest"], |
instruction["element_size"])) |
|
elif instruction["op"] == "memory_write": |
output_file.write(" address_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["src"])) |
output_file.write(" data_in_%s <= register_%s;\n"%( |
instruction["element_size"], |
instruction["srcb"])) |
output_file.write(" write_enable_%s <= 1'b1;\n"%( |
instruction["element_size"])) |
|
elif instruction["op"] == "memory_write_literal": |
output_file.write(" address_%s <= 16'd%s;\n"%( |
instruction["element_size"], |
instruction["address"])) |
output_file.write(" data_in_%s <= %s;\n"%( |
instruction["element_size"], |
instruction["value"])) |
output_file.write(" write_enable_%s <= 1'b1;\n"%( |
instruction["element_size"])) |
|
elif instruction["op"] == "assert": |
output_file.write( " if (register_%s == 0) begin\n"%instruction["src"]) |
output_file.write( " $display(\"Assertion failed at line: %s in file: %s\");\n"%( |
instruction["line"], |
instruction["file"])) |
output_file.write( " $finish_and_return(1);\n") |
output_file.write( " end\n") |
|
elif instruction["op"] == "wait_clocks": |
output_file.write(" if (timer < register_%s) begin\n"%instruction["src"]) |
output_file.write(" program_counter <= program_counter;\n") |
output_file.write(" timer <= timer+1;\n") |
output_file.write(" end\n") |
|
elif instruction["op"] == "report": |
if instruction["type"] == "float": |
output_file.write(' fp_value = (register_%s[31]?-1.0:1.0) *\n'%instruction["src"]) |
output_file.write(' (2.0 ** (register_%s[30:23]-127.0)) *\n'%instruction["src"]) |
output_file.write(' ({1\'d1, register_%s[22:0]} / (2.0**23));\n'%instruction["src"]) |
|
output_file.write(' $display ("%%f (report at line: %s in file: %s)", fp_value);\n'%( |
instruction["line"], |
instruction["file"])) |
elif not instruction["signed"]: |
output_file.write( |
' $display ("%%d (report at line: %s in file: %s)", $unsigned(register_%s));\n'%( |
instruction["line"], |
instruction["file"], |
instruction["src"])) |
else: |
output_file.write( |
' $display ("%%d (report at line: %s in file: %s)", $signed(register_%s));\n'%( |
instruction["line"], |
instruction["file"], |
instruction["src"])) |
|
elif instruction["op"] == "stop": |
#If we are in testbench mode stop the simulation |
#If we are part of a larger design, other C programs may still be running |
for file_ in input_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
for file_ in output_files.values(): |
output_file.write(" $fclose(%s);\n"%file_) |
if testbench: |
output_file.write(' $finish;\n') |
output_file.write(" program_counter <= program_counter;\n") |
output_file.write(" end\n\n") |
|
output_file.write(" endcase\n") |
|
#Reset program counter and control signals |
output_file.write(" if (rst == 1'b1) begin\n") |
output_file.write(" program_counter <= 0;\n") |
for i in inputs: |
output_file.write(" s_input_%s_ack <= 0;\n"%(i)) |
for i in outputs: |
output_file.write(" s_output_%s_stb <= 0;\n"%(i)) |
output_file.write(" end\n") |
output_file.write(" end\n") |
for i in inputs: |
output_file.write(" assign input_%s_ack = s_input_%s_ack;\n"%(i, i)) |
for i in outputs: |
output_file.write(" assign output_%s_stb = s_output_%s_stb;\n"%(i, i)) |
output_file.write(" assign output_%s = s_output_%s;\n"%(i, i)) |
output_file.write("\nendmodule\n") |
|
return inputs, outputs |
|
def connect_float_to_int(output_file): |
output_file.write(" \n float_to_int float_to_int_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(float_to),\n") |
output_file.write(" .input_a_stb(float_to_stb),\n") |
output_file.write(" .input_a_ack(float_to_ack),\n") |
output_file.write(" .output_z(to_int),\n") |
output_file.write(" .output_z_stb(to_int_stb),\n") |
output_file.write(" .output_z_ack(to_int_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" float_to_int_done <= 0;\n") |
output_file.write(" case(float_to_int_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (float_to_int_go) begin\n") |
output_file.write(" float_to_int_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" float_to_stb <= 1;\n") |
output_file.write(" if (float_to_stb && float_to_ack) begin\n") |
output_file.write(" float_to_stb <= 0;\n") |
output_file.write(" float_to_int_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" to_int_ack <= 1;\n") |
output_file.write(" if (to_int_stb && to_int_ack) begin\n") |
output_file.write(" to_int_ack <= 0;\n") |
output_file.write(" float_to_int_state <= wait_next;\n") |
output_file.write(" float_to_int_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" wait_next:\n") |
output_file.write(" begin\n") |
output_file.write(" if (!float_to_int_go) begin\n") |
output_file.write(" float_to_int_state <= wait_go;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" float_to_int_state <= wait_go;\n") |
output_file.write(" float_to_stb <= 0;\n") |
output_file.write(" to_int_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
output_file.write(" endcase\n") |
def connect_int_to_float(output_file): |
output_file.write(" \n int_to_float int_to_float_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(int_to),\n") |
output_file.write(" .input_a_stb(int_to_stb),\n") |
output_file.write(" .input_a_ack(int_to_ack),\n") |
output_file.write(" .output_z(to_float),\n") |
output_file.write(" .output_z_stb(to_float_stb),\n") |
output_file.write(" .output_z_ack(to_float_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" int_to_float_done <= 0;\n") |
output_file.write(" case(int_to_float_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (int_to_float_go) begin\n") |
output_file.write(" int_to_float_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" int_to_stb <= 1;\n") |
output_file.write(" if (int_to_stb && int_to_ack) begin\n") |
output_file.write(" int_to_stb <= 0;\n") |
output_file.write(" int_to_float_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" to_float_ack <= 1;\n") |
output_file.write(" if (to_float_stb && to_float_ack) begin\n") |
output_file.write(" to_float_ack <= 0;\n") |
output_file.write(" int_to_float_state <= wait_next;\n") |
output_file.write(" int_to_float_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" wait_next:\n") |
output_file.write(" begin\n") |
output_file.write(" if (!int_to_float_go) begin\n") |
output_file.write(" int_to_float_state <= wait_go;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" int_to_float_state <= wait_go;\n") |
output_file.write(" int_to_stb <= 0;\n") |
output_file.write(" to_float_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
#Reset program counter and control signals |
output_file.write(" if (rst == 1'b1) begin\n") |
output_file.write(" program_counter <= 0;\n") |
for i in inputs: |
output_file.write(" s_input_%s_ack <= 0;\n"%(i)) |
for i in outputs: |
output_file.write(" s_output_%s_stb <= 0;\n"%(i)) |
output_file.write(" end\n") |
output_file.write(" end\n") |
for i in inputs: |
output_file.write(" assign input_%s_ack = s_input_%s_ack;\n"%(i, i)) |
for i in outputs: |
output_file.write(" assign output_%s_stb = s_output_%s_stb;\n"%(i, i)) |
output_file.write(" assign output_%s = s_output_%s;\n"%(i, i)) |
output_file.write("\nendmodule\n") |
def connect_divider(output_file): |
output_file.write(" \n divider divider_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(divider_a),\n") |
output_file.write(" .input_a_stb(divider_a_stb),\n") |
output_file.write(" .input_a_ack(divider_a_ack),\n") |
output_file.write(" .input_b(divider_b),\n") |
output_file.write(" .input_b_stb(divider_b_stb),\n") |
output_file.write(" .input_b_ack(divider_b_ack),\n") |
output_file.write(" .output_z(divider_z),\n") |
output_file.write(" .output_z_stb(divider_z_stb),\n") |
output_file.write(" .output_z_ack(divider_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" divider_done <= 0;\n") |
output_file.write(" case(div_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (divider_go) begin\n") |
output_file.write(" div_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_a_stb <= 1;\n") |
output_file.write(" if (divider_a_stb && divider_a_ack) begin\n") |
output_file.write(" divider_a_stb <= 0;\n") |
output_file.write(" div_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_b_stb <= 1;\n") |
output_file.write(" if (divider_b_stb && divider_b_ack) begin\n") |
output_file.write(" divider_b_stb <= 0;\n") |
output_file.write(" div_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" divider_z_ack <= 1;\n") |
output_file.write(" if (divider_z_stb && divider_z_ack) begin\n") |
output_file.write(" divider_z_ack <= 0;\n") |
output_file.write(" div_state <= wait_next;\n") |
output_file.write(" divider_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" wait_next:\n") |
output_file.write(" begin\n") |
output_file.write(" if (!divider_go) begin\n") |
output_file.write(" div_state <= wait_go;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" div_state <= wait_go;\n") |
output_file.write(" divider_a_stb <= 0;\n") |
output_file.write(" divider_b_stb <= 0;\n") |
output_file.write(" divider_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
return inputs, outputs |
def connect_multiplier(output_file): |
output_file.write(" \n multiplier multiplier_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(multiplier_a),\n") |
output_file.write(" .input_a_stb(multiplier_a_stb),\n") |
output_file.write(" .input_a_ack(multiplier_a_ack),\n") |
output_file.write(" .input_b(multiplier_b),\n") |
output_file.write(" .input_b_stb(multiplier_b_stb),\n") |
output_file.write(" .input_b_ack(multiplier_b_ack),\n") |
output_file.write(" .output_z(multiplier_z),\n") |
output_file.write(" .output_z_stb(multiplier_z_stb),\n") |
output_file.write(" .output_z_ack(multiplier_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" multiplier_done <= 0;\n") |
output_file.write(" case(mul_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (multiplier_go) begin\n") |
output_file.write(" mul_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_a_stb <= 1;\n") |
output_file.write(" if (multiplier_a_stb && multiplier_a_ack) begin\n") |
output_file.write(" multiplier_a_stb <= 0;\n") |
output_file.write(" mul_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_b_stb <= 1;\n") |
output_file.write(" if (multiplier_b_stb && multiplier_b_ack) begin\n") |
output_file.write(" multiplier_b_stb <= 0;\n") |
output_file.write(" mul_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" multiplier_z_ack <= 1;\n") |
output_file.write(" if (multiplier_z_stb && multiplier_z_ack) begin\n") |
output_file.write(" multiplier_z_ack <= 0;\n") |
output_file.write(" mul_state <= wait_next;\n") |
output_file.write(" multiplier_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" wait_next:\n") |
output_file.write(" begin\n") |
output_file.write(" if (!multiplier_go) begin\n") |
output_file.write(" mul_state <= wait_go;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" mul_state <= wait_go;\n") |
output_file.write(" multiplier_a_stb <= 0;\n") |
output_file.write(" multiplier_b_stb <= 0;\n") |
output_file.write(" multiplier_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def connect_adder(output_file): |
output_file.write(" \n adder adder_1(\n") |
output_file.write(" .clk(clk),\n") |
output_file.write(" .rst(rst),\n") |
output_file.write(" .input_a(adder_a),\n") |
output_file.write(" .input_a_stb(adder_a_stb),\n") |
output_file.write(" .input_a_ack(adder_a_ack),\n") |
output_file.write(" .input_b(adder_b),\n") |
output_file.write(" .input_b_stb(adder_b_stb),\n") |
output_file.write(" .input_b_ack(adder_b_ack),\n") |
output_file.write(" .output_z(adder_z),\n") |
output_file.write(" .output_z_stb(adder_z_stb),\n") |
output_file.write(" .output_z_ack(adder_z_ack)\n") |
output_file.write(" );\n\n") |
output_file.write(" \n always @(posedge clk)\n") |
output_file.write(" begin\n\n") |
output_file.write(" adder_done <= 0;\n") |
output_file.write(" case(add_state)\n\n") |
output_file.write(" wait_go:\n") |
output_file.write(" begin\n") |
output_file.write(" if (adder_go) begin\n") |
output_file.write(" add_state <= write_a;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_a:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_a_stb <= 1;\n") |
output_file.write(" if (adder_a_stb && adder_a_ack) begin\n") |
output_file.write(" adder_a_stb <= 0;\n") |
output_file.write(" add_state <= write_b;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" write_b:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_b_stb <= 1;\n") |
output_file.write(" if (adder_b_stb && adder_b_ack) begin\n") |
output_file.write(" adder_b_stb <= 0;\n") |
output_file.write(" add_state <= read_z;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
output_file.write(" read_z:\n") |
output_file.write(" begin\n") |
output_file.write(" adder_z_ack <= 1;\n") |
output_file.write(" if (adder_z_stb && adder_z_ack) begin\n") |
output_file.write(" adder_z_ack <= 0;\n") |
output_file.write(" add_state <= wait_next;\n") |
output_file.write(" adder_done <= 1;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" wait_next:\n") |
output_file.write(" begin\n") |
output_file.write(" if (!adder_go) begin\n") |
output_file.write(" add_state <= wait_go;\n") |
output_file.write(" end\n") |
output_file.write(" end\n") |
output_file.write(" endcase\n") |
output_file.write(" if (rst) begin\n") |
output_file.write(" add_state <= wait_go;\n") |
output_file.write(" adder_a_stb <= 0;\n") |
output_file.write(" adder_b_stb <= 0;\n") |
output_file.write(" adder_z_ack <= 0;\n") |
output_file.write(" end\n") |
output_file.write(" end\n\n") |
|
def generate_float_to_int_signals(output_file): |
output_file.write(" reg [31:0] float_to;\n") |
output_file.write(" reg float_to_stb;\n") |
output_file.write(" wire float_to_ack;\n") |
output_file.write(" wire [31:0] to_int;\n") |
output_file.write(" wire to_int_stb;\n") |
output_file.write(" reg to_int_ack;\n") |
output_file.write(" reg [2:0] float_to_int_state;\n") |
output_file.write(" reg float_to_int_go;\n") |
output_file.write(" reg float_to_int_done;\n") |
|
def generate_int_to_float_signals(output_file): |
output_file.write(" reg [31:0] int_to;\n") |
output_file.write(" reg int_to_stb;\n") |
output_file.write(" wire int_to_ack;\n") |
output_file.write(" wire [31:0] to_float;\n") |
output_file.write(" wire to_float_stb;\n") |
output_file.write(" reg to_float_ack;\n") |
output_file.write(" reg [2:0] int_to_float_state;\n") |
output_file.write(" reg int_to_float_go;\n") |
output_file.write(" reg int_to_float_done;\n") |
|
def generate_divider_signals(output_file): |
output_file.write(" reg [31:0] divider_a;\n") |
output_file.write(" reg divider_a_stb;\n") |
output_file.write(" wire divider_a_ack;\n") |
output_file.write(" reg [31:0] divider_b;\n") |
output_file.write(" reg divider_b_stb;\n") |
output_file.write(" wire divider_b_ack;\n") |
output_file.write(" wire [31:0] divider_z;\n") |
output_file.write(" wire divider_z_stb;\n") |
output_file.write(" reg divider_z_ack;\n") |
output_file.write(" reg [2:0] div_state;\n") |
output_file.write(" reg divider_go;\n") |
output_file.write(" reg divider_done;\n") |
|
def generate_multiplier_signals(output_file): |
output_file.write(" reg [31:0] multiplier_a;\n") |
output_file.write(" reg multiplier_a_stb;\n") |
output_file.write(" wire multiplier_a_ack;\n") |
output_file.write(" reg [31:0] multiplier_b;\n") |
output_file.write(" reg multiplier_b_stb;\n") |
output_file.write(" wire multiplier_b_ack;\n") |
output_file.write(" wire [31:0] multiplier_z;\n") |
output_file.write(" wire multiplier_z_stb;\n") |
output_file.write(" reg multiplier_z_ack;\n") |
output_file.write(" reg [2:0] mul_state;\n") |
output_file.write(" reg multiplier_go;\n") |
output_file.write(" reg multiplier_done;\n") |
|
def generate_adder_signals(output_file): |
output_file.write(" reg [31:0] adder_a;\n") |
output_file.write(" reg adder_a_stb;\n") |
output_file.write(" wire adder_a_ack;\n") |
output_file.write(" reg [31:0] adder_b;\n") |
output_file.write(" reg adder_b_stb;\n") |
output_file.write(" wire adder_b_ack;\n") |
output_file.write(" wire [31:0] adder_z;\n") |
output_file.write(" wire adder_z_stb;\n") |
output_file.write(" reg adder_z_ack;\n") |
output_file.write(" reg [2:0] add_state;\n") |
output_file.write(" reg adder_go;\n") |
output_file.write(" reg adder_done;\n") |
tcp_socket/trunk/chips2/chips/compiler
Property changes :
Added: svn:ignore
## -0,0 +1 ##
+*.bak
Index: tcp_socket/trunk/chips2/setup.py
===================================================================
--- tcp_socket/trunk/chips2/setup.py (revision 3)
+++ tcp_socket/trunk/chips2/setup.py (revision 4)
@@ -6,7 +6,7 @@
version="0.1.2",
description="Design hardware with Python",
long_description="""\
-
+
Chips
-----
@@ -21,7 +21,7 @@
- Automatic generation of synthesisable Verilog.
""",
-
+
author="Jon Dawson",
author_email="chips@jondawson.org.uk",
url="http://github.com/dawsonjon/Chips-2.0",
@@ -38,12 +38,11 @@
"Topic :: Software Development :: Code Generators",
],
packages=[
- "chips",
- "chips.compiler",
- "chips.api"
+ "chips",
+ "chips.compiler",
+ "chips.api"
],
scripts=[
"c2verilog"
]
)
-
/tcp_socket/trunk/chips2/scripts/copy_docs
0,0 → 1,7
#!/bin/bash |
|
cp -r docs/build/html ../chips_web/Chips-2.0 |
cd ../chips_web/Chip2-2.0 |
git add . |
git commit -a -m "Update Documents" |
git push |
tcp_socket/trunk/chips2/scripts/copy_docs
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tcp_socket/trunk/chips2/scripts/update_fpu.py
===================================================================
--- tcp_socket/trunk/chips2/scripts/update_fpu.py (nonexistent)
+++ tcp_socket/trunk/chips2/scripts/update_fpu.py (revision 4)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+import os.path
+
+divider = open(os.path.join("fpu", "divider", "divider.v")).read()
+multiplier = open(os.path.join("fpu", "multiplier", "multiplier.v")).read()
+adder = open(os.path.join("fpu", "adder", "adder.v")).read()
+int_to_float = open(os.path.join("fpu", "int_to_float", "int_to_float.v")).read()
+float_to_int = open(os.path.join("fpu", "float_to_int", "float_to_int.v")).read()
+output_file = open(os.path.join("chips", "compiler", "fpu.py"), "w")
+
+output_file.write("divider = \"\"\"%s\"\"\"\n"%divider)
+output_file.write("multiplier = \"\"\"%s\"\"\"\n"%multiplier)
+output_file.write("adder = \"\"\"%s\"\"\"\n"%adder)
+output_file.write("int_to_float = \"\"\"%s\"\"\"\n"%int_to_float)
+output_file.write("float_to_int = \"\"\"%s\"\"\"\n"%float_to_int)
tcp_socket/trunk/chips2/scripts/update_fpu.py
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tcp_socket/trunk/chips2/test_suite/.gitignore
===================================================================
--- tcp_socket/trunk/chips2/test_suite/.gitignore (revision 3)
+++ tcp_socket/trunk/chips2/test_suite/.gitignore (revision 4)
@@ -2,3 +2,4 @@
real_main
test
arbiter
+test_file
Index: tcp_socket/trunk/chips2/test_suite/.coverage
===================================================================
--- tcp_socket/trunk/chips2/test_suite/.coverage (revision 3)
+++ tcp_socket/trunk/chips2/test_suite/.coverage (revision 4)
@@ -1,29 +1,29 @@
€}q(U collectorqU
-coverage v3.4qUlinesq}q(U)/usr/share/pyshared/coverage/collector.pyq]q(KèKéKëKöK÷eUB/media/sdb1/Projects/SP605_DEMO/chips2/chips/compiler/optimizer.pyq]q (KKKKKKKKKKKKKKKKKKKK K"K#K$K&K(K)K*K+K,K-K.K0K1K2K3K4K5K6K8K:K=K>K?K@KAKBKEKFKGKHKKKLKMKNKOKQKSKUKWK[K\K]K_KcKdKeKfKgKiKmKnKpKqKsKtKvKwKyK}K~KK€K‚K†KˆKŒKKK•K–K—K˜K™KšK›KœKKžKŸK K¡K¢K£K¤K¥K§K©KªK«KK±K²K³K´KµK¶K·K¸K¹KºK»K¼K½K¾K¿KÁKÂKÃKÄKÅKÇeUA/media/sdb1/Projects/SP605_DEMO/chips2/chips/compiler/compiler.pyq
-]q(KKKKKK KKK
-KKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K5K6K7K8K9K:K;K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLKNKOKPKQKTeU?/media/sdb1/Projects/SP605_DEMO/chips2/chips/compiler/tokens.pyq]q
-(KKKKKKK KK
-KKKKKKKKKKKK!K#K$K%K)K*K+K,K/K0K1K2K3K4K5K6K7K8K9K:K;KK?KAKBKEKFKGKIKLKMKNKPKSKTKUKWKXK[K\K]K_K`KcKdKeKfKgKjKlKmKpKqKrKsKtKvKyKzK{K}K~KKƒK„K†KˆKŒKŽK’K“K—K›KœKKžKŸK¡K¥K§K¬KK®K¯K°K±K³eUF/media/sdb1/Projects/SP605_DEMO/chips2/chips/compiler/verilog_speed.pyq]q(KKKKKKKKKKKKKKKK)K.K/K0K1K2K3K5K6K7K:K;K