Mattias Gaertner
f7f6712344
fcl-passrc: test write(a:3,b3:)
...
git-svn-id: trunk@38277 -
2018-02-17 22:37:06 +00:00
Mattias Gaertner
0362516772
pastojs: filer: read/write jsvalue
...
git-svn-id: trunk@38276 -
2018-02-17 22:15:41 +00:00
Mattias Gaertner
6ffa463b43
fcl-passrc: added pekSpecialize for consistency with the other expression
...
git-svn-id: trunk@38275 -
2018-02-17 22:14:42 +00:00
Mattias Gaertner
cbe3d555c3
fcl-passrc: comment about AddRef
...
git-svn-id: trunk@38274 -
2018-02-17 22:14:11 +00:00
florian
1b3627add1
+ peephole optimization MovMov2Mov 5
...
git-svn-id: trunk@38273 -
2018-02-17 21:10:51 +00:00
florian
ad4ad82908
* prevent crash on not yet supported attribute declarations, resolves #32075
...
git-svn-id: trunk@38272 -
2018-02-17 19:57:50 +00:00
florian
f37bad774c
* do not use 32 bit operations on 8 bit cpu in tcginnode.pass_generate_code if not needed, resolves #32071
...
git-svn-id: trunk@38271 -
2018-02-17 18:38:03 +00:00
florian
c3a0a4e252
+ support fmrrd/fmdrr, resolves #32398
...
git-svn-id: trunk@38270 -
2018-02-17 16:32:11 +00:00
florian
4d63945b8d
+ handle also STATUS_FLOAT_MULTIPLE_FAULTS, resolves #32822
...
git-svn-id: trunk@38269 -
2018-02-17 16:16:16 +00:00
florian
b421ed0db1
* fixed TranslateMxcsr
...
+ correctly handle sse exceptions on i386, resolves #32671
+ test
git-svn-id: trunk@38268 -
2018-02-17 15:40:49 +00:00
florian
5eb59196d5
* remove sequential moves to the same register
...
+ test
git-svn-id: trunk@38267 -
2018-02-17 12:45:17 +00:00
florian
c1de51454c
ti386shlshrnode.second_64bit:
...
* do not reused register
* copy data to a new register only if really necessary
git-svn-id: trunk@38266 -
2018-02-17 12:45:15 +00:00
florian
99f1fe54af
* check for registers removed which is not needed anymore
...
git-svn-id: trunk@38265 -
2018-02-17 12:45:13 +00:00
florian
f66a91499d
* FPC uses meanwhile more mov instructions, so extended taicpu.is_same_reg_move to support them
...
git-svn-id: trunk@38264 -
2018-02-17 09:45:19 +00:00
florian
cd41312a8f
* fixes not(<qwordbool>) on arm
...
* fixes not(<(q/l)wordbool>) on avr
git-svn-id: trunk@38263 -
2018-02-16 22:38:35 +00:00
florian
15bdce0a6a
* new test
...
git-svn-id: trunk@38262 -
2018-02-16 21:21:25 +00:00
florian
2e9f6f9dfb
* wrong alignment was used in r38252: alignment for a class returns the alignment of the implict pointer, but we really need the alignment of the data structure
...
git-svn-id: trunk@38261 -
2018-02-16 20:56:15 +00:00
Mattias Gaertner
fb2a664640
pastojs: test UTF-16 surrogate
...
git-svn-id: trunk@38259 -
2018-02-16 19:21:40 +00:00
Mattias Gaertner
fc8e95f8f5
fcl-passrc: fixed parent of TPasVariable.Expr, added resolver property BuiltInProcs
...
git-svn-id: trunk@38258 -
2018-02-16 19:20:09 +00:00
Mattias Gaertner
232195ee95
fcl-json: fixed UseUTF8=false
...
git-svn-id: trunk@38257 -
2018-02-16 19:18:35 +00:00
Mattias Gaertner
ae3a735e51
fcl-json: faster read /u
...
git-svn-id: trunk@38256 -
2018-02-16 19:17:55 +00:00
Mattias Gaertner
f3c7642384
fcl-json: fixed conversion UTF-8 to UTF-8
...
git-svn-id: trunk@38255 -
2018-02-16 19:16:59 +00:00
Mattias Gaertner
f6d764ae67
fcl-json: fixed comments, less hints
...
git-svn-id: trunk@38254 -
2018-02-16 19:16:02 +00:00
Mattias Gaertner
393991b26b
fcl-json: clean up
...
git-svn-id: trunk@38253 -
2018-02-16 19:14:05 +00:00
florian
a21f462a93
* references of fields for types using indirect addressing get proper alignment
...
git-svn-id: trunk@38252 -
2018-02-16 18:45:54 +00:00
marco
9a136836fd
* elf section alignment, patch by Florian, mantis #32900
...
M ogelf.pas
git-svn-id: trunk@38251 -
2018-02-16 18:01:29 +00:00
marco
14b14f3bda
* fixes sysctl also with 3.0.4 as starting compiler.
...
M rtl/bsd/sysctl.pp
M compiler/systems.pas
git-svn-id: trunk@38250 -
2018-02-16 17:58:20 +00:00
nickysn
81044b4cff
+ extended test tasm20.pp with a function, which checks that a shortstring
...
parameter doesn't get copied to a local variable in a pure asm routine
git-svn-id: trunk@38249 -
2018-02-16 15:27:52 +00:00
nickysn
1a57391e55
+ extended test tasm20.pp with a function, that returns a shortstring (in that
...
particular case, it is allocated a @Result variable)
git-svn-id: trunk@38248 -
2018-02-16 15:02:06 +00:00
nickysn
f1b6be2d74
+ only allocate a result variable for asm routines on i8086, if they are
...
returned in a parameter. This improves TP7 compatibility.
git-svn-id: trunk@38246 -
2018-02-15 17:51:03 +00:00
nickysn
f3391f81a5
+ introduce a new method tparamanager.asm_result_var(), which determines whether
...
a pure assembler routine should be allocated a 'result' variable
git-svn-id: trunk@38245 -
2018-02-15 17:41:07 +00:00
pierre
040ce05360
Fix error in condition to compile IDE package for cross-compilation, should solve bug report 33174
...
git-svn-id: trunk@38244 -
2018-02-15 13:12:20 +00:00
Mattias Gaertner
a86cfa9aa0
fcl-passrc: resolver: fixed array[enum..enum]
...
git-svn-id: trunk@38243 -
2018-02-14 22:51:11 +00:00
Mattias Gaertner
c8d163463a
pastojs: filer: write scopes
...
git-svn-id: trunk@38242 -
2018-02-14 22:24:18 +00:00
florian
311bcd4c08
* do not destroy flags while clearing R1, resolves #33170
...
git-svn-id: trunk@38241 -
2018-02-14 19:28:33 +00:00
nickysn
b2665b43aa
- removed darwin-i386 stuff from i8086's cpupara
...
git-svn-id: trunk@38240 -
2018-02-14 15:47:03 +00:00
pierre
22c4c349a6
force dwarf-2 debug format if used assembler does not support stabs (as indicated by new af_no_stabs flag)
...
git-svn-id: trunk@38239 -
2018-02-14 15:19:12 +00:00
pierre
55289c13e4
Use af_no_stabs for clang assembler which does not support stabs debug format
...
git-svn-id: trunk@38238 -
2018-02-14 15:09:35 +00:00
pierre
cbe09c08bc
Add new assmebler flag: af_no_stabs for assemblers that do not support stabs debug format
...
git-svn-id: trunk@38237 -
2018-02-14 15:08:29 +00:00
nickysn
b9e41330d4
+ ensure the callee size paraloc info is available, when setting up a local var
...
or parameter in RAUtils.TOperand.SetupVar(). This fixes a compiler crash, when
a parent parameter or local var is accessed (in certain ways) inside a nested
inline asm routine.
git-svn-id: trunk@38236 -
2018-02-14 14:14:34 +00:00
florian
0baf3f69d8
* modified patch of Sergey Shishmintzev: add a __text_start symbol if an external linker is used, resolves #26190
...
git-svn-id: trunk@38235 -
2018-02-13 21:16:58 +00:00
svenbarth
c87cee09fd
* use the type information *parameter* not the unitialized parameter
...
git-svn-id: trunk@38234 -
2018-02-13 19:26:21 +00:00
florian
291ee4b562
* clear r1 (and save/restore) in interrupt routines on avr
...
+ generate no entry/exit code except ret for empty subroutines
git-svn-id: trunk@38233 -
2018-02-13 17:47:23 +00:00
nickysn
6c09394d35
+ added test tasm18h.pp: same as tasm18.pp and tasm18g.pp, but for x86_64
...
git-svn-id: trunk@38232 -
2018-02-12 16:33:59 +00:00
nickysn
1857373c1b
+ added test tasm18g.pp, which is an i386 version of tasm18.pp
...
git-svn-id: trunk@38231 -
2018-02-12 16:14:21 +00:00
nickysn
f7ab96bbba
* fixed program name in test tasm18f.pp
...
git-svn-id: trunk@38230 -
2018-02-12 15:46:17 +00:00
nickysn
34c9136283
+ added tests, which check that 'test [reg+const*recordtype], 1' and
...
'test [reg+const*recordtype.recordfield], 1' produce an 'unable to determine
operand size' error
git-svn-id: trunk@38229 -
2018-02-12 15:44:39 +00:00
nickysn
6fafac65fb
+ extended test tasm18.pp with instructions with a reference to a longint-sized
...
recordtype or recordtype.variable, but explicit 'byte ptr' or 'word ptr' type
override
git-svn-id: trunk@38228 -
2018-02-12 15:34:08 +00:00
Mattias Gaertner
715a725f57
pastojs: version 0.9.5
...
git-svn-id: trunk@38227 -
2018-02-12 14:59:34 +00:00
nickysn
b2b7d685a6
+ extended test tasm18.pp with 32-bit instructions; this doesn't hurt TP7
...
compatibility, because TP7 produces an error (invalid combination of opcode
and operands) in case of e.g.
'test [di+rectype.longintfield], 1'; FPC instead generates:
'test dword ptr [di+rectype.longintfield], 1' which is 386+, so whether it
compiles depends on the asmcpu type.
git-svn-id: trunk@38226 -
2018-02-12 14:57:23 +00:00