Lines Matching refs:opcode

162 { package opcode;	# pick up opcodes  package
300 die if ($opcode->mnemonic() ne "mov");
301 $opcode->mnemonic("lea");
305 $self->{opcode} = $opcode;
361 my $mnemonic = $self->{opcode}->mnemonic();
388 my ($class, $line, $opcode) = @_;
398 $opcode->size($self->size());
497 my ($class, $line, $opcode) = @_;
510 $self->{opcode} = $opcode;
516 if ($nasm && $self->{opcode}->mnemonic()=~m/^j(?![re]cxz)/) {
1007 my $opcode=shift;
1012 push @$opcode,($rex|0x40) if ($rex);
1017 my @opcode=(0x66);
1021 rex(\@opcode,$src,$dst,0x8);
1022 push @opcode,0x0f,0x7e;
1023 push @opcode,0xc0|(($src&7)<<3)|($dst&7); # ModR/M
1024 @opcode;
1028 rex(\@opcode,$src,$dst,0x8);
1029 push @opcode,0x0f,0x6e;
1030 push @opcode,0xc0|(($src&7)<<3)|($dst&7); # ModR/M
1031 @opcode;
1039 my @opcode=(0x66);
1045 rex(\@opcode,$src,$dst);
1046 push @opcode,0x0f,0x3a,0x16;
1047 push @opcode,0xc0|(($src&7)<<3)|($dst&7); # ModR/M
1048 push @opcode,$imm;
1049 @opcode;
1057 my @opcode=(0x66);
1063 rex(\@opcode,$dst,$src);
1064 push @opcode,0x0f,0x3a,0x22;
1065 push @opcode,0xc0|(($dst&7)<<3)|($src&7); # ModR/M
1066 push @opcode,$imm;
1067 @opcode;
1075 my @opcode=(0x66);
1076 rex(\@opcode,$2,$1);
1077 push @opcode,0x0f,0x38,0x00;
1078 push @opcode,0xc0|($1&7)|(($2&7)<<3); # ModR/M
1079 @opcode;
1087 my @opcode=(0x66);
1088 rex(\@opcode,$3,$2);
1089 push @opcode,0x0f,0x3a,0x0f;
1090 push @opcode,0xc0|($2&7)|(($3&7)<<3); # ModR/M
1091 push @opcode,$1;
1092 @opcode;
1100 my @opcode=(0x66);
1101 rex(\@opcode,$3,$2);
1102 push @opcode,0x0f,0x3a,0x44;
1103 push @opcode,0xc0|($2&7)|(($3&7)<<3); # ModR/M
1105 push @opcode,$c=~/^0/?oct($c):$c;
1106 @opcode;
1114 my @opcode=();
1117 rex(\@opcode,0,$dst,8);
1118 push @opcode,0x0f,0xc7,0xf0|($dst&7);
1119 @opcode;
1127 my @opcode=();
1130 rex(\@opcode,0,$dst,8);
1131 push @opcode,0x0f,0xc7,0xf8|($dst&7);
1132 @opcode;
1143 my $opcode=shift;
1150 push @$opcode,$rxb;
1155 my @opcode=(0x8f);
1156 rxb(\@opcode,$3,$2,-1,0x08);
1157 push @opcode,0x78,0xc2;
1158 push @opcode,0xc0|($2&7)|(($3&7)<<3); # ModR/M
1160 push @opcode,$c=~/^0/?oct($c):$c;
1161 @opcode;
1169 my @opcode=(0x8f);
1170 rxb(\@opcode,$3,$2,-1,0x08);
1171 push @opcode,0x78,0xc3;
1172 push @opcode,0xc0|($2&7)|(($3&7)<<3); # ModR/M
1174 push @opcode,$c=~/^0/?oct($c):$c;
1175 @opcode;
1215 } elsif (my $opcode=opcode->re(\$line)) {
1216 my $asm = eval("\$".$opcode->mnemonic());
1227 ($arg=register->re(\$line, $opcode))||
1229 ($arg=ea->re(\$line, $opcode)) ||
1230 ($arg=expr->re(\$line, $opcode)) ||
1242 my $sz=$opcode->size();
1245 $insn = $opcode->out($#args>=1?$args[$#args]->size():$sz);
1249 $insn = $opcode->out();
1259 undef $sz if ($nasm && $opcode->mnemonic() eq "lea");
1263 printf "\t%s",$opcode->out();