nickysn
328d546155
+ extend the i8086 peephole optimization that converts certain sequences to lds
...
and les instructions to also support the lss, lfs and lgs instructions on i386
(won't be generated by the current code generator, but might become useful in
the future, if we start using the fs and gs segment registers as well)
git-svn-id: trunk@35858 -
2017-04-20 13:00:26 +00:00
nickysn
ec11864272
* use a native sized int register for the shift count in in_sar_assign_x_y,
...
in_shl_assign_x_y,in_shr_assign_x_y,in_rol_assign_x_y,in_ror_assign_x_y
git-svn-id: trunk@35857 -
2017-04-20 12:38:54 +00:00
nickysn
af235cae86
* use TEST CL,32 instead of TEST ECX,32 in the beginning of a 64-bit shl/shr
...
sequence on i386
git-svn-id: trunk@35856 -
2017-04-19 21:30:31 +00:00
nickysn
12a1ad66b2
+ added the Ch_RDirFlag change attribute to the STOSx instructions (previously
...
was missing, due to the 3 attributes per instruction limit)
git-svn-id: trunk@35855 -
2017-04-19 20:23:24 +00:00
Mattias Gaertner
6d2dbb564c
pastojs: show jsvalue ninstead of custom in incompatible type messages
...
git-svn-id: trunk@35854 -
2017-04-19 20:13:13 +00:00
Mattias Gaertner
a63cdac0f3
fcl-passrc: allow override basetypenames, fixed analyzer tpasargument
...
git-svn-id: trunk@35853 -
2017-04-19 20:12:26 +00:00
Mattias Gaertner
511339d70a
pastojs: check only allowed basetypes
...
git-svn-id: trunk@35852 -
2017-04-19 18:39:09 +00:00
Mattias Gaertner
8376f3c126
pas-fclsrc: emit element hints, type shortstring[]
...
git-svn-id: trunk@35851 -
2017-04-19 18:38:18 +00:00
nickysn
9303a8f61a
* changed the x86 TInsProp.Ch structure from a 3-element array to a pascal set;
...
this removes the limit of 3 Ch_XXX flags per instruction (thus allowing adding
more precise flags, e.g. for tracking only certain bits of the flags register,
etc.) and avoids the ugliness of having the Ch_None filler, which makes
x86ins.dat less readable.
git-svn-id: trunk@35850 -
2017-04-19 16:48:35 +00:00
nickysn
189e49998c
* fixes to the x86 instruction flags tracking attributes:
...
* AAA and AAS also read flags (AF)
* CMC reads and writes flags (it inverts CF)
* CMPSx and SCASx write flags
* CMPSx, SCASx, LODSx, STOSx, MOVSx read the direction flag
* NOT doesn't affect flags
* REP isn't affected by and doesn't affect flags
* REPE/REPNE/REPZ/REPNZ/REPC/REPNC don't write flags, only read them
* ROL and ROR don't read flags
* SAL doesn't read flags
* SHLD and SHRD don't read flags
git-svn-id: trunk@35849 -
2017-04-19 15:42:50 +00:00
nickysn
7ee0c07b8d
+ added flags register tracking for many i8086 operations
...
git-svn-id: trunk@35848 -
2017-04-19 13:46:20 +00:00
Mattias Gaertner
efe23d612b
pastojs: proc type reference-to
...
git-svn-id: trunk@35847 -
2017-04-19 13:30:46 +00:00
Mattias Gaertner
863e0c1956
fcl-passrc: resolver: proc type reference-to
...
git-svn-id: trunk@35846 -
2017-04-19 13:30:32 +00:00
Mattias Gaertner
3f3f921b18
pastojs: eopPower
...
git-svn-id: trunk@35845 -
2017-04-18 22:49:35 +00:00
Mattias Gaertner
f93b706e82
fcl-passrc: resolver: eopDivide
...
git-svn-id: trunk@35844 -
2017-04-18 22:49:06 +00:00
Mattias Gaertner
dd9630b1d7
pastojs: external names can be char
...
git-svn-id: trunk@35843 -
2017-04-18 21:37:34 +00:00
Mattias Gaertner
4f11e61033
fcl-passrc: external names can be char
...
git-svn-id: trunk@35842 -
2017-04-18 21:37:23 +00:00
nickysn
e708a76f70
* some i386 optimizations for 64-bit SHL/SHR/SAR in tcg64f386.a_op64_const_reg:
...
* only use SHx/RCx when optimizing for size
* use ADD reglo,reglo + ADC reghi,reghi for SHL by 1 on i386 and i486
git-svn-id: trunk@35841 -
2017-04-18 21:30:31 +00:00
Mattias Gaertner
e47747380e
pastojs: local vars $mod and self, no createCallBack for procs, nested inherited
...
git-svn-id: trunk@35840 -
2017-04-18 20:31:50 +00:00
Mattias Gaertner
5cf503f57d
fcl-passrc: nested inherited, emit hints for call overload error
...
git-svn-id: trunk@35839 -
2017-04-18 20:30:55 +00:00
nickysn
0264c4cace
+ implemented OP_SHR/OP_SHL/OP_SAR correctly in tcg64f386.a_op64_const_ref for
...
const values larger than 31
git-svn-id: trunk@35838 -
2017-04-18 16:02:48 +00:00
nickysn
16af6f03fb
+ support OP_SHR/OP_SHL/OP_SAR/OP_ROL/OP_ROR in tcgx86.a_op_reg_ref
...
git-svn-id: trunk@35837 -
2017-04-18 15:14:28 +00:00
nickysn
d7b8d8dd54
* don't emit the "SUB ECX,32" instruction on i386, when doing a 64-bit shift by
...
reg, with a value >=32. The instruction is redundant, because the SHL/SHR
instructions already AND mask the shift count by 31.
git-svn-id: trunk@35836 -
2017-04-18 15:09:20 +00:00
nickysn
d7c8a081a1
+ enable using the cg64 ops OP_SHR/OP_SHL/OP_SAR on i386 for implementing the
...
64-bit in_sar/shl/shr_assign_x_y inline nodes
git-svn-id: trunk@35835 -
2017-04-18 14:36:41 +00:00
nickysn
03dfa07ebc
+ implemented OP_SHR/OP_SHL/OP_SAR in i386's tcg64f386.a_op64_reg_ref
...
git-svn-id: trunk@35834 -
2017-04-18 14:34:20 +00:00
pierre
17b2671213
Regenerate all Makefile's after changes related to FPCDIR checks
...
git-svn-id: trunk@35833 -
2017-04-18 14:15:47 +00:00
nickysn
3d28878210
+ added taicpu.op_reg_reg_ref() constructor for x86, in order to support the
...
shld/shrd [ref],reg,CL instructions
git-svn-id: trunk@35832 -
2017-04-18 12:47:57 +00:00
nickysn
10d7603dce
+ implemented OP_SHR/OP_SHL/OP_SAR support in tcg64f386.a_op64_reg_reg
...
git-svn-id: trunk@35831 -
2017-04-18 12:24:46 +00:00
nickysn
7e8c89435f
* avoid the AND instruction in the i386 shr64/shl64 code, by using TEST+JZ,
...
instead of CMP+JL
git-svn-id: trunk@35830 -
2017-04-18 11:36:48 +00:00
michael
f29bbe25a6
* Parse Reference To Procedure|function
...
git-svn-id: trunk@35829 -
2017-04-18 11:24:56 +00:00
Mattias Gaertner
1b07db5a08
fppas2js: fixed compilation, due to changes in resolver
...
git-svn-id: trunk@35828 -
2017-04-18 07:46:45 +00:00
Mattias Gaertner
1117a69f78
fcl-passrc: base types ansichar, rawbytestrring, choosing overload by distance, fail if multi overloads are lossy or use default params
...
git-svn-id: trunk@35827 -
2017-04-18 07:44:52 +00:00
pierre
14ec66c649
Regenerated files after 35825: Follow-up to commit 35817: Extend do not accept $(FPCDIR)/units sub-directory existence to validate FPCDIR variable value
...
git-svn-id: trunk@35826 -
2017-04-18 06:33:34 +00:00
pierre
94ed85fa64
Follow-up to commit 35817: Extend do not accept $(FPCDIR)/units sub-directory existence to validate FPCDIR variable value
...
git-svn-id: trunk@35825 -
2017-04-18 06:30:42 +00:00
Jonas Maebe
4e1f999b02
* write full path name when ppu crc checks fail/conflict (patch by
...
C. Western, mantis #31650 )
git-svn-id: trunk@35823 -
2017-04-17 20:42:03 +00:00
michael
87b6646e02
* Demo for simple file server
...
git-svn-id: trunk@35822 -
2017-04-17 11:35:34 +00:00
michael
5a7a05bd3f
* SimpleFileModule for use with new router
...
git-svn-id: trunk@35821 -
2017-04-17 11:30:58 +00:00
joost
5051a0ccc5
* Fixed AV
...
git-svn-id: trunk@35820 -
2017-04-17 11:16:06 +00:00
joost
74f952324f
* Added test for command-line package-variants (introduced in r35814)
...
git-svn-id: trunk@35819 -
2017-04-17 10:15:07 +00:00
pierre
e6d5bd049f
Regenerated after commit 35817: * Do not accept $(FPCDIR)/units sub-directory existence to validate FPCDIR variable value
...
git-svn-id: trunk@35818 -
2017-04-17 10:06:41 +00:00
pierre
19148275db
* Do not accept $(FPCDIR)/units sub-directory existence to validate FPCDIR variable value
...
git-svn-id: trunk@35817 -
2017-04-17 10:06:11 +00:00
joost
cd13255d56
* Add a debug message to determine if a package is a source- or installed-package
...
git-svn-id: trunk@35816 -
2017-04-16 22:32:14 +00:00
joost
721e0d34e3
* Fixed help-message
...
git-svn-id: trunk@35815 -
2017-04-16 22:28:36 +00:00
joost
efd5aace57
* Added ability to add package-variants on the command-line
...
git-svn-id: trunk@35814 -
2017-04-16 22:21:30 +00:00
joost
0f8751c9e6
* Fixed task-description
...
git-svn-id: trunk@35813 -
2017-04-16 22:21:14 +00:00
joost
e5a8747f5e
* Fixed false changed-dependency messages
...
* Raised changed-dependency-messages loglevel from debug to warning
git-svn-id: trunk@35812 -
2017-04-16 20:10:02 +00:00
Mattias Gaertner
0139308762
pastojs: typecast function result
...
git-svn-id: trunk@35811 -
2017-04-16 19:31:20 +00:00
Mattias Gaertner
a4ffecf988
fcl-passrc: typecast function result
...
git-svn-id: trunk@35810 -
2017-04-16 19:31:09 +00:00
Mattias Gaertner
9e57c2f5d2
pastojs: typecast procvar and pointer, name anonymous array type
...
git-svn-id: trunk@35809 -
2017-04-16 19:12:11 +00:00
Mattias Gaertner
e32782f5b3
fcl-passrc: resolver: typecast procvar and pointer
...
git-svn-id: trunk@35808 -
2017-04-16 19:09:47 +00:00