Skip to content

Commit

Permalink
Implement Ops::Op.need_write_barrier
Browse files Browse the repository at this point in the history
  • Loading branch information
bacek committed Feb 15, 2011
1 parent bb45335 commit 0dcf6ef
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion compilers/opsc/src/Ops/Op.pm
Expand Up @@ -126,7 +126,15 @@ method name($name?) { self.attr('name', $name, defined($name)) }

method args($args?) { self.attr('args', $args, defined($args)) }

method need_write_barrier($args?) { self.attr('need_write_barrier', $args, defined($args)) }
method need_write_barrier() {
my $need := 0;
# We need write barriers only for (in)out PMC|STR
for self.args -> $a {
$need := ($a<type> eq 'STR' || $a<type> eq 'PMC')
&& ($a<direction> eq 'out' || $a<direction> eq 'inout');
}
$need;
}

method arg_types($args?) {
my $res := self.attr('arg_types', $args, defined($args));
Expand Down

0 comments on commit 0dcf6ef

Please sign in to comment.