+sub RIEf {
+ confess(err("ARGNUM")) if ($#_<4||5<$#_);
+ my $ops=join(',',@_[1..$#_]);
+ my $memn=(caller(1))[3];
+ $memn=~s/^.*:://;
+ my ($opcode,$r1,$r2,$i3,$i4,$i5)=(shift,get_R(shift),get_R(shift),
+ get_I(shift,8),get_I(shift,8),
+ get_I(shift,8));
+
+ $out.="\t.word\t";
+ $out.=sprintf("%#06x",(($opcode>>8)<<8|$r1<<4|$r2)).",";
+ $out.=sprintf("%#06x",($i3<<8)|$i4).",";
+ $out.=sprintf("%#06x",($i5<<8)|($opcode&0xff));
+ $out.="\t# $memn\t$ops\n"
+}
+
+sub RILa {
+ confess(err("ARGNUM")) if ($#_!=2);
+ my $ops=join(',',@_[1..$#_]);
+ my $memn=(caller(1))[3];
+ $memn=~s/^.*:://;
+ my ($opcode,$r1,$i2)=(shift,get_R(shift),get_I(shift,32));
+
+ $out.="\t.word\t";
+ $out.=sprintf("%#06x",(($opcode>>4)<<8|$r1<<4|($opcode&0xf))).",";
+ $out.=sprintf("%#06x",($i2>>16)).",";
+ $out.=sprintf("%#06x",($i2&0xffff));
+ $out.="\t# $memn\t$ops\n"
+}
+