remove FASM.TXT duplicates from /data/$(LANG)/docs

add common fasm.txt to fasm/trunk and update Makefiles to copy it


git-svn-id: svn://kolibrios.org@4479 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Ivan Baravy 2014-01-18 17:58:39 +00:00
parent 69834ba166
commit dcbe9c8b69
10 changed files with 41 additions and 18920 deletions

View File

@ -552,10 +552,12 @@ include Makefile.nasm
# Similar for copying files. # Similar for copying files.
include Makefile.copy include Makefile.copy
# Special rules for copying sysfuncs.txt - it isn't directly included in the image. # Special rules for copying sysfuncs.txt and fasm.txt - they aren't directly included in the image.
docpack: $(DOCDIR)SYSFUNCS.TXT docpack: $(DOCDIR)SYSFUNCS.TXT $(DOCDIR)FASM.TXT
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
$(DOCDIR)FASM.TXT: $(PROGS)/develop/fasm/trunk/fasm.txt
cp $(PROGS)/develop/fasm/trunk/fasm.txt $(DOCDIR)FASM.TXT
# Similar for C--. # Similar for C--.
include Makefile.cmm include Makefile.cmm

View File

@ -552,10 +552,12 @@ include Makefile.nasm
# Similar for copying files. # Similar for copying files.
include Makefile.copy include Makefile.copy
# Special rules for copying sysfuncs.txt - it isn't directly included in the image. # Special rules for copying sysfuncs.txt and fasm.txt - they aren't directly included in the image.
docpack: $(DOCDIR)SYSFUNCS.TXT docpack: $(DOCDIR)SYSFUNCS.TXT $(DOCDIR)FASM.TXT
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
$(DOCDIR)FASM.TXT: $(PROGS)/develop/fasm/trunk/fasm.txt
cp $(PROGS)/develop/fasm/trunk/fasm.txt $(DOCDIR)FASM.TXT
# Similar for C--. # Similar for C--.
include Makefile.cmm include Makefile.cmm

File diff suppressed because it is too large Load Diff

View File

@ -511,10 +511,12 @@ include Makefile.nasm
# Similar for copying files. # Similar for copying files.
include Makefile.copy include Makefile.copy
# Special rules for copying sysfuncs.txt - it isn't directly included in the image. # Special rules for copying sysfuncs.txt and fasm.txt - they aren't directly included in the image.
docpack: $(DOCDIR)SYSFUNCS.TXT docpack: $(DOCDIR)SYSFUNCS.TXT $(DOCDIR)FASM.TXT
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
$(DOCDIR)FASM.TXT: $(PROGS)/develop/fasm/trunk/fasm.txt
cp $(PROGS)/develop/fasm/trunk/fasm.txt $(DOCDIR)FASM.TXT
# Similar for C--. # Similar for C--.
include Makefile.cmm include Makefile.cmm

File diff suppressed because it is too large Load Diff

View File

@ -571,10 +571,12 @@ include Makefile.nasm
# Similar for copying files. # Similar for copying files.
include Makefile.copy include Makefile.copy
# Special rules for copying sysfuncr.txt - it isn't directly included in the image. # Special rules for copying sysfuncr.txt and fasm.txt - they aren't directly included in the image.
docpack: $(DOCDIR)SYSFUNCR.TXT docpack: $(DOCDIR)SYSFUNCR.TXT $(DOCDIR)FASM.TXT
$(DOCDIR)SYSFUNCR.TXT: $(KERNEL)/docs/sysfuncr.txt $(DOCDIR)SYSFUNCR.TXT: $(KERNEL)/docs/sysfuncr.txt
iconv -f utf-8 -t cp866 $(KERNEL)/docs/sysfuncr.txt > $(DOCDIR)SYSFUNCR.TXT iconv -f utf-8 -t cp866 $(KERNEL)/docs/sysfuncr.txt > $(DOCDIR)SYSFUNCR.TXT
$(DOCDIR)FASM.TXT: $(PROGS)/develop/fasm/trunk/fasm.txt
cp $(PROGS)/develop/fasm/trunk/fasm.txt $(DOCDIR)FASM.TXT
# Similar for C--. # Similar for C--.
include Makefile.cmm include Makefile.cmm

