florian
a27b07b342
+ more restrictions on pred/succ to dec/inc optimization
...
o check if the argument can be used as a call by reference parameter
o check if the argument has no side-effects
+ tests
git-svn-id: trunk@34816 -
2016-11-06 16:36:02 +00:00
Károly Balogh
a02ac161d6
aros: enable arosunits on ARM
...
git-svn-id: trunk@34815 -
2016-11-06 16:10:46 +00:00
Károly Balogh
ee3274166f
fpmkunit: enable AROS on arm
...
git-svn-id: trunk@34814 -
2016-11-06 15:41:27 +00:00
florian
a705525e9b
* allow prec/succ on non-consecutive enums if pred/succ are generated internally
...
git-svn-id: trunk@34813 -
2016-11-06 15:22:39 +00:00
florian
f4d1331bbe
* fpcmake has been updated
...
git-svn-id: trunk@34812 -
2016-11-06 15:20:55 +00:00
Károly Balogh
7c1c964c28
arm-aros: enabled basic AROS on ARM build
...
git-svn-id: trunk@34811 -
2016-11-06 14:40:02 +00:00
florian
9553e8b5a8
* fix building of ppudump
...
git-svn-id: trunk@34810 -
2016-11-06 14:35:32 +00:00
Károly Balogh
657aa06360
arm: arm-aros syscall support
...
git-svn-id: trunk@34809 -
2016-11-06 14:31:42 +00:00
pierre
89c1b68b14
* Delete regvars unit.
...
This unit was empty unless OLDREGVARS macro was set,
but this does not compile and no change has been made since 2011.
* Remove regvars from all _USES clauses.
git-svn-id: trunk@34808 -
2016-11-06 14:01:39 +00:00
Károly Balogh
ce5ff8ecd5
forgotten file, this should have been part of the previous commit
...
git-svn-id: trunk@34807 -
2016-11-06 12:44:01 +00:00
Károly Balogh
c7c37f66ed
* refactored syscall types for unified naming,first bits of ARM AROS syscall support
...
git-svn-id: trunk@34806 -
2016-11-06 12:41:56 +00:00
marcus
86940dfb32
AROS: added arm-aros target to compiler and fpcmake
...
git-svn-id: trunk@34805 -
2016-11-06 10:51:45 +00:00
michael
c822e07f91
* Some minor changes:
...
- Added some utility methods: TPDFPage.SetLineStyle, TPDFDocument.Reset
- Expose PDFTomm, PDFtoCM, PDFtoInches
git-svn-id: trunk@34804 -
2016-11-06 10:36:20 +00:00
marcus
e54fdc3853
m68k: fixed compilation without FPU after 34785
...
git-svn-id: trunk@34803 -
2016-11-06 08:42:41 +00:00
florian
0bc1e7e23b
* "inherit" the nf_internal flag in tinlinenode.getaddsub_for_incdec
...
git-svn-id: trunk@34802 -
2016-11-05 23:06:06 +00:00
florian
4242949453
* write more information into the interference graph
...
git-svn-id: trunk@34801 -
2016-11-05 23:06:04 +00:00
florian
ef81009362
* set nf_internal for nodes being generated by constant folding
...
git-svn-id: trunk@34800 -
2016-11-05 23:06:03 +00:00
florian
834d58f54c
* better execution weighting for while loops: the condition must be evaluated with an increased execution weight as well
...
* ensure that the weight is always increased
git-svn-id: trunk@34799 -
2016-11-05 23:06:01 +00:00
florian
64e2c2b914
+ simplify succ/pred(<const>/x+/-x<const>)
...
git-svn-id: trunk@34798 -
2016-11-05 23:06:00 +00:00
florian
4862e64b53
* type conversions of constants require that unneeded bits are cut off
...
git-svn-id: trunk@34797 -
2016-11-05 23:05:58 +00:00
florian
96858dd64d
+ additional tests which ensure that constant propagation is off
...
as the compiler optimizes the original tests too much with constant propagation
to keep them useful
git-svn-id: trunk@34796 -
2016-11-05 23:05:57 +00:00
florian
8471e02e40
* call simplify after typechecking for nodes
...
git-svn-id: trunk@34795 -
2016-11-05 23:05:54 +00:00
florian
6b84a1e1b8
+ do constant propagation into arguments of inline nodes if possible
...
+ do constant propagation into inc/dec nodes, if the node being identified as constant, is inc'ed/dec'ed
git-svn-id: trunk@34794 -
2016-11-05 23:05:53 +00:00
florian
000cffa8e3
* make more use of nf_internal to avoid range check errors
...
git-svn-id: trunk@34793 -
2016-11-05 23:05:51 +00:00
florian
e4d60b2048
* factored out tinlinenode.getaddsub_for_incdec from first_IncDec so it can be used independently
...
* get varstate right of inc/dec nodes which are converted into add/sub nodes
git-svn-id: trunk@34792 -
2016-11-05 23:05:49 +00:00
florian
509f6839fe
+ replace i:=succ/pred(i) by inc/dec(i)
...
git-svn-id: trunk@34791 -
2016-11-05 23:05:48 +00:00
florian
8bbd2e4030
+ test for issue #27744
...
git-svn-id: trunk@34790 -
2016-11-05 23:05:46 +00:00
florian
5df9b994d1
* fix warnings which were caused by last changes to for node generation
...
git-svn-id: trunk@34789 -
2016-11-05 23:05:44 +00:00
florian
0610187878
+ transform for loop into equivalent while loop during pass 1 to simplify code generation
...
git-svn-id: trunk@34788 -
2016-11-05 23:05:43 +00:00
florian
82e6e1eb34
+ tempinfo flag ti_no_final_regsync which prevents that the final reg. sync. is emitted
...
git-svn-id: trunk@34787 -
2016-11-05 23:05:41 +00:00
florian
8c701eaa7b
* reset c in dir_include if it will be re-read
...
git-svn-id: trunk@34786 -
2016-11-05 23:05:39 +00:00
Károly Balogh
7293bb7fdb
m68k: reworked setjmp/longjmp to also save the FPU registers (when compiled with HW FPU support), and to only save the nonvolatile registers
...
git-svn-id: trunk@34785 -
2016-11-05 22:02:50 +00:00
Károly Balogh
37f43d3604
m68k: cleanup of the BuildRefExpression method in the assembler reader
...
git-svn-id: trunk@34784 -
2016-11-05 19:58:06 +00:00
Károly Balogh
64650261d1
m68k: refactor of the reglist and the regpair support in the assembler reader. also added support for float register lists for FMOVEM
...
git-svn-id: trunk@34783 -
2016-11-05 18:53:20 +00:00
Károly Balogh
5237a4d5e2
m68k: support register pair operands in assembler reader and writer, as used by some instructions (mainly DIVS/DIVU and friends) so we don't have to hack them as three operand instructions
...
git-svn-id: trunk@34782 -
2016-11-05 17:07:18 +00:00
michael
8833a6fbba
* Patch from Graeme Geldenhuys to add rotation support
...
git-svn-id: trunk@34781 -
2016-11-04 19:59:28 +00:00
michael
2a39d8c9b7
* Added DefaultUnitOfMeasure
...
git-svn-id: trunk@34780 -
2016-11-03 19:55:15 +00:00
michael
9992d4b118
* SaveToStream and introduced published section
...
git-svn-id: trunk@34779 -
2016-11-03 19:21:39 +00:00
michael
a125d06c07
* Patches from Graeme Geldenhuys:
...
* Added some primitives:
DrawPolygon (= Polyline with closing path)
ClosePathStroke
FillStrokePath
FillEvenOddStrokePath
* Origin by default now at the bottom of the page.
git-svn-id: trunk@34778 -
2016-11-03 08:39:26 +00:00
Károly Balogh
e0e90fffc4
make rgobj.uses_registers also return true, when the rg never allocated an imreg, but there were direct cpu register allocations. this at least fixes some address regvar trashing on 68k in relation to syscalls' explicit paralocs
...
git-svn-id: trunk@34777 -
2016-11-03 01:45:34 +00:00
Jonas Maebe
1c04470b66
* converted for-loop to while-loop, because its loop count is used on exit
...
even if no break is triggered
git-svn-id: trunk@34776 -
2016-11-01 14:01:41 +00:00
Jonas Maebe
85f2903b8b
* don't index past the end of the transitions array (mantis #30829 )
...
git-svn-id: trunk@34775 -
2016-11-01 14:01:38 +00:00
marcus
9eb195d285
FP-IDE: Amiga-likes need ami-extra
...
git-svn-id: trunk@34773 -
2016-10-31 20:08:50 +00:00
marcus
c540b7cb7d
morphunits: workbench library unit, structures fixed, missing varargs
...
git-svn-id: trunk@34772 -
2016-10-30 21:39:14 +00:00
marcus
ad31914a73
morphunits: diskfont, keymap units rewrote from current SDK
...
git-svn-id: trunk@34771 -
2016-10-30 19:13:46 +00:00
marcus
061943ec2c
morphunits: commodities library unit part2
...
git-svn-id: trunk@34770 -
2016-10-30 16:42:42 +00:00
marcus
31fe583ce2
morphunits: commodities library unit
...
git-svn-id: trunk@34769 -
2016-10-30 16:22:36 +00:00
marcus
3463e418f9
arosunits: Commodities library unit
...
git-svn-id: trunk@34768 -
2016-10-28 20:44:28 +00:00
michael
c81b645291
* Further fixes/improvements from Graeme Geldenhuys:
...
pdf test app: Implements DrawPolyLine() example on page 2.
pdf: implements Page.DrawPolyLine() method.
pdf: TPDFLineSegment now has an option Stroke parameter. So too does Page.DrawLine().
All part of improving the path related drawing in PDF.
pdf: introduced a new PDFStrokePath class and Page.StrokePath method.
pdf: removes empty constructors.
pdf: Adds optional Stroke paramater to all CubicCurveToXXX() methods.
This allows us more control when we do custom path based drawing.
pdf: introduced new ResetPath() and ClosePath() methods for TPDFPage.
pdf test app: Implement Bezier Curve drawing in Advanced Shapes page.
pdf test app: tidy up the layout of page 2.
pdf test app: tidy up the layout of page 1.
pdf test app: adds a new "advanced shapes" page.
pdf test app: Renamed field variable to a more logical name.
pdf: Introduced CubicCurveToY() and CubicCurveToY() methods.
The code comments explain the difference.
pdf: introduced a new overloaded Page.CubicCurveTo() method.
pdf: introduced a new overloaded Page.MoveTo() method.
pdf: Gave Page.CurveToC() more meaningful parameter names.
pdf: Gave TPDFCurveC parameters and field variables more meaningful names.
pdf test app: updated the test app to show the Cubic Bezier curve in action.
pdf: introduced a cubic bezier curve method to TPDFPage.
pdf: introduced a new Page.MoveTo() method.
pdf: implements a more consistent class hierarchy.
Many classes take a Document as parameter in the constructor, yet
don't descend from TPDFDocumentObject - which defines a property
to get hold of that Document information again.
pdf test app: updated the app to show Rounded Rectangles in action.
pdf: introduced a new Page.DrawRoundedRect() method.
pdf: improved the Ellipse code with a more accurate curve magic number.
pdf: introduced a new overloaded LineSegment.Command() function.
pdf test app: Adds parameter option to embed fonts or not.
pdf: implements contents string/stream compression.
ttf unit tests: resolve failing Created/Modified datetime tests.
pdf demo: extend the sample app to draw text in a box.
git-svn-id: trunk@34767 -
2016-10-27 18:34:29 +00:00
Károly Balogh
57e6cef18b
m68k: enabled the mul to shift+sub/add optimizations for 68000
...
git-svn-id: trunk@34762 -
2016-10-23 23:46:32 +00:00