Commit Graph

49535 Commits

Author SHA1 Message Date
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