Skip to content

Commit 2212976

Browse files
committed
2.3.6: minor update on filter-microcode
1 parent d8f87b6 commit 2212976

File tree

6 files changed

+118
-36
lines changed

6 files changed

+118
-36
lines changed

wepsim_nodejs/wepsim.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,10 @@
161161
' * Run in an interactive REPL interface (beta):\n' +
162162
' ./wepsim.sh -a interactive --checkpoint ./repo/checkpoint/tutorial_1.txt\n' +
163163
'\n' +
164-
' * Build MIPS32-like microcode for testing in command-line:\n' +
165-
' ./wepsim.sh -a import-creator --checkpoint ./MIPS_32.json > microcode.txt\n' +
166-
' ./wepsim.sh -a run -m ep -f ./microcode.txt -s repo/assembly/mips/s6e3.asm\n' +
164+
' * Filter microcode:\n' +
165+
' echo begin > /tmp/f.txt\n' +
166+
' echo add >> /tmp/f.txt\n' +
167+
' ./wepsim.sh -a filter-microcode -m ep -f ./repo/microcode/rv32/ep_base.mc -s /tmp/f.txt\n' +
167168
'' ;
168169

169170
return o ;

wepsim_nodejs/wepsim_node_action.js

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,26 @@
290290
return true ;
291291
} ;
292292

293+
hash_action["FILTER-MICROCODE"] = function(data, options)
294+
{
295+
var elto_obj = null ;
296+
var elto_fields = null ;
297+
298+
// get filtered firmware
299+
var ret = wepsim_nodejs_get_instructionset_filtered(data, options) ;
300+
if (typeof ret.firmware === "undefined") {
301+
ret.firmware = '<Empty>\n' ;
302+
}
303+
304+
// dump filtered firmware
305+
console.log('Begin microcode-filtered') ;
306+
console.log(ret.firmware) ;
307+
console.log('End microcode-filtered\n') ;
308+
309+
return true ;
310+
} ;
311+
312+
293313
//
294314
// HELP (signal, instruction set, etc.)
295315
//
@@ -318,20 +338,6 @@
318338
} ;
319339

320340

321-
//
322-
// IMPORT-CREATOR
323-
//
324-
325-
hash_action["IMPORT-CREATOR"] = function(data, options)
326-
{
327-
var obj_def = JSON.parse(data.str_chk) ;
328-
var ret = simlang_firm_is2native(obj_def) ;
329-
330-
console.log(ret);
331-
return true ;
332-
} ;
333-
334-
335341
//
336342
// BUILD-CHECKPOINT
337343
//

wepsim_nodejs/wepsim_node_core.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,42 @@
608608
return ret ;
609609
}
610610

611+
function wepsim_nodejs_get_instructionset_filtered ( data, options )
612+
{
613+
// 1) initialization
614+
var ret = wepsim_nodejs_init(data) ;
615+
if (false === ret.ok) {
616+
return wepsim_nodejs_retfill(false, ret.msg + ".\n") ;
617+
}
618+
619+
// 2) load firmware
620+
// simcore_reset() ;
621+
622+
var ret = simcore_compile_firmware(data.firmware) ;
623+
if (false === ret.ok) {
624+
return wepsim_nodejs_retfill(false, "ERROR: Firmware: " + ret.msg) ;
625+
}
626+
627+
var SIMWARE = get_simware() ;
628+
629+
// 3) filter firmware
630+
var filter_arr = data.assembly.split('\n') ;
631+
var filter_firm = [] ;
632+
for (var i=0; i<SIMWARE.firmware.length; i++)
633+
{
634+
if (filter_arr.includes(SIMWARE.firmware[i].name)) {
635+
filter_firm.push(SIMWARE.firmware[i]) ;
636+
}
637+
}
638+
639+
// 4) save new firmware
640+
SIMWARE.firmware = filter_firm ;
641+
ret.firmware = saveFirmware(SIMWARE) ;
642+
643+
// 5) return result
644+
return ret ;
645+
}
646+
611647
function wepsim_nodejs_get_asmbin ( data, options )
612648
{
613649
// 1) initialization

ws_dist/min.external.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ws_dist/min.wepsim_node.js

Lines changed: 56 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ws_dist/wepsim.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,6 @@
161161
' * Run in an interactive REPL interface (beta):\n' +
162162
' ./wepsim.sh -a interactive --checkpoint ./repo/checkpoint/tutorial_1.txt\n' +
163163
'\n' +
164-
' * Build MIPS32-like microcode for testing in command-line:\n' +
165-
' ./wepsim.sh -a import-creator --checkpoint ./MIPS_32.json > microcode.txt\n' +
166-
' ./wepsim.sh -a run -m ep -f ./microcode.txt -s repo/assembly/mips/s6e3.asm\n' +
167164
'' ;
168165

169166
return o ;

0 commit comments

Comments
 (0)