Commit Graph

47493 Commits

Author SHA1 Message Date
sergei
a78250a78b * x87 FBSTP and FBLD instructions cannot have size suffix in ATT syntax. Mantis #29095.
git-svn-id: trunk@32541 -
2015-11-27 03:59:06 +00:00
michael
278a8fc39c * Applied patch from Bart Broersma to fix bug #28725
git-svn-id: trunk@32540 -
2015-11-26 20:54:48 +00:00
yury
3e894e592d * pas2jni: Fixed code generation for i386 targets.
git-svn-id: trunk@32539 -
2015-11-26 19:21:04 +00:00
yury
6f8e9ad23e * Fixed cwstring for Android after latest widestring manager changes.
git-svn-id: trunk@32538 -
2015-11-26 18:14:26 +00:00
yury
17358aa3ed * Removed unused local vars.
git-svn-id: trunk@32537 -
2015-11-26 17:15:04 +00:00
yury
78b4950b97 * Fixed calling of external procs for i386 non-darwin targets when PIC is enabled.
git-svn-id: trunk@32536 -
2015-11-26 17:04:55 +00:00
Jonas Maebe
ac743195b6 * fixup for r32534: don't define external symbols, only reference them
(mantis #29091)

git-svn-id: trunk@32535 -
2015-11-26 07:56:50 +00:00
Jonas Maebe
ac18eb005f * make the vectorized dead strip section symbol external for files that
don't define it

git-svn-id: trunk@32534 -
2015-11-25 22:25:54 +00:00
Jonas Maebe
4c720b8ba2 * fixed parameter order of llvm.memcpy call
git-svn-id: trunk@32533 -
2015-11-25 22:25:51 +00:00
Jonas Maebe
eefcbaff69 * converted tnodeutils.InsertResourceInfo to the high level typed constant
builder and enabled it for llvm

git-svn-id: trunk@32532 -
2015-11-25 22:25:48 +00:00
Jonas Maebe
682d133e1e * enable generic tllvmnodeutils.InsertResourceTablesTable for llvm
git-svn-id: trunk@32531 -
2015-11-25 22:25:45 +00:00
Jonas Maebe
0c4edd2aa9 * fixed getting address of interface methods after r32414: interfaces are not
a pointer to a vmt, but a pointer to a pointer to vmt (mantis #29086)
   o also adjusted the llvm type for interfaces accordingly

git-svn-id: trunk@32530 -
2015-11-25 19:28:17 +00:00
nickysn
bfa96171e0 * changed the asizeint and asizeuint to 32-bit on CPUs with 16-bit address
space, in order to allow data structures larger than 32k (and less than 64k)

git-svn-id: trunk@32529 -
2015-11-25 15:35:38 +00:00
Jonas Maebe
f65cb5d933 * equivalent of r32525/32526 for the assembler version of the startup code
git-svn-id: trunk@32528 -
2015-11-25 00:10:26 +00:00
Jonas Maebe
2249d95ddb * call external routines via their TOC entry instead of directly
(mantis #29004)

git-svn-id: trunk@32527 -
2015-11-25 00:10:23 +00:00
Jonas Maebe
740f8532df * fixed saving the stack pointer in r32525
git-svn-id: trunk@32526 -
2015-11-25 00:10:19 +00:00
Jonas Maebe
816c66107e * fixed dynamic startup of programs that don't link against libc (they get
argc/argv/envp in r3/r4/r5)

git-svn-id: trunk@32525 -
2015-11-24 23:34:30 +00:00
Jonas Maebe
71e27e85c9 * fixed llvm unaryminus for comp/currency on platforms supporting extended
git-svn-id: trunk@32524 -
2015-11-24 20:10:48 +00:00
Jonas Maebe
6cf67b7ace * only convert left/right to the resultdef of an addnode involving pointers
if the it's an addn/subn. For comparisons, the resultdef is boolean, and
    left and right will already have the same type (with addn/subn, one could
    be a pointer and the other an integer)

git-svn-id: trunk@32523 -
2015-11-24 20:10:45 +00:00
Jonas Maebe
2ad8bc3b27 * fixed operation size of comparison with maximum legal value in
tcginnode.passs_generate_code

git-svn-id: trunk@32522 -
2015-11-24 20:10:42 +00:00
Jonas Maebe
1d460eebc1 * ensure that necessary padding bytes in a non-anonymous aggregate are added
before any nested aggregate

git-svn-id: trunk@32521 -
2015-11-24 20:10:38 +00:00
Jonas Maebe
ef3bafd67c * fixed resetting defs after generating the llvm "type" instructions: the
dbg_state is not sufficient to determine whether or not a def has
    already been processed or not -> use stab_number (and reset it)
   o also record all defs we don't emit "type" instruction for, but which
     we still process to find other defs, so we reset those too

git-svn-id: trunk@32520 -
2015-11-24 20:10:35 +00:00
Jonas Maebe
ba92fdafcc * free the calleeside paraloc information after a unit has been compiled
git-svn-id: trunk@32519 -
2015-11-24 20:10:32 +00:00
Jonas Maebe
2342ee467b * don't write the parameter names for external function declarations in llvm,
because the names we assign to parameter locations are no longer valid after
    a module has been compiled (they are tasmsymbols), and they're not necessary
    for declarations either; this also avoids generating calleeside parameter
    information for imported routines just to write the external declaration
    (the callerside information will already be available from when the routines
     were called)

git-svn-id: trunk@32518 -
2015-11-24 20:10:28 +00:00
Jonas Maebe
9ea38f4577 * support static fields in nested types in records, by always including
support for nested types when generating an access to a static fied;
    we also always do that when generating the mangled name of a static
    field declaration in symcreat.make_field_static() (mantis #29030)

git-svn-id: trunk@32517 -
2015-11-24 16:04:19 +00:00
Jonas Maebe
9dc5f1acb4 * support LOC_(C)SUBSETREG in tcgvecnode.pass_generate_code, can also occur
for function results (patch by Do-wan Kim, mantis #29064)

git-svn-id: trunk@32516 -
2015-11-24 15:03:34 +00:00
Jeppe Johansen
f5eaf7ddde Fix stack pointer offset.
git-svn-id: trunk@32499 -
2015-11-22 20:51:54 +00:00
nickysn
e6d01eb3b5 * fixed a bug, which caused a function that returns a method pointer (or nested
procdef) to be called twice, when the result of this function is immediately
  called (i.e. not stored in a temp variable).

git-svn-id: trunk@32495 -
2015-11-22 17:21:08 +00:00
marco
7d1889e0ef * mantis #28917 'r' mode sets filemode.
git-svn-id: trunk@32490 -
2015-11-22 13:21:21 +00:00
Jonas Maebe
ea0c8e6f38 - reverted accidentally committed code with r32463
git-svn-id: trunk@32476 -
2015-11-22 11:52:30 +00:00
Jonas Maebe
99c97c331a * keep the result type after a call as llvmretdef, because call nodes
afterwards use hlcg.gen_load_cgpara_loc() to convert it to the Pascal
    level tdef (and otherwise we try to do this twice). For non-Pascal
    level calls, the code generator will automatically convert the
    type if necessary when using the function result location, because
    its def is (now) set to llvmretdef

git-svn-id: trunk@32475 -
2015-11-22 11:49:51 +00:00
Jonas Maebe
f4a62c4c60 * fixed (harmless) range errors in getasizeint() after r32444
git-svn-id: trunk@32474 -
2015-11-22 11:49:47 +00:00
Jonas Maebe
94a6ef3103 * use codeptruinttype/codeptrsinttype when emiting ordinal constants that
have the same size as voidcodepointertype

git-svn-id: trunk@32473 -
2015-11-22 11:49:43 +00:00
Jonas Maebe
7b89072d88 * fixed external wrapper generation on llvm
git-svn-id: trunk@32472 -
2015-11-22 11:49:40 +00:00
Jonas Maebe
8f57609ef2 * fixed types for classrefdef typed constants
git-svn-id: trunk@32471 -
2015-11-22 11:49:36 +00:00
Jonas Maebe
2504a0ce6c + codeptruinttype/codeptrsinttype that has the same size as
voidcodepointertype

git-svn-id: trunk@32470 -
2015-11-22 11:49:32 +00:00
Jonas Maebe
e90af5d7c0 * fixed collection of types from tai_*typedconst
git-svn-id: trunk@32469 -
2015-11-22 11:49:28 +00:00
Jonas Maebe
c17458149c - removed accidentally committed debug code
git-svn-id: trunk@32468 -
2015-11-22 11:49:25 +00:00
Jonas Maebe
f37576cf0f * fixed type of resourcestrings in typed constants
git-svn-id: trunk@32467 -
2015-11-22 11:49:21 +00:00
Jonas Maebe
0bceb953e5 * fixed high level type of unicodestring records
git-svn-id: trunk@32466 -
2015-11-22 11:49:18 +00:00
Jonas Maebe
4f287207cd * initialise all register temps with "undef" for llvm, so that llvm knows
they exist even if we try to read them before writing to them (e.g.
    because they represent the uninitialised function result of an
    inlined function)

git-svn-id: trunk@32465 -
2015-11-22 11:49:15 +00:00
Jonas Maebe
13cf405f8c * fixed llvm second_int_to_real for comp
git-svn-id: trunk@32464 -
2015-11-22 11:49:11 +00:00
Jonas Maebe
688b9c0a69 * use the correctly typecasted reference in a_bit_set_reg_ref
git-svn-id: trunk@32463 -
2015-11-22 11:49:07 +00:00
svenbarth
6ff3226e3c Fix for Mantis #29066.
git-svn-id: trunk@32459 -
2015-11-22 11:17:15 +00:00
marco
ffff774ff2 * fixes by lks of base.inc procptr types (one long->plong, three dword_ptr to ulong_ptr) fixes mantis #29023
git-svn-id: trunk@32456 -
2015-11-22 11:04:37 +00:00
Jonas Maebe
c4b347c271 * support anonymous procvar definitions for jvm outside parameter lists (in a
parameter list they represent nested procvars, which aren't supported yet)

git-svn-id: trunk@32454 -
2015-11-22 10:52:20 +00:00
svenbarth
318b69600c Fix for Mantis #29065.
+ add an ObjFPC variant of the test for 29053.

git-svn-id: trunk@32453 -
2015-11-22 10:44:03 +00:00
marco
f69e6730be * fix for #29036 overload sHOpenFolderAndSelectItems with a plain pointer versions
git-svn-id: trunk@32452 -
2015-11-22 10:42:54 +00:00
marco
de0f9e65c8 * fix bug #29061, add guids to gmp interfaces
git-svn-id: trunk@32449 -
2015-11-22 10:23:17 +00:00
Jeppe Johansen
5ec4d38231 Add support for ram-less AVR chips and simultanously optimize flash/ram size the initfinal calling sequence.
git-svn-id: trunk@32448 -
2015-11-22 00:37:10 +00:00