Commit Graph

9798 Commits

Author SHA1 Message Date
marco
4d6b9540dd * changed all version numbers to 900044 for freebsd 9. Expanded script to deal with
all its incarnations.

git-svn-id: trunk@22868 -
2012-10-28 20:02:00 +00:00
tom_at_work
3d0dd28350 Improve memory barriers on ARM
- memory barriers are only needed on armv6 and up
 - DMB on ARMv6 is "mcr 15, 0, r0, cr7, cr10, {5}", not "mcr 15, 0, r0, cr7, cr10, {4}"
 - improve write barrier on armv7 by using "dmb st" instead of "dmb sy"
todo: The use of the correct barrier code should be determined during runtime.

git-svn-id: trunk@22867 -
2012-10-28 19:38:36 +00:00
tom_at_work
312e8b8ecc Add implementations for read/write barrier code for ARM
git-svn-id: trunk@22864 -
2012-10-27 22:53:44 +00:00
Jonas Maebe
2f2f394bee * fixed wrong opcode size
git-svn-id: trunk@22855 -
2012-10-27 08:12:31 +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
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
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
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
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
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
florian
04543b179f o merge of the branch laksen/arm-embedded of Jeppe Johansen:
fixes a couple of arm-embedded stuff, 
  adds some controllers, start of fpv4_s16 support, for a complete list of
  changes see below:
------------------------------------------------------------------------
r22787 | laksen | 2012-10-20 22:00:36 +0200 (Sa, 20 Okt 2012) | 1 line

Properly do NR_DEFAULTFLAGS detection/allocation/deallocation
------------------------------------------------------------------------
r22782 | laksen | 2012-10-20 07:44:55 +0200 (Sa, 20 Okt 2012) | 1 line

Fixed flags detections code for wide->short optimization code for Thumb-2
------------------------------------------------------------------------
r22778 | laksen | 2012-10-19 20:23:14 +0200 (Fr, 19 Okt 2012) | 1 line

Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc)
------------------------------------------------------------------------
r22647 | laksen | 2012-10-14 21:28:08 +0200 (So, 14 Okt 2012) | 1 line

Added register specifications to lpc1768.pp. From Joan Duran
------------------------------------------------------------------------
r22646 | laksen | 2012-10-14 21:10:20 +0200 (So, 14 Okt 2012) | 4 lines

Fixed some minor formating issues
Implemented a small heap mananger
Implemented console IO
Changed default LineEnding to CrLf(to ease console IO parsing)
------------------------------------------------------------------------
r22599 | laksen | 2012-10-09 08:58:58 +0200 (Di, 09 Okt 2012) | 1 line

Added all STM32F1 configurations
------------------------------------------------------------------------
r22597 | laksen | 2012-10-08 22:10:45 +0200 (Mo, 08 Okt 2012) | 1 line

Added initial support for the Cortex-M4F FPv4_S16 FPU
------------------------------------------------------------------------
r22596 | laksen | 2012-10-08 22:04:14 +0200 (Mo, 08 Okt 2012) | 1 line

Added FPv4_d16 FPU instructions, and a few extra registers
------------------------------------------------------------------------
r22592 | laksen | 2012-10-08 16:07:40 +0200 (Mo, 08 Okt 2012) | 2 lines

Added support for IT block merging
Added a peephole pattern check for UXTB->UXTH chains
------------------------------------------------------------------------
r22590 | laksen | 2012-10-08 14:30:00 +0200 (Mo, 08 Okt 2012) | 3 lines

Add CBNZ/CBZ instructions
Create preliminary Thumb-2 PeepHoleOptPass2 code, hacked together from the ARM mode code
Added a number of simple size optimizations for common Thumb-2 instructions
------------------------------------------------------------------------
r22582 | laksen | 2012-10-08 06:49:39 +0200 (Mo, 08 Okt 2012) | 3 lines

Fix optimizations of Thumb-2 code
Fix problem with loading of condition operand for IT instructions
Properly split IT blocks when register allocator tries to spill inside a block.
------------------------------------------------------------------------
r22581 | laksen | 2012-10-08 05:15:40 +0200 (Mo, 08 Okt 2012) | 4 lines

Fixed assembler calling command line for cpus>ARMv5TE. EDSP instructions will generate errors while assembling, due to RTL assembler routines
Updated boot code for all Cortex-M3 controllers, and sc32442b to use weak linking for exception tables.
Cortex-M3 devices now also share initialization routine to simplify maintenance
STM32F10x classes now have specific units which fit the interrupt source names and counts
------------------------------------------------------------------------
r22580 | laksen | 2012-10-08 05:10:44 +0200 (Mo, 08 Okt 2012) | 2 lines

