Commit Graph

43925 Commits

Author SHA1 Message Date
Jonas Maebe
0def3629cc * factored out adding a single field to a record based on a def
git-svn-id: branches/hlcgllvm@28757 -
2014-10-06 20:53:30 +00:00
Jonas Maebe
bdb22772d9 * fixed whitespace
git-svn-id: branches/hlcgllvm@28756 -
2014-10-06 20:53:28 +00:00
Jonas Maebe
6560b1dbd6 * emit alignment directive in the typed constant builder when starting a new
constant without putting it in a separate section

git-svn-id: branches/hlcgllvm@28755 -
2014-10-06 20:53:25 +00:00
Jonas Maebe
9d9e0a578b * return the next field from tabstractrecordsymtable.findfieldbyoffset() if
there is no field at that exact offset, so we can also use it to find the
    next field in case there is alignment padding

git-svn-id: branches/hlcgllvm@28754 -
2014-10-06 20:53:22 +00:00
Jonas Maebe
210b532832 * split up specifying the type of the section of a typed constant and whether
it should be put in a new section

git-svn-id: branches/hlcgllvm@28753 -
2014-10-06 20:53:20 +00:00
Jonas Maebe
6677e698cd * record the alignment in taillvmdecl, as it can be different from the
default

git-svn-id: branches/hlcgllvm@28752 -
2014-10-06 20:53:17 +00:00
Jonas Maebe
37009c917b * pass alignment to tnodeutils.insertbsssym()
git-svn-id: branches/hlcgllvm@28751 -
2014-10-06 20:53:14 +00:00
Jonas Maebe
864b36fbe5 * create the recorddef at the start when building an anonymous recorddef,
so that we can already refer to its def while we are sill parsing
    individual elements

git-svn-id: branches/hlcgllvm@28750 -
2014-10-06 20:53:12 +00:00
Jonas Maebe
6cc74cd115 + added missing begin_anonymous_record() for widestring constants (undetected
before because it only matters for the llvm target, and fpc+llvm+windows is
    not yet supported/tested)

git-svn-id: branches/hlcgllvm@28749 -
2014-10-06 20:53:09 +00:00
Jonas Maebe
b18ba8e85b * syncrhonised with trunk up till r28471
git-svn-id: branches/hlcgllvm@28495 -
2014-08-19 20:23:11 +00:00
Jonas Maebe
b710220a5e * fixed calldef specified in case of calling a varargs C function
git-svn-id: branches/hlcgllvm@28494 -
2014-08-19 20:22:59 +00:00
Jonas Maebe
d09243c8c1 * correctly handle make_simple_ref() for voidpointers
git-svn-id: branches/hlcgllvm@28493 -
2014-08-19 20:22:56 +00:00
Jonas Maebe
b745dcc64c * moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
for some platforms it depends on that routine

git-svn-id: branches/hlcgllvm@28492 -
2014-08-19 20:22:54 +00:00
Jonas Maebe
33c277b3a7 + temp_to_ref() implementation for llvm
git-svn-id: branches/hlcgllvm@28491 -
2014-08-19 20:22:50 +00:00
Jonas Maebe
0fbaa9e924 * record the alignment of temps, and set it when creating a reference based
on a temp instead of assuming it's always aligned to a multiple of
    the stackpointer size

git-svn-id: branches/hlcgllvm@28490 -
2014-08-19 20:22:48 +00:00
Jonas Maebe
9880b53242 * changed all alignment parameters in the temp manager to shortint
git-svn-id: branches/hlcgllvm@28489 -
2014-08-19 20:22:45 +00:00
Jonas Maebe
dd733bd5b5 * changed all size parameters in the temp manager from longint to asizeint
git-svn-id: branches/hlcgllvm@28488 -
2014-08-19 20:22:42 +00:00
Jonas Maebe
830952cc3b * moved creating a reference based on a ttemprecord to a new virtual method
called temp_to_ref()

git-svn-id: branches/hlcgllvm@28487 -
2014-08-19 20:22:40 +00:00
Jonas Maebe
0a87133e00 * spelling fix
git-svn-id: branches/hlcgllvm@28486 -
2014-08-19 20:22:37 +00:00
Jonas Maebe
344acef9b5 * separate tracking the def of a temp and whether or not it needs to be
finalised (for llvm, we always keep track of the def)

git-svn-id: branches/hlcgllvm@28485 -
2014-08-19 20:22:34 +00:00
Jonas Maebe
3b7f43ad77 * renamed (hl)gettemptyped() to (hl)gettempmanaged() to better indicate the
meaning

git-svn-id: branches/hlcgllvm@28484 -
2014-08-19 20:22:32 +00:00
Jonas Maebe
979a3d7e1d * channged gettemptyped() into gethltemp() call, as gettemptyped() is only
intended/required for managed types

git-svn-id: branches/hlcgllvm@28483 -
2014-08-19 20:22:29 +00:00
Jonas Maebe
8064adec38 * converted tcgtryexceptnode.pass_generate_code() and
tcgtryfinallynode.pass_generate_code() to thlcg

