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