summaryrefslogtreecommitdiff
path: root/insns.pl
diff options
context:
space:
mode:
Diffstat (limited to 'insns.pl')
-rw-r--r--insns.pl10
1 files changed, 7 insertions, 3 deletions
diff --git a/insns.pl b/insns.pl
index 5b45d7e5..81997320 100644
--- a/insns.pl
+++ b/insns.pl
@@ -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;