Commit Graph

51945 Commits

Author SHA1 Message Date
florian
4cf2a2672a changes to fix #32043
* changed most of the variables in the assembler readers used to store constants from aint to tcgint 
  as aint has only the size of the accumular while some CPUs (AVR) allow larger constants in instructions
+ allow access to absolute symbols with address type in inline assembler
* allow absolute addresses in avr inline assembler
+ tests

git-svn-id: trunk@37411 -
2017-10-06 21:07:19 +00:00
nickysn
8ba4de3885 + test lea with non-native address sizes (16-bit on i386, 32-bit on x86_64)
git-svn-id: trunk@37410 -
2017-10-06 15:46:03 +00:00
nickysn
92a52a9f4d + implemented support for instructions with non-native address size on i8086
(16-bit and 32-bit), i386 (16-bit and 32-bit) and x86_64 (32-bit and 64-bit).
  Known bug: 32-bit addresses with an offset have their offset truncated to its
  low 16-bits on i8086

git-svn-id: trunk@37409 -
2017-10-06 15:27:14 +00:00
svenbarth
bfd37969ad * move TRttiStructuredType and TRttiInstanceType further down as they need access to TRttiMember and its children
git-svn-id: trunk@37408 -
2017-10-06 13:10:01 +00:00
nickysn
8589b946fc * different versions (behind cpu specific ifdefs) of process_ea_ref renamed
process_ea_ref_64_32, process_ea_ref_32 and process_ea_ref_16, indicating
  the address size they support; this is done, so that in the future, we can
  mix them all on the same x86 architecture and support multiple address sizes

git-svn-id: trunk@37407 -
2017-10-05 22:15:26 +00:00
Mattias Gaertner
5534acd097 fcl-passrc: resolver: fixed with-do-inherited
git-svn-id: trunk@37406 -
2017-10-05 22:14:41 +00:00
Mattias Gaertner
40717326bc fcl-passrc: resolver: error message on array of const
git-svn-id: trunk@37405 -
2017-10-05 21:57:31 +00:00
Mattias Gaertner
facd1f5002 fcl-passrc: resolver: class-of constant
git-svn-id: trunk@37404 -
2017-10-05 21:49:36 +00:00
Mattias Gaertner
a7265432eb fcl-passrc: resolver: allow different arg names in override methods
git-svn-id: trunk@37403 -
2017-10-05 21:35:09 +00:00
svenbarth
0c8f670ee0 + add TRttiPointerType
* extend Rtti test

git-svn-id: trunk@37402 -
2017-10-05 21:10:30 +00:00
svenbarth
5c85e94919 + add TRttiNamedObject.Handle property of which the getter needs to be overridden in each sub class
git-svn-id: trunk@37401 -
2017-10-05 21:06:47 +00:00
nickysn
31c9214884 * replaced R_SUBADDR with the appropriate size (R_SUBW, R_SUBD or R_SUBQ) in
the cpu specific process_ea_ref function

git-svn-id: trunk@37400 -
2017-10-05 20:39:32 +00:00
Mattias Gaertner
204ef5ac01 pastojs: fixed using type alias
git-svn-id: trunk@37399 -
2017-10-05 13:22:55 +00:00
Mattias Gaertner
a8fed34f99 pastojs: implemented resourcestrings
git-svn-id: trunk@37398 -
2017-10-04 19:43:13 +00:00
Mattias Gaertner
fe27ec2a26 fcl-passrc: resolver: check resourcestring expression
git-svn-id: trunk@37397 -
2017-10-04 19:42:56 +00:00
Mattias Gaertner
a70a1989e5 fcl-passrc: resolver: if varofaliasofclassof=typeofaliasofclassof
git-svn-id: trunk@37396 -
2017-10-04 16:42:43 +00:00
Mattias Gaertner
35f7b9fcf6 pastojs: fixed class-of-aliastype
git-svn-id: trunk@37395 -
2017-10-04 14:46:02 +00:00
Mattias Gaertner
aa1eed7b20 fcl-passrc: resolver: fixed class-of-aliastype
git-svn-id: trunk@37394 -
2017-10-04 14:37:53 +00:00
Mattias Gaertner
5fc3bbba12 pastojs: implemented logical xor
git-svn-id: trunk@37393 -
2017-10-04 12:26:22 +00:00
Mattias Gaertner
203c723bc3 fcl-passrc: resolver+useanalyzer: implemented resourcestring
git-svn-id: trunk@37392 -
2017-10-04 12:21:55 +00:00
Mattias Gaertner
48024645f0 pastojs: fixed property index value path
git-svn-id: trunk@37391 -
2017-10-04 00:53:00 +00:00
florian
cc44328109 * correctly calc case label distance after r36362, resolves #32115 and #32311
git-svn-id: trunk@37390 -
2017-10-03 20:36:09 +00:00
Mattias Gaertner
58454f555a pastojs: implemented funcname:=
git-svn-id: trunk@37389 -
2017-10-03 16:08:59 +00:00
Mattias Gaertner
abd8907939 fcl-passrc: resolver: implemented funcname:=
git-svn-id: trunk@37388 -
2017-10-03 16:07:17 +00:00
svenbarth
5edbdd5a00 * correctly handle non-static functions where the result is passed as a parameter (the order is "Self/VMT, Result, other Args" there)
git-svn-id: trunk@37387 -
2017-10-02 19:40:47 +00:00
svenbarth
98bb449945 * raise an exception if routine to be invoked isn't static, but there's no parameter to be used as Self
git-svn-id: trunk@37386 -
2017-10-02 19:39:37 +00:00
svenbarth
794eb7c122 * ensure that FLock is released in case of an exception
git-svn-id: trunk@37385 -
2017-10-02 18:51:52 +00:00
Mattias Gaertner
1bf758c997 pastojs: fixed RTTI of static arrays
git-svn-id: trunk@37384 -
2017-10-02 16:47:07 +00:00
Mattias Gaertner
e5d4d763b3 pastojs: implemented property with index specifier
git-svn-id: trunk@37383 -
2017-10-02 12:56:29 +00:00
Mattias Gaertner
6148ba8c31 fcl-passrc: resolver: implemented overriding property with index specifier
git-svn-id: trunk@37382 -
2017-10-02 12:56:11 +00:00
florian
99a3855e6b * restored old default values for MajorOperatingSystemVersion, MajorSubsystemVersion and MinorSubsystemVersion, resolves issue #32492
git-svn-id: trunk@37381 -
2017-10-01 21:02:37 +00:00
florian
7817102727 * patch by Christo Crause to implement 8 bit multiplications for "mul-less" avr types, resolves issue #31925
git-svn-id: trunk@37380 -
2017-10-01 20:34:44 +00:00
florian
c0feaf1f1e + allow absolute to absolute symbols, resolves issue #32474
git-svn-id: trunk@37379 -
2017-10-01 19:54:44 +00:00
florian
5b755661d8 + patch by Simon Ameis: adds all the STM32F091* microcontroller units to the list of supported ARM MCUs, resolves issue #32484
git-svn-id: trunk@37378 -
2017-10-01 18:59:01 +00:00
florian
ce7487b7de o patch by J. Gareth "Kit" Moreton, resolves partially issue #32037
o improves readibility of TX86AsmOptimizer.OptPass1MOV and fixes some spelling mistakes
  + Optimization MovAnd2Mov 2
  + extended Optimization MovTestJxx2TestMov and MovTestJxx2ovTestJxx to take care of and as well
  + Peephole Optimization: movq x,%reg -> movd x,%reg