Added support for .section, .set, .weak, and .thumb_set directive for GAS assembler reader
IFDEF'ed JVM specific assembler directives, to prevent ait_* set to exceed 32 elements
------------------------------------------------------------------------
r22579 | laksen | 2012-10-08 02:10:52 +0200 (Mo, 08 Okt 2012) | 3 lines

Remove all traces of the interrupt vector table generation mechanism
Clean up cpuinfo tables
Fixed ARMv7M bug(BLX <label> doesn't exist on that version)

git-svn-id: trunk@22792 -
2012-10-21 08:39:52 +00:00
sergei
c0f49951b1 * Fixed i386 longjmp, it must not return 0 if 'value' argument happens to be 0.
git-svn-id: trunk@22781 -
2012-10-19 19:49:33 +00:00
sergei
21f5b5559c * Rewrote x86_64 implementations of setjmp and longjmp.
+ Win64 variant now saves/restores nonvolatile xmm registers and fpu/xmm control words, as required by ABI.

git-svn-id: trunk@22780 -
2012-10-19 19:39:12 +00:00
Jonas Maebe
20a6b7fa3d * fixed compilation after introduction of nostackframe checks
git-svn-id: trunk@22767 -
2012-10-19 14:43:00 +00:00
svenbarth
f7c333cee0 Enabled signal handlers
git-svn-id: trunk@22752 -
2012-10-18 20:12:41 +00:00
svenbarth
7bc5995d4d Implement SysCall interface for m68k-linux. This is especially useful for testing code using
QEMU's userspace emulation as no libraries are needed then.

git-svn-id: trunk@22750 -
2012-10-18 20:12:32 +00:00
svenbarth
322dbe5b65 Various adjustments to the RTL for m68k:
* enable the 6 parameter syscall variant (still everything dummied out though)
* add termios constants
* don't change signal handlers for now
* disable assembly set routines as set handling was changed

git-svn-id: trunk@22743 -
2012-10-18 20:12:02 +00:00
svenbarth
43d8da7aa3 Replace DBRA instruction for Coldfire with a SUB/BRA combination in the for-loop-code-
generation and the assembly helpers in the RTL as DBRA is not supported by Coldfire.

git-svn-id: trunk@22740 -
2012-10-18 20:11:45 +00:00
svenbarth
d5523e6af6 For now completely disable (I)MUL/(I)DIV support for Coldfire and pass through the RTL routines
(of which the names had changed from FPC_MUL_LONGWORD->FPC_MUL_DWORD and FPC_MOD_CARDINAL->
FPC_MOD_DWORD).
Also disable the usage of FPU opcodes for Coldfire.

git-svn-id: trunk@22739 -
2012-10-18 20:11:39 +00:00
svenbarth
81069a7eca rtl/linux/m68k/prt0.as:
Add __stkptr variable

git-svn-id: trunk@22735 -
2012-10-18 20:11:21 +00:00
svenbarth
6034866050 rtl/m68k: Added mathu(h).inc with dummy implementations of SetExceptionMask and GetExceptionMask
git-svn-id: trunk@22729 -
2012-10-18 20:10:48 +00:00
svenbarth
9a9d941ee1 rtl/m68k/sysnr.inc:
adjust syscalls just enough so that we don't have any duplicate symbols; the correctness will
  be verified once we have linkable code

git-svn-id: trunk@22727 -
2012-10-18 20:10:38 +00:00
pierre
0b63af56aa * Fix nostackframe related problems
git-svn-id: trunk@22719 -
2012-10-18 11:19:27 +00:00
michael
9d6b4aa946 * Fix dayOfWeek for dates < 0 (bug ID #23144)
git-svn-id: trunk@22679 -
2012-10-17 07:15:01 +00:00
Jeppe Johansen
9892aea2ca Added register specifications to lpc1768.pp. From Joan Duran
git-svn-id: branches/laksen/arm-embedded@22647 -
2012-10-14 19:28:08 +00:00
Jeppe Johansen
84ea70fddc Fixed some minor formating issues
Implemented a small heap mananger
Implemented console IO
Changed default LineEnding to CrLf(to ease console IO parsing)

git-svn-id: branches/laksen/arm-embedded@22646 -
2012-10-14 19:10:20 +00:00
florian
c57f463ede + AVXSupport function to detect if the CPU and OS support AVX
git-svn-id: trunk@22641 -
2012-10-14 14:04:27 +00:00
marco
b0a984086f * add comment to size_t definition. Documents issue #22834 a bit.
git-svn-id: trunk@22615 -
2012-10-12 08:07:17 +00:00
Jeppe Johansen
a8f9b0dac4 Added initial support for the Cortex-M4F FPv4_S16 FPU
git-svn-id: branches/laksen/arm-embedded@22597 -
2012-10-08 20:10:45 +00:00
michael
6eade12d3f * Take care of Florian's remark that FList may be nil when constructor failed
git-svn-id: trunk@22593 -
2012-10-08 15:11:10 +00:00
michael
3cafdc2a58 * Fix from Luiz Americo to avoid crash when a freenotification is registered during destroy. (bug ID 23031)
git-svn-id: trunk@22589 -
2012-10-08 12:02:11 +00:00
michael
61fecf4562 * Patch from Luiz Americo to clean up tlist (bug ID 23024)
git-svn-id: trunk@22585 -
2012-10-08 11:01:39 +00:00
Jeppe Johansen
80bb3febea Fixed assembler calling command line for cpus>ARMv5TE. EDSP instructions will generate errors while assembling, due to RTL assembler routines
Updated boot code for all Cortex-M3 controllers, and sc32442b to use weak linking for exception tables.
Cortex-M3 devices now also share initialization routine to simplify maintenance
STM32F10x classes now have specific units which fit the interrupt source names and counts

git-svn-id: branches/laksen/arm-embedded@22581 -
2012-10-08 03:15:40 +00:00
marco
f8288d1b53 * WM_GETOBJECT added.
git-svn-id: trunk@22570 -
2012-10-06 21:02:39 +00:00
marco
5d42d3a53c * change make TBinaryObjectWriter.WriteStr public mantis #22973
Delphi seems to use .writestr also for shortstring only, so the 
   function is the same.

git-svn-id: trunk@22556 -
2012-10-06 10:06:55 +00:00
marco
a48aba60fb * fix for Delphi incompatible DelimitedText, Mantis #19610, big patch from Reinier Olislagers.
git-svn-id: trunk@22549 -
2012-10-05 16:56:09 +00:00
pierre
f2087d01a1 Set register to value parameter of longjmp procedure
git-svn-id: trunk@22531 -
2012-10-03 22:32:21 +00:00
marco
ee51ccced6 * fixes #23025, 64-bit issue with timer functions, patch by Luiz Americo
git-svn-id: trunk@22526 -
2012-10-03 19:06:22 +00:00
florian
420cd9bd27 + support for <text>^ in iso mode
git-svn-id: trunk@22512 -
2012-10-01 17:18:51 +00:00
pierre
4295cc417e Fix PIC instruction for syscalls
git-svn-id: trunk@22497 -
2012-09-28 14:47:54 +00:00
pierre
d95ff52463 Add PIC code
git-svn-id: trunk@22496 -
2012-09-28 13:52:02 +00:00
Jonas Maebe
d40d207552 * workaround because "public,alias" isn't supported yet on JVM targets
git-svn-id: trunk@22495 -
2012-09-28 08:15:05 +00:00
Jonas Maebe
b4971c72d3 * partial fix for mantis #22912 (waiting on clarification from Unicode
consortium for the character.pas unit)

git-svn-id: trunk@22494 -
2012-09-28 07:57:45 +00:00
Jonas Maebe
21e162604c * fixed "make install" for jvm targets
+ implemented top level "make (cross)zipinstall" for jvm targets
    (mantis #23005)

git-svn-id: trunk@22493 -
2012-09-27 21:35:17 +00:00
pierre
20c9d19764 Add PIC specific code
git-svn-id: trunk@22484 -
2012-09-27 15:50:31 +00:00
pierre
62356c0e17 + add support for unlimited PIC mode
git-svn-id: trunk@22483 -
2012-09-27 15:50:02 +00:00
pierre
abef064786 Adapt TSigContext to structure found by debugging
git-svn-id: trunk@22482 -
2012-09-27 15:49:13 +00:00
pierre
5deddaec8c Adapt TSigContext to structure found by debugging
git-svn-id: trunk@22481 -
2012-09-27 15:48:54 +00:00
pierre
333dec347c Regenerate after: Use "-K PIC" for assembler call if pic mode is selected
git-svn-id: trunk@22480 -
2012-09-27 15:47:47 +00:00