Commit Graph

38753 Commits

Author SHA1 Message Date
Jonas Maebe
2f2f394bee * fixed wrong opcode size
git-svn-id: trunk@22855 -
2012-10-27 08:12:31 +00:00
Tomas Hajny
c5ad42e82f * fix for missing space in emxbind parameters for resource files linking
git-svn-id: trunk@22854 -
2012-10-26 20:52:53 +00:00
Tomas Hajny
9a935fb172 * fix for missing space in emxbind parameters for resource files linking
git-svn-id: trunk@22853 -
2012-10-26 20:52:11 +00:00
michael
520d51cf7c * Patch from Ludo brands to add IsLibraryLoaded sqlite/src/sqlite3.inc
git-svn-id: trunk@22852 -
2012-10-26 17:10:35 +00:00
reiniero
307b617372 * Deal with DataSize of TStringField being larger than dsMaxStringSize
Patch by Laco, mantis 19940

git-svn-id: trunk@22851 -
2012-10-26 12:24:57 +00:00
lacak
3aedcd11f3 fcl-db test: rename obsolete test plus comment why it is safe to remove him at all. See also bug #22124
git-svn-id: trunk@22850 -
2012-10-26 08:43:48 +00:00
florian
8c73b0b17b * disable broken MvnAnd2Bic optimization
git-svn-id: trunk@22847 -
2012-10-25 17:51:25 +00:00
sergei
4f201bb826 + Handle R_X86_64_PLTOFF64 relocation (same as R_X86_64_GOTOFF64 but requests creation of PLT entry).
git-svn-id: trunk@22846 -
2012-10-25 16:24:29 +00:00
florian
f142019343 * set default cpu type to armv7a when compiling for armhf
git-svn-id: trunk@22845 -
2012-10-24 19:09:16 +00:00
michael
1f3870cc84 * Added NGINX instructions
git-svn-id: trunk@22842 -
2012-10-24 07:14:54 +00:00
svenbarth
58d9b0853c * rtl/m68k/m68k.inc, move:
add a check for "count = 0" which happens e.g. inside of System.Assign if called with '' as filename (which is the case inside OpenStdIO)

git-svn-id: trunk@22841 -
2012-10-24 05:03:08 +00:00
svenbarth
842bb90283 * m68k/cgcpu.pas, tcg68k.a_load_ref_reg:
"sign_extend" expects the old size, not the new size. This fixes the handling of "InOutRes" which is a Word...

git-svn-id: trunk@22840 -
2012-10-24 05:01:27 +00:00
florian
5e1e42ec2b * fixes support for cpus with cpunodefaultint for unary minus nodes
git-svn-id: trunk@22838 -
2012-10-23 20:27:07 +00:00
florian
d1b2a7732a + GetOffsetReg64
git-svn-id: trunk@22837 -
2012-10-23 20:16:13 +00:00
florian
a3dff44489 + support of 64 bit operations on avr
git-svn-id: trunk@22836 -
2012-10-23 20:15:47 +00:00
florian
ecd0749d73 * class name in comment fixed
git-svn-id: trunk@22835 -
2012-10-23 20:14:34 +00:00
florian
f76ba05758 * avoid useless GetNextReg calls in second_cmp for avr
git-svn-id: trunk@22834 -
2012-10-23 20:13:28 +00:00
Jonas Maebe
fd8827d379 * prevent compiler crash caused by double freeing after reporting not
overloaded operator errors

git-svn-id: trunk@22833 -
2012-10-23 16:50:30 +00:00
sergei
6023f73e2a * ELF linker: improved dynamic symbol handling.
+ Read .gnu.version sections and ignore local symbols and symbols with non-current version.
  + Check that external symbols are actually present in dynamic objects.

