florian
f61b074912
* (re)store alignment when doing a $push/$pop
...
git-svn-id: trunk@38020 -
2018-01-22 21:06:07 +00:00
pierre
61d0d8717a
Disable 37973 for AIX specific stabx format
...
git-svn-id: trunk@37995 -
2018-01-18 16:29:39 +00:00
svenbarth
ecda183153
* revert r37968: it does more harm than good
...
git-svn-id: trunk@37978 -
2018-01-15 16:41:22 +00:00
Jonas Maebe
a73b723c1d
* when using a dummy file position for an interface wrapper, set
...
the module to the current module. This is required in case of -al,
because when writing source lines to the assembly output the input
file position gets changed. Since the wrappers are generated at the
end of a unit's compilation, that's no problem if that input file
belongs to the current unit. It was hardcoded to the unit with id 1
before though, which is the main unit specified on the command line
and that one could be different (fixes compilation of win32 buildrtl
with -al after r37961)
git-svn-id: trunk@37973 -
2018-01-14 22:06:52 +00:00
svenbarth
d50848174a
+ add putboolean and getboolean convenience methods to tentfile
...
* use putboolean and getboolean where approbiate
git-svn-id: trunk@37972 -
2018-01-14 21:36:02 +00:00
svenbarth
9eb5f07538
* check that the PPU version of a unit loaded for package adjustment matches exactly (we don't accept different versions when loading PPUs normally, so why should we with packages?)
...
git-svn-id: trunk@37971 -
2018-01-14 21:16:37 +00:00
Jonas Maebe
a1df776167
* changed function name emitted for interface wrappers, as otherwise the
...
stabs debug info uses the wrong symbol name (fixes win32 compilation
with stabs after r37961)
git-svn-id: trunk@37970 -
2018-01-14 21:07:41 +00:00
svenbarth
22932493b9
* if the debug info of a parent def is considered as queued then ensure that it is indeed queued (if it should already be in the list then the duplicate entry would have the state written if it's checked and thus ignored)
...
+ added test
git-svn-id: trunk@37969 -
2018-01-14 16:46:10 +00:00
svenbarth
ff44f51292
* generate an internal error to avoid infinite loops if nothing changed during a loop pass to write the debug info of remaining defs
...
git-svn-id: trunk@37968 -
2018-01-14 16:43:46 +00:00
florian
5c4b1737c4
* in the generate_code normally imaginary registers are used, so just resize the register to 8 bit, the register allocator takes care of the rest
...
git-svn-id: trunk@37964 -
2018-01-13 22:05:38 +00:00
florian
823c77e6cc
* avoid overflow error in ispowerof2 for -2^bitsize, the routine does not handle negative values
...
git-svn-id: trunk@37963 -
2018-01-13 22:03:29 +00:00
Jonas Maebe
d35377fdee
* workaround for debug info for interface method wrappers: give them the
...
line number information of the method declaration if it's in the current
unit, and otherwise the first line of the current unit (mantis #14399 )
git-svn-id: trunk@37961 -
2018-01-13 16:54:22 +00:00
michael
f6a08a2c74
* Patch from Ondrej Pokorny to allow correct nodefault/stored for strings
...
git-svn-id: trunk@37954 -
2018-01-13 10:22:16 +00:00
florian
4a98fcb9d3
* patch by J. Gareth Moreton: reorganises the produced machine code for large unsigned divisions, resolves #32984
...
git-svn-id: trunk@37950 -
2018-01-12 22:03:52 +00:00
florian
52aa40c3b0
* remove explicit cast to int64 to avoid an internalerror 200706094, resolves #33004
...
git-svn-id: trunk@37946 -
2018-01-11 21:02:39 +00:00
florian
1a69c49e81
* fix range check errors by explicit casts
...
git-svn-id: trunk@37945 -
2018-01-11 21:00:18 +00:00
florian
724b822b54
* patch based on a proposal by J. Gareth Moreton to reduce register usage
...
git-svn-id: trunk@37941 -
2018-01-09 21:32:18 +00:00
florian
11a3d8762a
* patch by J. Gareth Moreton:
...
- Moved the part that emits the CMOV command outside of the if-else block, because it's the same in both branches and was just duplicated code.
- Moved a comment about powers of 2 to be right before the correct if-else block.
- Added a couple of comments to explain what the algorithm is doing to obtain the remainder.
- Added missing "writeln('ok');" (since 'tmoddiv3.pp' has it) and program header to 'tmoddiv4.pp'.
- Changed program name from "testfile2" to "tmoddiv3" in 'tmoddiv3.pp'.
git-svn-id: trunk@37939 -
2018-01-09 20:04:49 +00:00
Jonas Maebe
4014f900cb
* fixed get_iso_range_type() for non-integer orddefs (belongs with r37934)
...
git-svn-id: trunk@37938 -
2018-01-09 19:03:36 +00:00
Jonas Maebe
5f7d3e16f5
* increase comment nesting level when "(*" is followed by another '*'
...
(mantis #32019 )
git-svn-id: trunk@37935 -
2018-01-07 21:05:50 +00:00
Jonas Maebe
a2217cedd5
* evaluate the lower and upper bounds of for-loops in ISO mode using the
...
ISO-defined range type, instead of using the type of the iteration
variable (mantis #24318 )
git-svn-id: trunk@37934 -
2018-01-07 18:51:53 +00:00
Jonas Maebe
0f0bdabb89
* if an absolute typeconversion changes the size, make the source not
...
regable. Normally this is done when the absolute typeconversion node
gets created, but the size can sometimes still change afterwards (e.g.
when removing superfluous 64 bit type conversions) (mantis #32160 )
git-svn-id: trunk@37930 -
2018-01-07 15:37:23 +00:00
Jonas Maebe
53bef8d202
* fixed calculation of high parameter for arrays with non-integer bounds
...
(mantis #32645 )
git-svn-id: trunk@37928 -
2018-01-07 13:01:14 +00:00
Jonas Maebe
ae087b92d7
* when creating a unique type alias for an object, class or interface,
...
create a child object/class/interface instead of a copy of the original.
This fixes override/inheritance checks, and is also Delphi-compatible
git-svn-id: trunk@37927 -
2018-01-07 12:25:16 +00:00
Jonas Maebe
2919d97f91
* support asssigning @class.classmethod to a procvar of object in FPC modes
...
(mantis #14103 )
git-svn-id: trunk@37925 -
2018-01-06 17:47:44 +00:00
florian
81b2cf5d65
* slightly modified patch by J. Gareth Moreton: Optimization for 'mod' on i386/x86-64, resolves #32945
...
git-svn-id: trunk@37922 -
2018-01-06 14:58:28 +00:00
Jonas Maebe
1934285c20
* don't convert "int64(sint32) * cardinal_const" into a 32x32->64
...
multiplication (mantis #32046 )
git-svn-id: trunk@37921 -
2018-01-06 13:44:03 +00:00
florian
6d072872d0
* fix compilation with 3.0.x and -Oonodedfa enabled after r37887
...
git-svn-id: trunk@37919 -
2018-01-06 11:26:19 +00:00
Károly Balogh
7e630686e0
* do not use a wildcard while deleting smartlinked objects after linking stage in a script, conflicts with script filename quoting on Unix at least
...
git-svn-id: trunk@37918 -
2018-01-06 10:19:21 +00:00
Károly Balogh
3dda26b3b5
* quote assembly filenames in Unix script, fixes sh errors with smartlinked small filenames like unitname(1), etc
...
git-svn-id: trunk@37917 -
2018-01-06 10:17:18 +00:00
Károly Balogh
75158d02ca
m68k: set palmos to use 68000 and no FPU by default
...
git-svn-id: trunk@37916 -
2018-01-06 08:43:20 +00:00
Jonas Maebe
f1ace2b74d
- reverted r36870, Darwin's assembler uses a different way to specify
...
32/64 bit (like it was before; fixes mantis #32954 )
git-svn-id: trunk@37914 -
2018-01-05 19:48:19 +00:00
Jonas Maebe
320a699967
* fixed storing the symbols of the global macro symbol table in the ppu in
...
macpas mode after r32153
o adjusted test so it checks this
git-svn-id: trunk@37912 -
2018-01-04 20:51:39 +00:00
Jonas Maebe
8cfe7e0a0c
* when creating a realconstn, cast the value to the specified type
...
(mantis #25121 )
o note that this means that single_const1/single_const2 will now be rounded
to single, instead of staying the at maximum precision
o fixed FahrenheitToCelcius() to handle this change correctly
git-svn-id: trunk@37911 -
2018-01-04 20:51:36 +00:00
pierre
0c3486f6e4
Add 'U' to list of first pass parsing, required to set cs_compilesystem early and avoid false error
...
git-svn-id: trunk@37908 -
2018-01-04 16:37:13 +00:00
Károly Balogh
64e7c90147
m68k: some quickhacks to support PalmOS reg-relative globals and quick-n-dirty small code PIC. needs some cleanup, but the basic idea will be useful a potential for MacOS and Amiga .library support as well, among others
...
git-svn-id: trunk@37900 -
2018-01-04 08:33:43 +00:00
Károly Balogh
aaa40927fe
palmos: also pass --embedded-relocs to the linker. mimics what prc-tools GCC does
...
git-svn-id: trunk@37899 -
2018-01-04 08:27:23 +00:00
Károly Balogh
ac127ac10a
palmos: no .rodata section here either
...
git-svn-id: trunk@37898 -
2018-01-04 08:26:22 +00:00
Károly Balogh
57b2064cdd
m68k/palmos: support the prc-tools specific @END hack for globals when writing data symbols
...
git-svn-id: trunk@37897 -
2018-01-04 07:57:29 +00:00
Károly Balogh
9f974369a1
palmos: for C and syscall functions, expect return values in A0. mark D2 and A2 as volatile during function calls
...
git-svn-id: trunk@37896 -
2018-01-04 07:52:11 +00:00
Károly Balogh
58d98d8cd7
m68k: made the PIC_OFFSET_REGs runtime changeable, and applied some defaults
...
git-svn-id: trunk@37895 -
2018-01-04 07:50:50 +00:00
Károly Balogh
ae1b005b1a
palmos: turned off large object generation for palmos, fixed linking by skipping the unnecessary obj-res stage
...
git-svn-id: trunk@37894 -
2018-01-04 07:36:10 +00:00
pierre
dcc6a20d22
Call RegisterTarget for system_x86_6432_linux_info
...
git-svn-id: trunk@37891 -
2018-01-02 16:52:41 +00:00
Jonas Maebe
c0b0fa9c0b
* change the type of the -gt uninitialised result of ansistring functions to
...
rawbytestring so the compiler does not try to convert it to the declared
string type of the function result, as this may not be available
(mantis #32510 )
git-svn-id: trunk@37889 -
2018-01-01 18:04:13 +00:00
Jonas Maebe
672afcdca2
* check for conflicts between procedure directives specified in the
...
implementation and "virtual" (if it's a virtual method), as "virtual"
does not get repeated in the implementation and hence no conflicts get
checked by default (mantis #32605 )
git-svn-id: trunk@37887 -
2018-01-01 16:54:04 +00:00
Jonas Maebe
1b66995754
* factored out check to determine whether a variable can be subscripted in
...
inline assembly, and fixed check after r35959 (mantis #32318 )
o can also subscript parameters passed by value on the stack
o can also subscript local variables, the parameters passed by reference
that are subsequently copied into a local
git-svn-id: trunk@37886 -
2018-01-01 14:29:21 +00:00
Jonas Maebe
dcac6b9c6f
* disallow passing a dynarray(niln/pointerconstn) as an open array
...
(mantis #31273 )
git-svn-id: trunk@37885 -
2017-12-31 15:18:40 +00:00
Károly Balogh
6094910917
amiga/m68k: disable dynlibs feature. while the amiga has dynamic libraries, they have a different architecture, which don't mix with this feature. powerpc amiga could support the mainstream-style dynlibs, so keep it enabled there.
...
git-svn-id: trunk@37880 -
2017-12-30 07:00:15 +00:00
Károly Balogh
4c0e6980db
atari: workaround/silence of a vlink warning, when it merges ro sections into rw ones. there are no ro sections on atari anyway
...
git-svn-id: trunk@37878 -
2017-12-30 06:51:32 +00:00
Károly Balogh
05642cd495
atari: switch off threading for atari tos. i think if we'll ever support MiNT, that should be a separate target, with all the advanced features enabled
...
git-svn-id: trunk@37877 -
2017-12-30 06:49:39 +00:00