File diff suppressed because it is too large Load Diff

View File

@ -551,10 +551,12 @@ include Makefile.nasm
# Similar for copying files. # Similar for copying files.
include Makefile.copy include Makefile.copy
# Special rules for copying sysfuncs.txt - it isn't directly included in the image. # Special rules for copying sysfuncs.txt and fasm.txt - they aren't directly included in the image.
docpack: $(DOCDIR)SYSFUNCS.TXT docpack: $(DOCDIR)SYSFUNCS.TXT $(DOCDIR)FASM.TXT
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
$(DOCDIR)FASM.TXT: $(PROGS)/develop/fasm/trunk/fasm.txt
cp $(PROGS)/develop/fasm/trunk/fasm.txt $(DOCDIR)FASM.TXT
# Similar for C--. # Similar for C--.
include Makefile.cmm include Makefile.cmm

File diff suppressed because it is too large Load Diff

View File

@ -438,12 +438,15 @@ the least significant byte of number.
The numerical expression used as an address value can also contain any of The numerical expression used as an address value can also contain any of
general registers used for addressing, they can be added and multiplied by general registers used for addressing, they can be added and multiplied by
appropriate values, as it is allowed for the x86 architecture instructions. appropriate values, as it is allowed for the x86 architecture instructions.
The numerical calculations inside address definition by default operate with
target size assumed to be the same as the current bitness of code, even if
generated instruction encoding will use a different address size.
There are also some special symbols that can be used inside the numerical There are also some special symbols that can be used inside the numerical
expression. First is "$", which is always equal to the value of current expression. First is "$", which is always equal to the value of current
offset, while "$$" is equal to base address of current addressing space. The offset, while "$$" is equal to base address of current addressing space. The
other one is "%", which is the number of current repeat in parts of code that other one is "%", which is the number of current repeat in parts of code that
are repeated using some special directives (see 2.2). There's also "%t" are repeated using some special directives (see 2.2) and zero anywhere else.
symbol, which is always equal to the current time stamp. There's also "%t" symbol, which is always equal to the current time stamp.
Any numerical expression can also consist of single floating point value Any numerical expression can also consist of single floating point value
(flat assembler does not allow any floating point operations at compilation (flat assembler does not allow any floating point operations at compilation
time) in the scientific notation, they can end with the "f" letter to be time) in the scientific notation, they can end with the "f" letter to be
@ -475,7 +478,7 @@ while simple "1" defines an integer value.
The operand of any jump or call instruction can be preceded not only by the The operand of any jump or call instruction can be preceded not only by the
size operator, but also by one of the operators specifying type of the jump: size operator, but also by one of the operators specifying type of the jump:
"short", "near" of "far". For example, when assembler is in 16-bit mode, "short", "near" or "far". For example, when assembler is in 16-bit mode,
instruction "jmp dword [0]" will become the far jump and when assembler is instruction "jmp dword [0]" will become the far jump and when assembler is
in 32-bit mode, it will become the near jump. To force this instruction to be in 32-bit mode, it will become the near jump. To force this instruction to be
treated differently, use the "jmp near dword [0]" or "jmp far dword [0]" form. treated differently, use the "jmp near dword [0]" or "jmp far dword [0]" form.
@ -1454,7 +1457,7 @@ computes the sine of that value, "fcos" computes the cosine of that value,
value, "frndint" rounds it to the nearest integral value, depending on the value, "frndint" rounds it to the nearest integral value, depending on the
current rounding mode. "f2xm1" computes the exponential value of 2 to the current rounding mode. "f2xm1" computes the exponential value of 2 to the
power of ST0 and substracts the 1.0 from it, the value of ST0 must lie in the power of ST0 and substracts the 1.0 from it, the value of ST0 must lie in the
range -1.0 to +1.0. All these instruction store the result in ST0 and have no range -1.0 to +1.0. All these instructions store the result in ST0 and have no
operands. operands.
"fsincos" computes both the sine and the cosine of the value in ST0 "fsincos" computes both the sine and the cosine of the value in ST0
register, stores the sine in ST0 and pushes the cosine on the top of FPU register, stores the sine in ST0 and pushes the cosine on the top of FPU
@ -1471,7 +1474,7 @@ remainder in the way specified by IEEE Standard 754. "fscale" truncates the
value in ST1 and increases the exponent of ST0 by this value. "fxtract" value in ST1 and increases the exponent of ST0 by this value. "fxtract"
separates the value in ST0 into its exponent and significand, stores the separates the value in ST0 into its exponent and significand, stores the
exponent in ST0 and pushes the significand onto the register stack. "fnop" exponent in ST0 and pushes the significand onto the register stack. "fnop"
performs no operation. These instruction have no operands. performs no operation. These instructions have no operands.
"fxch" exchanges the contents of ST0 an another FPU register. The operand "fxch" exchanges the contents of ST0 an another FPU register. The operand
should be an FPU register, if no operand is specified, the contents of ST0 and should be an FPU register, if no operand is specified, the contents of ST0 and
ST1 are exchanged. ST1 are exchanged.
@ -1504,7 +1507,7 @@ another FPU register and set the ZF, PF and CF flags according to the results.
"fcomip" and "fucomip" additionaly pop the register stack after performing the "fcomip" and "fucomip" additionaly pop the register stack after performing the
comparison. The instructions obtained by attaching the FPU condition mnemonic comparison. The instructions obtained by attaching the FPU condition mnemonic
(see table 2.2) to the "fcmov" mnemonic transfer the specified FPU register (see table 2.2) to the "fcmov" mnemonic transfer the specified FPU register
into ST0 register if the fiven test condition is true. These instruction into ST0 register if the given test condition is true. These instructions
allow two different syntaxes, one with single operand specifying the source allow two different syntaxes, one with single operand specifying the source
FPU register, and one with two operands, in that case destination operand FPU register, and one with two operands, in that case destination operand
should be ST0 register and the second operand specifies the source FPU should be ST0 register and the second operand specifies the source FPU
@ -1533,7 +1536,7 @@ and sets the flags in FPU status word to indicate the class of value in the
register. These instructions have no operands. register. These instructions have no operands.
"fstsw" and "fnstsw" store the current value of the FPU status word in the "fstsw" and "fnstsw" store the current value of the FPU status word in the
destination location. The destination operand can be either a 16-bit memory or destination location. The destination operand can be either a 16-bit memory or
the AX register. "fstsw" checks for pending umasked FPU exceptions before the AX register. "fstsw" checks for pending unmasked FPU exceptions before
storing the status word, "fnstsw" does not. storing the status word, "fnstsw" does not.
"fstcw" and "fnstcw" store the current value of the FPU control word at the "fstcw" and "fnstcw" store the current value of the FPU control word at the
specified destination in memory. "fstcw" checks for pending umasked FPU specified destination in memory. "fstcw" checks for pending umasked FPU
@ -1549,7 +1552,7 @@ FPU state (operating environment and register stack) at the specified
destination in memory and reinitializes the FPU. "fsave" check for pending destination in memory and reinitializes the FPU. "fsave" check for pending
unmasked FPU exceptions before proceeding, "fnsave" does not. "frstor" unmasked FPU exceptions before proceeding, "fnsave" does not. "frstor"
loads the FPU state from the specified memory location. All these instructions loads the FPU state from the specified memory location. All these instructions
need an operand being a memory location. For each of these instruction need an operand being a memory location. For each of these instructions
exist two additional mnemonics that allow to precisely select the type of the exist two additional mnemonics that allow to precisely select the type of the
operation. The "fstenvw", "fnstenvw", "fldenvw", "fsavew", "fnsavew" and operation. The "fstenvw", "fnstenvw", "fldenvw", "fsavew", "fnsavew" and
"frstorw" mnemonics force the instruction to perform operation as in the 16-bit "frstorw" mnemonics force the instruction to perform operation as in the 16-bit
@ -1561,12 +1564,12 @@ state. "finit" checks for pending unmasked FPU exception before proceeding,
FPU status word. "fclex" checks for pending unmasked FPU exception before FPU status word. "fclex" checks for pending unmasked FPU exception before
proceeding, "fnclex" does not. "wait" and "fwait" are synonyms for the same proceeding, "fnclex" does not. "wait" and "fwait" are synonyms for the same
instruction, which causes the processor to check for pending unmasked FPU instruction, which causes the processor to check for pending unmasked FPU
exceptions and handle them before proceeding. These instruction have no exceptions and handle them before proceeding. These instructions have no
operands. operands.
"ffree" sets the tag associated with specified FPU register to empty. The "ffree" sets the tag associated with specified FPU register to empty. The
operand should be an FPU register. operand should be an FPU register.
"fincstp" and "fdecstp" rotate the FPU stack by one by adding or "fincstp" and "fdecstp" rotate the FPU stack by one by adding or
substracting one to the pointer of the top of stack. These instruction have no substracting one to the pointer of the top of stack. These instructions have no
operands. operands.
@ -1948,7 +1951,7 @@ operand. "cvtpd2dq" and "cvttpd2dq" convert packed double precision floating
point values to packed two double word integers, storing the result in the low point values to packed two double word integers, storing the result in the low
quad word of the destination operand. "cvtdq2ps" converts packed four quad word of the destination operand. "cvtdq2ps" converts packed four
double word integers to packed single precision floating point values. double word integers to packed single precision floating point values.
For all these instruction destination operand must be a SSE register, the For all these instructions destination operand must be a SSE register, the
source operand can be a 128-bit memory location or SSE register. source operand can be a 128-bit memory location or SSE register.
"cvtdq2pd" converts packed two double word integers from the source operand to "cvtdq2pd" converts packed two double word integers from the source operand to
packed double precision floating point values, the source can be a 64-bit packed double precision floating point values, the source can be a 64-bit
@ -2050,7 +2053,7 @@ source operand into high quad word of destination operand. "haddpd" performs
the addition of two double precision values within each operand, and stores the addition of two double precision values within each operand, and stores
the result from destination operand into low quad word of destination operand, the result from destination operand into low quad word of destination operand,
and the result from source operand into high quad word of destination operand. and the result from source operand into high quad word of destination operand.
All these instruction need the destination operand to be SSE register, source All these instructions need the destination operand to be SSE register, source
operand can be SSE register or 128-bit memory location. operand can be SSE register or 128-bit memory location.
"monitor" sets up an address range for monitoring of write-back stores. It "monitor" sets up an address range for monitoring of write-back stores. It
need its three operands to be EAX, ECX and EDX register in that order. "mwait" need its three operands to be EAX, ECX and EDX register in that order. "mwait"
@ -2300,7 +2303,7 @@ packed quad words into the destination register. "pminsb" and "pmaxsb"
return the minimum or maximum values of packed signed bytes, "pminuw" and return the minimum or maximum values of packed signed bytes, "pminuw" and
"pmaxuw" return the minimum and maximum values of packed unsigned words, "pmaxuw" return the minimum and maximum values of packed unsigned words,
"pminud", "pmaxud", "pminsd" and "pmaxsd" return minimum or maximum values "pminud", "pmaxud", "pminsd" and "pmaxsd" return minimum or maximum values
of packed unsigned or signed words. These instruction complement the of packed unsigned or signed words. These instructions complement the
instructions computing packed minimum or maximum introduced by SSE. instructions computing packed minimum or maximum introduced by SSE.
"ptest" sets the ZF flag to one when the result of bitwise AND of the "ptest" sets the ZF flag to one when the result of bitwise AND of the
both operands is zero, and zeroes the ZF otherwise. It also sets CF flag both operands is zero, and zeroes the ZF otherwise. It also sets CF flag
@ -2842,7 +2845,7 @@ AVX. They introduce new vector instructions (and sometimes also their SSE
equivalents that use classic instruction encoding), and even some new equivalents that use classic instruction encoding), and even some new
instructions operating on general registers that use the AVX-like encoding instructions operating on general registers that use the AVX-like encoding
allowing the extended syntax with separate destination and source operands. allowing the extended syntax with separate destination and source operands.
The CPU support for each of these instruction sets needs to be determined The CPU support for each of these instructions sets needs to be determined
separately. separately.
The AES extension provides a specialized set of instructions for the The AES extension provides a specialized set of instructions for the
purpose of cryptographic computations defined by Advanced Encryption Standard. purpose of cryptographic computations defined by Advanced Encryption Standard.
@ -2964,7 +2967,7 @@ unsigned quad words. The respective values from the first and second source
are compared and the corresponding data element in destination is set to are compared and the corresponding data element in destination is set to
either all ones or all zeros depending on the result of comparison. The fourth either all ones or all zeros depending on the result of comparison. The fourth
operand has to specify one of the eight comparison types (table 2.5). All operand has to specify one of the eight comparison types (table 2.5). All
these instruction have also variants with only three operands and the type these instructions have also variants with only three operands and the type
of comparison encoded within the instruction name by inserting the comparison of comparison encoded within the instruction name by inserting the comparison
mnemonic after "vpcom". mnemonic after "vpcom".
@ -3021,7 +3024,7 @@ from the first and second source and then add the products to the parallel
values from the third source, then "vpmacsww" takes the lowest 16 bits of the values from the third source, then "vpmacsww" takes the lowest 16 bits of the
result and "vpmacssww" saturates the result down to 16-bit value, and they result and "vpmacssww" saturates the result down to 16-bit value, and they
store the final 16-bit results in the destination. "vpmacsdd" and "vpmacssdd" store the final 16-bit results in the destination. "vpmacsdd" and "vpmacssdd"
perform the analogous operation on 32-bit values. "vpmacswd" and "vpmacswd" do perform the analogous operation on 32-bit values. "vpmacswd" and "vpmacsswd" do
the same calculation only on the low 16-bit values from each 32-bit block and the same calculation only on the low 16-bit values from each 32-bit block and
form the 32-bit results. "vpmacsdql" and "vpmacssdql" perform such operation form the 32-bit results. "vpmacsdql" and "vpmacssdql" perform such operation
on the low 32-bit values from each 64-bit block and form the 64-bit results, on the low 32-bit values from each 64-bit block and form the 64-bit results,
@ -3703,7 +3706,7 @@ while it will itself define "alpha" when it's not already defined earlier, thus
potentially causing the error because of double definition if the "alpha" is potentially causing the error because of double definition if the "alpha" is
also defined somewhere later. also defined somewhere later.
The "used" operator may be expected to behave in a similar manner in The "used" operator may be expected to behave in a similar manner in
analogous cases, however any other kinds of predictions my not be so simple and analogous cases, however any other kinds of predictions may not be so simple and
you should never rely on them this way. you should never rely on them this way.
The "err" directive, usually used to stop the assembly when some condition is The "err" directive, usually used to stop the assembly when some condition is
met, stops the assembly immediately, regardless of whether the current pass met, stops the assembly immediately, regardless of whether the current pass
@ -4615,7 +4618,7 @@ from the resource file, it can be achieved by writing the "from" operator and
quoted file name after the "resource" identifier. Below are the examples of quoted file name after the "resource" identifier. Below are the examples of
sections containing some special PE data: sections containing some special PE data:
section '.reloc' data discardable fixups section '.reloc' data readable discardable fixups
section '.rsrc' data readable resource from 'my.res' section '.rsrc' data readable resource from 'my.res'
"entry" directive sets the entry point for Portable Executable, the value of "entry" directive sets the entry point for Portable Executable, the value of