git-svn-id: trunk@22832 -
2012-10-23 15:16:10 +00:00
sergei
f94ba86bb9 * ModulesLinkToLibc: another fix. We also have to look in ImportLibraryList because items contained there aren't yet merged into linkothersharedlibs when this function is called.
git-svn-id: trunk@22831 -
2012-10-23 14:51:35 +00:00
sergei
90d564e6a5 + ELF linker: handle R_386_GOTOFF and R_X86_64_GOTOFF64 relocations
git-svn-id: trunk@22830 -
2012-10-23 14:13:31 +00:00
svenbarth
65a4d8baa2 Revert 22814. While this revision might fix compiler linking for Coldfire it breaks running any Coldfire up during OpenStdIO... I prefer running apps instead of a linking compiler.
Seems that I need to think this "fixref" stuff for symbols through a bit more...

git-svn-id: trunk@22826 -
2012-10-23 05:14:17 +00:00
florian
eeef57a2a1 * merging more of Jeppe Johansen's arm-embedded branch
git-svn-id: trunk@22824 -
2012-10-22 21:12:29 +00:00
masta
e91b15b2a4 Disabled MulAdd2MLA and MulSub2MLS Peephole optimizers for thumb2
According to Jeppe Johansen these are currently broken and emit the
operands in the wrong order.

git-svn-id: trunk@22822 -
2012-10-22 15:30:24 +00:00
masta
b047a80b14 Small fixes to ARM-Embedded RTL from Jeppe Johansen
Added FSMC register definitions(from Anton Rieckert)
Fixed faulty NVIC definitions

git-svn-id: trunk@22820 -
2012-10-22 11:59:28 +00:00
michael
82f03f0e40 * added comment to explain the DefaultFileModuleClass purpose
git-svn-id: trunk@22819 -
2012-10-22 11:20:52 +00:00
masta
e327b4581c Use TRegNameTable instead of array[tregisterindex] of string[10]
TRegNameTable is defined in compiler/rgbase.pas and is an array of
strings, limited to the maximum length of the used register names.

r22792 added a long register name but did not scale the string-size
enough, resulting in the compiler built breaking for arm.

git-svn-id: trunk@22817 -
2012-10-22 10:23:21 +00:00
lacak
65a8b90356 Char-case is not guaranteed to be always upper-case, so use LowerCase like others sqlDB connections.
git-svn-id: trunk@22816 -
2012-10-22 08:07:07 +00:00
florian
7150832ec9 + Cortex-M3 special registers, resolves #23185
git-svn-id: trunk@22815 -
2012-10-21 20:06:07 +00:00
svenbarth
cb8db8fa23 * m68k/cgcpu.pas, tcg68k.fixref:
always handle the symbol if base is set

git-svn-id: trunk@22814 -
2012-10-21 19:46:41 +00:00
Jeppe Johansen
628d46f2d3 Fixed Bsf* functions on platforms that support RBIT
Fixed stackframe epilogue code for Thumb2 to allow proper processing of interrupts

git-svn-id: branches/laksen/arm-embedded@22813 -
2012-10-21 19:13:59 +00:00
florian
970405c0f3 o merging r22801 of Jeppe Johansen
git-svn-id: trunk@22812 -
2012-10-21 19:05:59 +00:00
Jonas Maebe
8097697362 * added jvm to fullcycle now that all warnings are fixed
git-svn-id: trunk@22811 -
2012-10-21 17:56:59 +00:00
Jonas Maebe
4dd2aff6c6 * explicitly disable overflow checking because that blows up the code far
beyond the 64kb per method limit (so that all tests can be compiled/run
    with the -Co command line parameter to check that functionality against
    false positives)

git-svn-id: trunk@22810 -
2012-10-21 17:56:50 +00:00
Jonas Maebe
027776a708 + test for range checking (and against false positives for overflow checking)
git-svn-id: trunk@22809 -
2012-10-21 17:56:42 +00:00
Jonas Maebe
29263eb343 + full support for overflow checking on the JVM target (note: significantly
increases code size, because not natively supported by the JVM)

