OLD | NEW |
1 /* | 1 /* |
2 * x86 identifier recognition and instruction handling | 2 * x86 identifier recognition and instruction handling |
3 * | 3 * |
4 * Copyright (C) 2002-2007 Peter Johnson | 4 * Copyright (C) 2002-2007 Peter Johnson |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 * First match wins. | 601 * First match wins. |
602 */ | 602 */ |
603 for (; num_info>0 && !found; num_info--, info++) { | 603 for (; num_info>0 && !found; num_info--, info++) { |
604 yasm_insn_operand *op, **use_ops; | 604 yasm_insn_operand *op, **use_ops; |
605 const x86_info_operand *info_ops = | 605 const x86_info_operand *info_ops = |
606 &insn_operands[info->operands_index]; | 606 &insn_operands[info->operands_index]; |
607 unsigned int gas_flags = info->gas_flags; | 607 unsigned int gas_flags = info->gas_flags; |
608 unsigned int misc_flags = info->misc_flags; | 608 unsigned int misc_flags = info->misc_flags; |
609 unsigned int size; | 609 unsigned int size; |
610 int mismatch = 0; | 610 int mismatch = 0; |
611 int i; | 611 unsigned int i; |
612 | 612 |
613 /* Match CPU */ | 613 /* Match CPU */ |
614 if (mode_bits != 64 && (misc_flags & ONLY_64)) | 614 if (mode_bits != 64 && (misc_flags & ONLY_64)) |
615 continue; | 615 continue; |
616 if (mode_bits == 64 && (misc_flags & NOT_64)) | 616 if (mode_bits == 64 && (misc_flags & NOT_64)) |
617 continue; | 617 continue; |
618 | 618 |
619 if (bypass != 8 && | 619 if (bypass != 8 && |
620 (!BitVector_bit_test(id_insn->cpu_enabled, info->cpu0) || | 620 (!BitVector_bit_test(id_insn->cpu_enabled, info->cpu0) || |
621 !BitVector_bit_test(id_insn->cpu_enabled, info->cpu1) || | 621 !BitVector_bit_test(id_insn->cpu_enabled, info->cpu1) || |
(...skipping 1266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1888 id_insn->mode_bits = arch_x86->mode_bits; | 1888 id_insn->mode_bits = arch_x86->mode_bits; |
1889 id_insn->suffix = (PARSER(arch_x86) == X86_PARSER_GAS) ? SUF_Z : 0; | 1889 id_insn->suffix = (PARSER(arch_x86) == X86_PARSER_GAS) ? SUF_Z : 0; |
1890 id_insn->misc_flags = 0; | 1890 id_insn->misc_flags = 0; |
1891 id_insn->parser = PARSER(arch_x86); | 1891 id_insn->parser = PARSER(arch_x86); |
1892 id_insn->force_strict = arch_x86->force_strict != 0; | 1892 id_insn->force_strict = arch_x86->force_strict != 0; |
1893 id_insn->default_rel = arch_x86->default_rel != 0; | 1893 id_insn->default_rel = arch_x86->default_rel != 0; |
1894 | 1894 |
1895 return yasm_bc_create_common(&x86_id_insn_callback, id_insn, line); | 1895 return yasm_bc_create_common(&x86_id_insn_callback, id_insn, line); |
1896 } | 1896 } |
1897 | 1897 |
OLD | NEW |