diff options
Diffstat (limited to 'insns.pl')
-rw-r--r-- | insns.pl | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -687,10 +687,14 @@ sub byte_code_compile($) { } $prefix_ok = 0; } elsif ($op eq '/is4') { - if (!defined($oppos{'i'} || !defined($oppos{'s'}))) { - die "$0: $line: $op without 'i' and 's' operands\n"; + if (!defined($oppos{'s'})) { + die "$0: $line: $op without 's' operand\n"; + } + if (defined($oppos{'i'})) { + push(@codes, 0172, ($oppos{'s'} << 3)+$oppos{'i'}); + } else { + push(@codes, 0174, $oppos{'s'}); } - push(@codes, 0172, ($oppos{'s'} << 3)+$oppos{'i'}); $prefix_ok = 0; } elsif ($op =~ /^\/is4\=([0-9]+)$/) { my $imm = $1; |