git-svn-id: trunk@22808 -
2012-10-21 17:56:33 +00:00
Jonas Maebe
1adeec6212 * fixed unaryminus overflow check for high level targets (call helper via
hlcg, and use compproc name)
  * fixed unaryminus overflow check for targets that use the generic code
    for both 32 and 64 bit integers even if their "native" integer size
    is 32 bit (by not checking against low(aint), but opsize.low)

git-svn-id: trunk@22807 -
2012-10-21 17:56:28 +00:00
Jonas Maebe
6abc6106e1 - removed unused local variable
git-svn-id: trunk@22806 -
2012-10-21 17:56:20 +00:00
Jonas Maebe
7cf8bcd7eb * initialise dollarsign field of jasmin tasminfo
git-svn-id: trunk@22805 -
2012-10-21 17:56:16 +00:00
Jonas Maebe
1a8128fa72 * initialize ovloc.loc in a_op*checkoverflow
git-svn-id: trunk@22804 -
2012-10-21 17:56:07 +00:00
Jonas Maebe
439741178d * test has to fail: add { %fail } and moved to webtbf
git-svn-id: trunk@22803 -
2012-10-21 17:28:20 +00:00
svenbarth
5d28872a21 * m68k/cgcpu.pas, tcg68k.fixref:
also make m68k's fixref apply to the assumption that a register isn't modified in the cg

git-svn-id: trunk@22802 -
2012-10-21 17:19:09 +00:00
Jeppe Johansen
4e84431dde Fix some optimizations which assume that there are 3 operands
Add simple Mul+Sub/Mul+Add into MLS/MLA optimizations
Fix some other small issues in the optimizer
Implement Interlocked* functions with proper use of LDREX/STREX

git-svn-id: branches/laksen/arm-embedded@22801 -
2012-10-21 16:20:52 +00:00
florian
86429c634f - remove definition of QWord as suggested by Simon Ameis in #22465
git-svn-id: trunk@22800 -
2012-10-21 14:47:59 +00:00
svenbarth
a34f28c067 The compiler inserts ".balign 4" directives before some jump labels, but sometimes the instruction before the align is not a "JMP". In that case we encounter an illegal instruction, because m68k-as does not seem to generate "NOP" instruction in such cases.
So we need to do this manually by changing (in that case) from ".balign" to ".balignw" and passing the opcode of the "NOP" instruction as a argument. The Coldfire manual suggests here to use the "TPF" instruction, but somehow QEMU does not interpret that correctly.

aggas.pas, tgnuassembler.writetree:
  * keep track of the last "tai" and pass that to "doalign"
  * doalign: do the special handling mentioned above for m68k

git-svn-id: trunk@22799 -
2012-10-21 14:18:08 +00:00
svenbarth
f0aad6dbc4 * m68k/n68kadd.pas, t68kaddnode.second_cmpordinal:
for "CMP" it is important to note that the first operand (which can be basically a register, a constant or a reference) is substracted from the second operand (which needs to be a data register) and not the other way round

git-svn-id: trunk@22798 -
2012-10-21 13:59:05 +00:00
svenbarth
a266d73409 * rtl/m68k/setjump.inc:
correctly dummy out setjump as "d0 <> 0" means that longjmp was executed (and d0 could be set from the calling function)

git-svn-id: trunk@22797 -
2012-10-21 13:56:48 +00:00
svenbarth
05fc3bc427 * m68k/ra68kmot.pas, tm68kmotreader.gettoken:
if "firsttoken" isn't set we must not take the possibility into account that the token could be an opcode

git-svn-id: trunk@22796 -
2012-10-21 13:54:55 +00:00
Jonas Maebe
1822c46d8a * don't crash when parsing exit(xxx) in a constructor (mantis #23110)
git-svn-id: trunk@22795 -
2012-10-21 13:43:03 +00:00
Jonas Maebe
6497d3c994 - removed no longer used/supported af_allowdirect flag (direct assembler
reader support)

git-svn-id: trunk@22794 -
2012-10-21 13:42:58 +00:00