git-svn-id: trunk@37377 -
2017-10-01 18:40:11 +00:00
florian
198c53a908 o patch by J. Gareth "Kit" Moreton, resolves partially issue #32037
* generate instructions with shorter imm on x86-64 if possible

git-svn-id: trunk@37376 -
2017-10-01 18:40:09 +00:00
Mattias Gaertner
01ac3334af fcl-passrc: fixed checking static array constant elements
git-svn-id: trunk@37375 -
2017-10-01 18:19:31 +00:00
florian
75e03a7e62 * avoid unneeded the generation of un-needed shift instructions thlcgobj.in a_load_subsetreg_reg
git-svn-id: trunk@37374 -
2017-10-01 16:13:22 +00:00
florian
6f338bb4b5 + tcgsubscriptnode.pass_generate_code makes use of a_loadmm_reg_intreg to avoid location_force_mem calls
git-svn-id: trunk@37373 -
2017-10-01 16:13:20 +00:00
florian
f0c237a159 + let a_load_loc_reg handle also LOC_*MMREGISTER as we have loadmm_*intreg*
git-svn-id: trunk@37372 -
2017-10-01 16:13:18 +00:00
Mattias Gaertner
c93a5438b2 pastojs: ord, pred, succ on boolean
git-svn-id: trunk@37370 -
2017-10-01 14:47:19 +00:00
Mattias Gaertner
d7f67d3689 fcl-passrc: resolver: test in operator on custom integer sets
git-svn-id: trunk@37369 -
2017-10-01 14:47:02 +00:00
florian
2b4186fcff * win64 rtl uses parallel building
git-svn-id: trunk@37368 -
2017-10-01 14:40:24 +00:00
florian
15b617546e + call TX86AsmOptimizer.OptPass1VOP for logical operations as well
git-svn-id: trunk@37367 -
2017-10-01 14:40:21 +00:00
Mattias Gaertner
2f7489f8c8 pastojs: low/high(baseinttype)
git-svn-id: trunk@37366 -
2017-10-01 07:05:01 +00:00
svenbarth
68f94d2d2d + add SOCKADDR_STORAGE type
git-svn-id: trunk@37365 -
2017-09-30 16:34:02 +00:00
svenbarth
9619576515 + add support for $SetPE{OS,SubSys,User}Version directives; Delphi compatible; Note: $SetPEUserVersion takes precedence to $Version
+ added test

git-svn-id: trunk@37364 -
2017-09-30 13:55:29 +00:00
michael
76a6c67022 * Patch from Pascal Riekenberg to fix multi-column layout
git-svn-id: trunk@37363 -
2017-09-30 11:58:05 +00:00
michael
96aa33cfd9 * Fix failing test
git-svn-id: trunk@37362 -
2017-09-30 11:51:19 +00:00
svenbarth
5c447cba50 * fix for Mantis #32476: use the correct string to check i2
git-svn-id: trunk@37361 -
2017-09-30 11:22:02 +00:00