git-svn-id: branches/hlcgllvm@28482 -
2014-08-19 20:22:27 +00:00
Jonas Maebe
a637fbe596 * moved all g_exception_*() methods to hlcgobj and cleaned them up (no more
hardcoded registers for the most part)
  + added extra g_exception_discard_reason() that can be called when we only
    want to get rid of the currently pushed exception reason, and don't have
    to load it (so it can do nothing on platforms that don't use push/pop)

git-svn-id: branches/hlcgllvm@28481 -
2014-08-19 20:22:24 +00:00
Jonas Maebe
9d118567cd + support for a_call_reg() on the llvm target (can call simple procvars now)
git-svn-id: branches/hlcgllvm@28480 -
2014-08-19 20:22:21 +00:00
Jonas Maebe
3a78f4f580 * use the correct destination def for loading a simple proc2procvar
git-svn-id: branches/hlcgllvm@28479 -
2014-08-19 20:22:19 +00:00
Jonas Maebe
bd3f0b3ada * factored out the common calling code from a_call_name (to reuse in
a_call_reg()

git-svn-id: branches/hlcgllvm@28478 -
2014-08-19 20:22:16 +00:00
Jonas Maebe
b6fc2f1542 * don't emit the */pointer suffix for procdefs in llvmaddencodedtype_intern(),
so that if a_loadaddr_ref_reg() is used to load the address of a procdef
    into a register, the getpointerdef(procdef) won't (wrongly) result in two
    *'s
   o the previous behaviour was necessary for the tck_simple_procvar2proc
     special case that was removed in the previous commit

git-svn-id: branches/hlcgllvm@28477 -
2014-08-19 20:22:13 +00:00
Jonas Maebe
cc4482d6f8 - removed tck_simple_procvar2proc, instead use
procdef.getcopyas(procvardef,pc_address_only) as the def if we want to
    specify that we're interested in the address of a procedure/procvar of
    object

git-svn-id: branches/hlcgllvm@28476 -
2014-08-19 20:22:11 +00:00
Jonas Maebe
904a033ba2 * factored out the code for loading a procvar address, and fixed all used
defs

git-svn-id: branches/hlcgllvm@28475 -
2014-08-19 20:22:08 +00:00
Jonas Maebe
63a3ff3c7f * integrate the functionality to create an address-only procvardef from a
procdef into tprocdef.getcopyas()

git-svn-id: branches/hlcgllvm@28474 -
2014-08-19 20:22:06 +00:00
Jonas Maebe
6f01bb56d6 * automatically call calcparas adter creating a procvardef from a procvdef,
so it doesn't have to be done explicitly anymore afterwards

git-svn-id: branches/hlcgllvm@28473 -
2014-08-19 20:22:03 +00:00
Jonas Maebe
b36e244e34 * allocate datastructures with new() instead of getmem() so that they get
initialised if necessary (such as the targetinfo since the llvmdatalayout
    field is an ansistring)

git-svn-id: branches/hlcgllvm@28472 -
2014-08-19 20:22:00 +00:00
Jonas Maebe
a4a54fa344 * removed unnecessary "as" expressions
git-svn-id: trunk@28471 -
2014-08-19 20:11:52 +00:00
marco
eb67f66e10 * add taglogfont out of compatibility, patch by Ocean, mantis #0026539
git-svn-id: trunk@28470 -
2014-08-19 17:45:23 +00:00
nickysn
d553e4572a + added checks for HeapOrg and HeapEnd to the i8086 compact and large memory
layout tests

git-svn-id: trunk@28469 -
2014-08-19 16:59:54 +00:00
marco
95bb0e0fd1 * VT_DECIMAL added, patch by Ocean, mantis #26539
git-svn-id: trunk@28468 -
2014-08-19 14:00:16 +00:00
pierre
17ad136412 Remove warning of misplaced <P> marker, as noticed by html checker
git-svn-id: trunk@28467 -
2014-08-19 11:34:05 +00:00
Károly Balogh
03a0f7b409 AROS: improved version of the previous commit, pass the stripping option to the linker instead, seems to work.
git-svn-id: trunk@28466 -
2014-08-19 11:30:02 +00:00
Károly Balogh
883e71f18e AROS: stripping of executables on i386 works now
git-svn-id: trunk@28465 -
2014-08-19 11:03:31 +00:00
Károly Balogh
167fad359e AROS: syscall-ified the exec.library functions used by the RTL
git-svn-id: trunk@28464 -
2014-08-19 00:56:34 +00:00
Károly Balogh
4ee15b84da AROS: syscall (library call) support for based on the Amiga/68k and MorphOS/PPC versions
git-svn-id: trunk@28463 -
2014-08-19 00:39:18 +00:00
Jonas Maebe
83c7dbb7a6 * fixed copy/paste error that caused all warnings to be disabled after
compiling the symdef unit while building a compiler for a non-64 bit
    code generator

git-svn-id: trunk@28462 -
2014-08-18 23:03:54 +00:00
Jonas Maebe
ee76e8dbf5 * fixed warning about always-true comparison when compiling a 16 bit target
git-svn-id: trunk@28461 -
2014-08-18 23:02:12 +00:00
Jonas Maebe
7e3abd4b38 * fixed warning about signed integer to pointer conversion
git-svn-id: trunk@28460 -
2014-08-18 23:00:53 +00:00
Jonas Maebe
4005290b54 * aint -> asizeint (immediate operand vs offset size)
git-svn-id: trunk@28459 -
2014-08-18 23:00:17 +00:00
Jonas Maebe
f55516ed32 * changed forcesize parameter of tgobj.gethltemp() from aint into asizeint,
as that one represents memory sizes while aint represents code generator
    immediate operands

git-svn-id: trunk@28458 -
2014-08-18 22:36:43 +00:00
Jonas Maebe
e7ac66a6c4 * removed nested comments
git-svn-id: trunk@28457 -
2014-08-18 22:34:35 +00:00
michael
77f62cafbe * Fix range check error
git-svn-id: trunk@28456 -
2014-08-18 22:15:40 +00:00
michael
81ab999a89 * Rollback in try..except
git-svn-id: trunk@28455 -
2014-08-18 22:15:18 +00:00