Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit ce19171

Browse files
committed
modify syntax for writing codes to more like functional calls, and convert wait bitfield to integer list
1 parent 25f229c commit ce19171

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

lib/MaxAs/MaxAsGrammar.pm

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,27 +1354,30 @@ sub printCtrl
13541354
$watdb = $watdb ? sprintf('%02x', $watdb) : '--';
13551355

13561356
my @codes;
1357-
if($watdb ne '--') {
1358-
# $res += "waitdep="
1359-
push @codes, "waitbarrier=$watdb";
1357+
if($readb ne '-') {
1358+
push @codes, "setReadBarrier($readb)";
13601359
}
13611360
if($wrtdb ne '-') {
1362-
# $res += "waitdep="
1363-
push @codes, "writebarrier=$wrtdb";
1361+
push @codes, "setWriteBarrier($wrtdb)";
13641362
}
1365-
if($readb ne '-') {
1366-
# $res += "waitdep="
1367-
push @codes, "readbarrier=$readb";
1363+
if($watdb ne '--') {
1364+
my @barriers;
1365+
for(my $barrier=1; $barrier <= 6; $barrier++) {
1366+
my $bitvalue = 1 << ($barrier - 1);
1367+
if($watdb & $bitvalue) {
1368+
push @barriers, $barrier;
1369+
}
1370+
}
1371+
my $barrierstring = sprintf "waitBarriers([%s])", @barriers;
1372+
push @codes, $barrierstring;
13681373
}
13691374
if($yield ne '-') {
1370-
# $res += "waitdep="
1371-
push @codes, "yield";
1375+
push @codes, "yield()";
13721376
}
13731377
if($stall > 0) {
1374-
# $res += "waitdep="
1375-
push @codes, "stall=$stall";
1378+
push @codes, "stall($stall)";
13761379
}
1377-
my $res = join(",", @codes);
1380+
my $res = join(";", @codes);
13781381
if($res ne "") {
13791382
$res = join("", "# ", $res, "\n");
13801383
}

0 commit comments

Comments
 (0)