Asm-X86
view release on metacpan or search on metacpan
* lib/Asm/X86.pm (_validate_16bit_addr_parts_intel,
_validate_16bit_addr_parts_att, _validate_32bit_addr_parts_intel,
_validate_32bit_addr_parts_att, _validate_64bit_addr_parts_intel,
_validate_64bit_addr_parts_att): Commented-out parameters and
statement tests which are always true or are not needed.
* lib/Asm/X86.pm (_validate_32bit_addr_parts_att,
_validate_32bit_addr_parts_intel, _validate_64bit_addr_parts_att,
_validate_64bit_addr_parts_intel): Changed testing the scale as a
number to testing as a string to prevent errors.
* lib/Asm/X86.pm, README: Bump the year in the copyright notices.
* KEY.asc: renamed from "KEY" to help the web POD viewer.
* t/{zz_addr_att.t,zz_addr_intel.t}: More tests.
* t/zz_duplicates.t: Display the found duplicates, if any, and
changed the message.
2021-09-19 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.62
* Changes, Makefile.PL, META.*, MYMETA.*: Fix the e-mail addresses.
* lib/Asm/X86.pm (conv_intel_addr_to_att): remove unnecessary
variables, change regexes to variables and qr// for better
readability and reduced code duplication.
* lib/Asm/X86.pm (_change_to_intel_addr_if_applicable): a new private
subroutine to convert an applicable expression to an intel memory
reference.
* lib/Asm/X86.pm (conv_att_instr_to_intel): call the new subroutine
_change_to_intel_addr_if_applicable to simplify, remove duplicated
code, change regexes to variables and qr// for better readability
and reduced duplication.
* lib/Asm/X86.pm (_remove_size_qualifiers_add_dollar): a new private
subroutine to remove any size qualifiers and leading or trailing
whitespace from the parameter, prefixing it with a dollar-sign when
necessary.
* lib/Asm/X86.pm (conv_intel_instr_to_att): call the new subroutine
_remove_size_qualifiers_add_dollar to simplify and remove
duplicated code, change regexes to variables and qr// for better
readability and reduced duplication.
2021-06-19 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.61
Fixed compatibility issues.
* Makefile.PL: Corrected hash keys and values to be strings.
* t/zz_regs_{att,intel}.t: Fixed passing parameters and hash usage.
2021-06-16 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.60
Fixed compatibility issues. Significant code simplification in the
module. Better checks in address validation, especially in AT&T
syntax. More code clean-up in unit tests.
* lib/Asm/X86.pm (is_valid_16bit_addr_intel, is_valid_32bit_addr_intel,
is_valid_64bit_addr_intel, is_valid_16bit_addr_att,
is_valid_32bit_addr_att, is_valid_64bit_addr_att): moved common
validation code to private subroutines, saving on duplication
* lib/Asm/X86.pm (is_valid_16bit_addr_att): some expressions have been
widened to allow more matches.
* lib/Asm/X86.pm (is_valid_16bit_addr_att, is_valid_32bit_addr_att,
is_valid_64bit_addr_att): disallow sign characters inside
parentheses (rejected by GNU as).
* lib/Asm/X86.pm (_add_percent, _remove_duplicates, _nopluses): removed
"my sub" and added an underscore to the name to mark the subroutines
as private and still make POD coverage tests skip them.
* lib/Asm/X86.pm (is_reg_intel, is_reg_att, is_reg8_intel, is_reg8_att,
is_reg16_intel, is_reg16_att, is_segreg_intel, is_segreg_att,
is_reg32_intel, is_reg32_att, is_addressable32_intel,
is_addressable32_att, is_r32_in64_intel, is_r32_in64_att,
is_reg64_intel, is_reg64_att, is_reg_mm_intel, is_reg_mm_att,
is_reg_fpu_intel, is_reg_fpu_att, is_reg_opmask_intel,
is_reg_opmask_att, is_instr_intel, is_instr_att): use new private
subroutines to search though the arrays and simplify the code
* t/{zz_regs_att.t,zz_regs_intel.t}: re-write and simplify the code
* t/{zz_addr_att.t,zz_addr_intel.t}: added testing the invalidity of
addresses containing one of the xmm, ymm, zmm or opmask registers
* t/zz_{addr_att,addr_intel,conv,duplicates,regs_att,regs_intel}.t:
added prototypes to subroutines and fixed the tests where necessary
2021-06-05 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.50
Fixed some defects found by comparing new test results and GNU as
output. Significant rewrite of the unit tests.
* lib/Asm/X86.pm (is_valid_16bit_addr_intel): checking the sign in
more cases, corrected one regex
* lib/Asm/X86.pm (is_valid_16bit_addr_att): disallow %segreg:var(var)
%segreg:number(number) constructs. Check if %xxx names are registers
* lib/Asm/X86.pm (is_valid_16bit_addr_att, is_valid_32bit_addr_att,
is_valid_64bit_addr_att): check if %xxx names are registers in some
cases
* lib/Asm/X86.pm (is_valid_32bit_addr_att): disallow %esp as the index
register in more cases (following GNU as). Allow 16-bit addressing
in 32-bit mode.
* lib/Asm/X86.pm (is_valid_64bit_addr_att): disallow %rsp and %rip as
the index register in more cases (following GNU as).
* lib/Asm/X86.pm (is_reg_intel, is_reg_att, is_reg8_intel, is_reg8_att,
is_reg16_intel, is_reg16_att, is_segreg_intel, is_segreg_att,
is_reg32_intel, is_reg32_att, is_addressable32_intel,
is_addressable32_att, is_r32_in64_intel, is_r32_in64_att,
is_reg64_intel, is_reg64_att, is_reg_mm_intel, is_reg_mm_att,
is_reg_fpu_intel, is_reg_fpu_att, is_reg_opmask_intel,
is_reg_opmask_att, is_instr_intel, is_instr_att): added a pre-check
to check the syntax of the expression before checking the list
* lib/Asm/X86.pm (is_valid_32bit_addr_att, is_valid_64bit_addr_att):
allow '(, reg)' modes
* lib/Asm/X86.pm (add_percent, remove_duplicates, nopluses): made the
subroutines 'my' and removed them from the manual
* lib/Asm/X86.pm: layout fixes for the POD documentation and man page.
Added information that some of the subroutines work best on input
after all preprocessing.
* Makefile.PL: added a variable with the module name
* MANIFEST, KEY: added the GnuPG key used to sign the module
* t/*.t, Makefile.PL: fixed the interpreter line
* t/*.t: significant re-write of tests - using generating procedures,
arrays and loops
* t/zz_addr_mixed.t: partially merged into zz_addr_att.t and
zz_addr_intel.t with a possibility to extend
* t/zz_regs_mixed.t: merged into zz_regs_att.t and zz_regs_intel.t and
deleted the file
2021-05-09 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.40
Fixed many defects revealed by new unit tests. 100% code is now
covered by unit tests. Updated documentation and metadata.
* lib/Asm/X86.pm (is_valid_16bit_addr_att, is_valid_32bit_addr_att):
fixed accepting invalid addresses: 'zzz(yyy)' and 'zzz(-yyy)',
removed unnecessary conditions
* lib/Asm/X86.pm (is_valid_64bit_addr_intel): allowing valid 64-bit
addressing modes: '[r32]', 'segreg:[r32]', '[segreg:r32]'.
* lib/Asm/X86.pm (is_valid_64bit_addr_att): allowing valid 64-bit
addressing modes with only 32-bit registers.
* lib/Asm/X86.pm (add_att_suffix_instr): added suffixes for 64-bit
instructions
* lib/Asm/X86.pm (conv_intel_addr_to_att): fixed regular expressions
and substitutions
* lib/Asm/X86.pm (conv_att_instr_to_intel): removed unnecessary
conditions
* lib/Asm/X86.pm (conv_intel_instr_to_att): added a missing default
case for instruction suffixes, typo fix, improved changing the
argument order, moved processing MOV[Z/S]X before removing the size
keywords and changing the operand order, added more conditions to
processing MOV[Z/S]X, fixed replacing 'byte', 'word' and similar
size keywords, added 64-bit suffixes
* lib/Asm/X86.pm (is_valid_16bit_addr_att, is_valid_32bit_addr_att,
is_valid_64bit_addr_intel): removed unnecessary conditions
* lib/Asm/X86.pm (is_valid_16bit_addr_intel): added checking the sign
in some cases
* t/*.t: many more unit tests, much more complex and covering 100%
* README: updated the links and copyright
2020-07-19 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.33
* X86.pm: Updated the instruction list from NASM version 2.15.03.
* Makefile.PL: added the minimum Perl version of '5.006' (arbitrarily
chosen based on the version of the Exporter module on my system)
2020-05-20 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.32
Fix some build/distribution errors in the previous version (README,
missing META.*). Added a digital signature.
* Makefile.PL: added detecting the "tar" utility type. In case of
detecting BSD tar (default on some systems), use GNU tar mode.
Added a parameter to sign the package.
2.13.01. Updated copyright inside the module.
* README: updated copyright inside the file.
2016-03-22 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.24
* X86.pm: Updated the register and instruction list from FASM version
1.71.51 and NASM version 2.12.01. Updated copyright inside the
module.
* README: updated copyright inside the file, quoted module names.
2015-11-01 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.23
* X86.pm: Updated the register and instruction list from FASM version
1.71.46. Updated copyright inside the module.
2014-11-15 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.22
* X86.pm: Updated the register and instruction list from NASM version
2.11.06.
2014-03-01 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.21
* X86.pm: Updated the register and instruction list from NASM version
2.11.02.
2014-01-11 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.20
* X86.pm: Updated the register and instruction list from NASM version
2.11. Added more XMM and YMM registers, added ZMM and opmask
(K[0-7]) registers. Added subroutines to check for opmask registers.
Upgraded tests.
2013-12-07 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.16
* X86.pm: Updated the register list with YMM registers.
2012-09-16 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.15
* X86.pm: Updated the instruction list from NASM version 2.10.05.
2012-07-21 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.14
* X86.pm: Updated the instruction list from NASM version 2.10.02.
2012-03-31 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.13
* X86.pm: Updated the instruction list from NASM version 2.10 and
FASM version 1.69.50. Made is_addressable32_intel,
is_addressable32_att, is_addressable32, is_r32_in64_intel
is_r32_in64_att, is_r32_in64, is_att_suffixed_instr
is_att_suffixed_instr_fpu and add_att_suffix_instr public.
* X86.pm (conv_intel_instr_to_att): corrected removing double percent
character that may be created during the conversion.
* X86.pm (conv_intel_addr_to_att): removing double percent character
that may be created during the conversion.
2012-01-22 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.12
* X86.pm: Removed duplicates from the instruction and mnemonic list.
Fixed the private subroutine add_att_suffix_instr (some AT&T
instructions were not generated). Added one new register, CR8
(available only in 64-bit mode).
* X86.pm, README: Bump the year in the copyright notices.
* README: Update with external dependencies required during manual
installation.
* zz_duplicates.t: a new test to detect duplicate entries in all the
arrays exported by the module.
2011-12-30 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.11:
Updated the instruction and mnemonic list from FASM version 1.69.35.
2010-09-08 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.10:
Updated the instruction list from NASM version 2.09.01.
2010-04-18 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.09:
Updated the instruction list from NASM version 2.08.01. Minor
whitespace changes in the source, for better readability.
2009-07-05 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.08:
Updated the instruction list from NASM version 2.06. Changed one
private procedure's name.
2008-11-09 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.07:
Documentation fixes.
Verified instruction list to be complete with fasm-1.67.28 and
updated it from nasm-2.05.01.
2008-10-24 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.06:
Updated instruction list from fasm-1.67.27. Changed double to
single quotes in one place.
2008-05-18 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.05:
A bit better coding style.
Added the tests to the package.
2008-04-17 Bogdan Drozdowski <bogdro \at\ cpan . org>
* Version 0.04:
Added functions checking if the given string represents a register
( run in 1.584 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )