Jonas Maebe
4edb6e68fd
* fixed emitting Pascal extended typed constants inside aggregates for llvm
...
(have to be emitted as arrays of bytes to ensure they don't take up
more than 10 bytes)
git-svn-id: trunk@31186 -
2015-07-03 20:04:11 +00:00
Károly Balogh
0d1c85a095
Amiga-likes: support unit_env environment variable for unit paths
...
git-svn-id: trunk@31180 -
2015-06-29 21:42:40 +00:00
Károly Balogh
a5abd4acd7
AROS/x86_64: fixed resources to use res_elf, set default stacksize for the more sensible 1MB instead of 8MB
...
git-svn-id: trunk@31179 -
2015-06-29 21:30:53 +00:00
Károly Balogh
02b9b1743e
AROS/x86_64: fixed linker support by removing duplicated code and unifying it with i386
...
git-svn-id: trunk@31178 -
2015-06-29 21:28:51 +00:00
Károly Balogh
77bdd83bfc
AROS/x86_64: regenerated Makefiles
...
git-svn-id: trunk@31177 -
2015-06-29 00:09:06 +00:00
Károly Balogh
f0ccbc87f2
AROS/x86_64: enable syscalls code in the parser, fix EAX->RAX reference base while calculating syscall offset
...
git-svn-id: trunk@31172 -
2015-06-28 23:04:51 +00:00
florian
af6ffd751f
+ generate optimized code for shifts/rotates by constants
...
git-svn-id: trunk@31170 -
2015-06-28 20:28:51 +00:00
Károly Balogh
7ca62febcd
AROS/x86_64: initial AROS/x86_64 support and implement syscalls for AROS/x86_64
...
git-svn-id: trunk@31169 -
2015-06-28 19:16:40 +00:00
Jonas Maebe
7866bae173
* don't crash when trying to access the call_self_node in case it doesn't
...
exit, but instead give an error (bug introduced in r30950, mantis #28338 )
git-svn-id: trunk@31150 -
2015-06-23 21:23:29 +00:00
Jonas Maebe
b21610050f
* don't store reusable defs based on other defs from localsymtables into the
...
static/globalsymtable. The static/global symtable is stored to the PPU
while the localsymtables are not, which means we get dangling references
when reloading such defs from the ppu afterwards
git-svn-id: trunk@31149 -
2015-06-23 21:23:25 +00:00
Jonas Maebe
508828958c
* changed getprocaddressprocvar() into a tprocvardef.getreusableprocaddr()
...
class method
git-svn-id: trunk@31148 -
2015-06-23 21:23:22 +00:00
Jonas Maebe
f40ea04540
* changed getarraydef() into a tarraydef.getreusable() class method
...
git-svn-id: trunk@31147 -
2015-06-23 21:23:18 +00:00
marco
8d145ce706
* initialize secalign before case statement to avoid warning. Mantis #28326
...
git-svn-id: trunk@31145 -
2015-06-22 11:48:42 +00:00
Jonas Maebe
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
...
o allows removing the ugly x86 hacks
git-svn-id: trunk@31144 -
2015-06-22 08:17:49 +00:00
Jonas Maebe
62784ef902
* copy the vmt_entry node in tcallnode.dogetcopy (mantis #28313 )
...
o mention why it doesn't have to be compared in tcallnode.docompare
git-svn-id: trunk@31071 -
2015-06-16 21:24:55 +00:00
Jonas Maebe
d60f60154a
* fixed the def used to load non-objc loadvmtaddr nodes (for llvm)
...
git-svn-id: trunk@31064 -
2015-06-13 22:48:48 +00:00
Jonas Maebe
3597e710b6
* fixed several VMT element types to correspond to the types used to
...
construct the VMT def in the VMT builder in r30950
git-svn-id: trunk@31063 -
2015-06-13 22:48:46 +00:00
Jonas Maebe
4c11d34169
* fixed loading the address of the string data of an ansi/unicodestring
...
constant in the llvm code generator (the constant is a record rather than
a pointer to a record -> not indirect)
git-svn-id: trunk@31062 -
2015-06-13 22:48:43 +00:00
Jonas Maebe
b176ed9f80
* ensure that the llvmst is initialised before using a field's llvmfieldnr
...
(and at the same time take advantage of this to perform a sanity check)
git-svn-id: trunk@31061 -
2015-06-13 22:48:40 +00:00
Jonas Maebe
89c4bd8522
* index the llvm shadow symtable with a fieldvarsym rather than with the
...
index of the corresponding llvm fieldvar, as this index is a member
of the fieldvarsym that only gets initialised once the llvm shadow
symtable gets built, which in turn is triggered by trying to access
it for the first time -> if fieldvarsym.llvmfieldnr got loaded by
the compiler before evaluating the llvmst expression and if the
llvmst hadn't been built yet, this llvmfieldnr was not yet initialized
git-svn-id: trunk@31060 -
2015-06-13 22:48:37 +00:00
Jonas Maebe
494206fd6a
* use queue_is_active() method to determine whether the complex typed
...
expression queue is active rather than the existing ad hoc check,
which failed when no item had been added to the queue yet
git-svn-id: trunk@31059 -
2015-06-13 22:48:34 +00:00
Jonas Maebe
8d0c5ecf5a
* added protected queue_is_active() function to determine whether the
...
complex typed constant expressions queue is currently active
git-svn-id: trunk@31058 -
2015-06-13 22:48:31 +00:00
Jonas Maebe
bcd04953c2
* fixed open array constructors for llvm
...
git-svn-id: trunk@31057 -
2015-06-13 22:48:28 +00:00
Jonas Maebe
b9d4d9b141
* corrected type passed to a_bit_test_reg_loc_reg() (we force left into
...
a register of size opdef before)
git-svn-id: trunk@31056 -
2015-06-13 22:48:26 +00:00
Jonas Maebe
9175809d5d
* use correct llvm type conversion operator when loading a "named register"
...
with a pointer value into an integer register or vice versa
git-svn-id: trunk@31055 -
2015-06-13 22:48:23 +00:00
Jonas Maebe
cf2e46c2c1
* reworked external symbol handling on llvm to deal with the fact that
...
a single external symbol may be used with multiple declarations that
have different types:
o always declare an alias with the Pascal-mangled name that aliases the
external symbol, with the type of that Pascal declaration
o if the external symbol is not actually external but in the same unit,
we will determine the type of that symbol via its declaration and
insert type conversions in the alias declarations in case they use a
different type
o if it is external (so there is no declaration from which we can determine
its real type) and there are nevertheless multiple aliases for it with
different types, we just take the type of the first alias and insert
type conversions for the other aliases. LLVM will take care of the
conflicting types in multiple modules when performing WPO if necessary
git-svn-id: trunk@31054 -
2015-06-13 22:48:20 +00:00
Jonas Maebe
b39bc5888a
* moved the import name handling entirely to hlcgobj so it can be
...
overridden
git-svn-id: trunk@31053 -
2015-06-13 22:48:17 +00:00
Jonas Maebe
54dd25b448
* support llvm aliases for defs other than procdef
...
git-svn-id: trunk@31052 -
2015-06-13 22:48:14 +00:00
Jonas Maebe
4eea652576
* fixed writing non-default linkage and visibility of llvm alias declarations
...
git-svn-id: trunk@31051 -
2015-06-13 22:48:11 +00:00
Jonas Maebe
1019a6b090
* use the def of the paraloc rather than the parasym's vardef in
...
gen_load_para_value(), as this may be different depending on
the calling conventions
* adapt llvm's gen_load_cgpara_loc() to use this passed def rather
than hardcoding the para's def (although these will normally match)
git-svn-id: trunk@31050 -
2015-06-13 22:48:08 +00:00
Jonas Maebe
b9c9422fa7
* fixed type of reference used to store an ansichar that was converted
...
inline to a shortstring
git-svn-id: trunk@31049 -
2015-06-13 22:48:05 +00:00
Jonas Maebe
2cdf969649
* don't define asmsymbols for weak external functions as local/global
...
git-svn-id: trunk@31048 -
2015-06-13 22:48:02 +00:00
Jonas Maebe
75a6ba4113
- removed symcpu dependencies
...
git-svn-id: trunk@31047 -
2015-06-13 22:47:59 +00:00
Jonas Maebe
ab0d445999
* fixed truncation errors for a*int/word in ppudump for architectures
...
> 32 bits
git-svn-id: trunk@31046 -
2015-06-13 22:47:56 +00:00
Jonas Maebe
acd88cac92
* fixed selection of startup code files for all iOS and simulator targets
...
o in particular fixes linking for the iPhoneSimulator 8.3 and later on
i386
git-svn-id: trunk@31045 -
2015-06-13 22:47:53 +00:00
florian
c0dd2047f9
* cosmetics, entries are now properly aligned
...
git-svn-id: trunk@31039 -
2015-06-13 16:55:36 +00:00
florian
919c539ff5
* better estimation of callparanode complexity
...
git-svn-id: trunk@31038 -
2015-06-13 16:50:55 +00:00
Jeppe Johansen
ab9c8bb569
Fixed startup assembler code for the case where there's no data in .bss and/or in .data.
...
Fixed _stack_top symbol calculation so it works for all controllers.
Added ATTINY2313 controller.
git-svn-id: trunk@31031 -
2015-06-13 12:30:50 +00:00
Jeppe Johansen
03880c2f74
Added some peephole optimizations, and fixed generic unconditional jump optimizations, for AVR.
...
Fixed multiplication code generation for AVR controllers without mul instructions.
Added handling of the old interrupt procedure directive such that procedures with that use RETI instead of RET.
git-svn-id: trunk@31030 -
2015-06-13 12:25:11 +00:00
Jeppe Johansen
c5b24c5ce3
Changed cast to allow more loop iterations than the native bit-ness of the architecture.
...
git-svn-id: trunk@31029 -
2015-06-13 12:20:12 +00:00
florian
b1147ba1b7
+ OpCmp2Op optimization for AVR
...
git-svn-id: trunk@31013 -
2015-06-09 21:06:37 +00:00
Károly Balogh
0dafa78d27
ppudump: made it compile with -Sew by turning off unreachable code warning for Real80BitToStr() function
...
git-svn-id: trunk@31010 -
2015-06-07 23:59:24 +00:00
Károly Balogh
21329e6606
Amiga: enable using of external resources we have no internal resource support yet for Amiga Hunk executables
...
git-svn-id: trunk@31007 -
2015-06-07 18:07:06 +00:00
Károly Balogh
8a09c5f40d
MorphOS: register ELF resources info
...
git-svn-id: trunk@31004 -
2015-06-07 17:37:22 +00:00
Károly Balogh
8e3ebb87cd
use res_elf on MorphOS for resources
...
git-svn-id: trunk@31003 -
2015-06-07 16:42:32 +00:00
nickysn
318874837f
+ implemented 16-bit dos MZ exe header writer
...
git-svn-id: trunk@31002 -
2015-06-07 14:31:02 +00:00
nickysn
2c1049b5d4
+ read the LEDATA omf records (i.e. the actual section data)
...
git-svn-id: trunk@30975 -
2015-06-04 23:03:22 +00:00
nickysn
d0d3cef868
+ implemented reading of omf extdef (external symbols) records
...
git-svn-id: trunk@30973 -
2015-06-03 13:07:48 +00:00
Jeppe Johansen
db6093023b
Fixed initialization code for MK20D7 controllers.
...
Added flash configuration section to RTL and linker script.
git-svn-id: trunk@30972 -
2015-06-02 22:59:03 +00:00
nickysn
096743d74d
+ also read the omf segment size and set objsec.Size
...
git-svn-id: trunk@30971 -
2015-06-01 23:31:53 +00:00