Commit Graph

38503 Commits

Author SHA1 Message Date
svenbarth
ff0eebf1ff Also change RTL helper FPC_DIV_CARDINAL to FPC_DIV_DWORD
git-svn-id: trunk@22745 -
2012-10-18 20:12:12 +00:00
svenbarth
8e07ddb2bc * made internal errors for M68K unique
* fixed comment
* added comment regarding the potential usage of an address register instead of an int one

git-svn-id: trunk@22744 -
2012-10-18 20:12:07 +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
2db54da2b3 m68k also uses a non fixed stack with an equivalent to PUSH/POP so don't reorder parameters
if the required stack offset tells otherwise.

git-svn-id: trunk@22742 -
2012-10-18 20:11:56 +00:00
svenbarth
786e814d49 Use the correct frame pointer register: A6 on Unixes and A5 on everything else. The only
open question is embedded systems (currently it counts as "everything else").

git-svn-id: trunk@22741 -
2012-10-18 20:11:49 +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
dea2a205c9 Fixed reference handling mostly for Coldfire CPUs. While they are conceptually based on
M68000 CPUs they are nevertheless more restricted in some cases, so these need to be
handled explicitely (especially if symbols are involved).

git-svn-id: trunk@22738 -
2012-10-18 20:11:33 +00:00
svenbarth
63f4e44fd5 assemble.pas, texternalcompiler.makecmdline:
* pass the correct architecture to the assembler (later we might switch to a $ARCH approach...)

git-svn-id: trunk@22737 -
2012-10-18 20:11:29 +00:00
svenbarth
72a47ea27a m68k/cgcpu.pas, tcg68k.g_proc_exit:
* generate special return code for non-68020 CPU which don't support RTD instruction (based on
  out code a few lines further down)

git-svn-id: trunk@22736 -
2012-10-18 20:11:25 +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
0217efc398 m68k/ag68kgas.pas, getreferencestring:
It seems that GNU as needs the syntax "offset(register.size*scale)" if the base address
  register is ommited instead of "offset(,register.size*scale)". Now the System unit
  assembles and nearly the complete RTL can be built.

git-svn-id: trunk@22734 -
2012-10-18 20:11:15 +00:00
svenbarth
cfadcf3769 m68k/cgcpu.pas, tcg68k.a_op_const_reg:
leave "and" and "or" as "and" and "or" as according to the assembly language reference the
  assembler should automatically choose the correct instruction (though Coldfire still should
  be tested for ORI/ANDI to CCR

git-svn-id: trunk@22733 -
2012-10-18 20:11:09 +00:00
svenbarth
f501a8fecc m68k/cgcpu.pas, tcg68k.a_op_const_reg:
* use andi/ori for constant values
  * use a scratch register if target is an address register (there seems to exist an omnious
    anda/ora instruction though, but GNU as doesn't seem to handle it... maybe I haven't set
    the CPU type correctly, so I'll need to investigate this so we can hopefully remove the
    need for a scratch register for certain CPU types ;) )

git-svn-id: trunk@22732 -
2012-10-18 20:11:02 +00:00
svenbarth
9402a068a5 m68k/n68kcnv.pas, tm68ktypeconvnode.second_int_to_bool:
* remove comments regarding needed LOC_JUMP implementation
* don't call flags2reg if the location is LOC_JUMP as there isn't a register to set the flags to
  (this allows fpc_mul_qword and fpc_mul_int64 to be assembled)

git-svn-id: trunk@22731 -
2012-10-18 20:10:56 +00:00
svenbarth
d91fbd3e10 aggas.pas: m68k-linux needs preceding ".section" as well
git-svn-id: trunk@22730 -
2012-10-18 20:10:52 +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
07c3cff61d m68k/n68kcnv.pas, tm68ktypeconvnode.second_int_to_bool:
implement case "LOC_JUMP" (with a more or less blindly copy from
  x86/nx86cnv.pas, tx86typeconvnode.second.int_to_bool; this now allows that the system unit can
  be compiled, but not yet assembled

git-svn-id: trunk@22728 -
2012-10-18 20:10:43 +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
svenbarth
05e37e3ab1 m68k/cgcpu.pas, tcg68k: implement a_jmp_name
git-svn-id: trunk@22726 -
2012-10-18 20:10:33 +00:00
svenbarth
e87f0e1df4 m68k/ra68kmot.pas, tm68kmotreader.Assemble:
the asmr_d_*_reading messages need an argument which specifies in which style the assembler code
  is read; this is most importantly used on i386; on m68k we currently don't have multiple styles,
  so simply disable these messages

git-svn-id: trunk@22725 -
2012-10-18 20:10:29 +00:00
svenbarth
83da4592d3 m68k/aasmcpu, taicpu.spilling_get_operation_type: add support for A_SUBX
git-svn-id: trunk@22724 -
2012-10-18 20:10:24 +00:00
pierre
e01c7603b8 Rectify last commit: po_assembler alone still sets up a stack frame
git-svn-id: trunk@22722 -
2012-10-18 12:44:24 +00:00
pierre
a8591af2a9 Handle po_nostackframe for arm cpu
git-svn-id: trunk@22720 -
2012-10-18 11:41:57 +00:00
pierre
0b63af56aa * Fix nostackframe related problems
git-svn-id: trunk@22719 -
2012-10-18 11:19:27 +00:00
pierre
7bd7cf275c handle po_nostackframe for calc_stack_size
git-svn-id: trunk@22718 -
2012-10-18 09:44:11 +00:00
pierre
124499474c Do not add first_param_offset for po_nostackframe and po_assembler in calc_stack_size
git-svn-id: trunk@22716 -
2012-10-18 09:22:16 +00:00
marco
7263b3c5a4 * boolean for decodestringbase64 to select strict mode.
git-svn-id: trunk@22713 -
2012-10-18 08:01:15 +00:00
ludob
65c657006c TXMLDatapacketReader.StoreRecord uses TFieldDef.Name to match TXMLDatapacketReader.RestoreRecord. Fixes case mismatch in PG tests. Patch by Lacak2, mantis #22367
git-svn-id: trunk@22710 -
2012-10-17 19:58:28 +00:00
florian
a95641e43c * don't pass march always to gas because the rtl uses always pld to be able
to chose the right code path at runtime

git-svn-id: trunk@22709 -
2012-10-17 19:58:11 +00:00
marco
06bd08697e * starting compiler version check to toplevel "all" target
git-svn-id: trunk@22708 -
2012-10-17 18:03:41 +00:00
pierre
fb60e17602 Regenerated after: Fix wrong arg number in parser_e_nostackframe_with_locals
git-svn-id: trunk@22688 -
2012-10-17 10:52:55 +00:00
pierre
01c8ac4b3e Fix wrong arg number in pareser_e_nostackframe_with_locals
git-svn-id: trunk@22687 -
2012-10-17 10:52:12 +00:00
pierre
5ce88e3f99 Regenerated after: Also set CYCLELEVEL for cross-compilation rtl parts
git-svn-id: trunk@22686 -
2012-10-17 10:15:18 +00:00
pierre
bf80b55a1b Also set CYCLELEVEL for cross-compilation rtl parts
git-svn-id: trunk@22685 -
2012-10-17 10:14:45 +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
pierre
1cfb612513 Add new tests related to nostackframe checks added in commit 22677
git-svn-id: trunk@22678 -
2012-10-16 22:45:41 +00:00
pierre
be5839e44a Add warning/error message about possible problems with nostackframe modifier
git-svn-id: trunk@22677 -
2012-10-16 22:42:28 +00:00
reiniero
6bd0e88e6b + Support for sqlite3 on win64
Patch by Cyrax

git-svn-id: trunk@22669 -
2012-10-16 11:07:30 +00:00
lacak
382cd9483c Adds test for Firebird's EXECUTE BLOCK RETURNS statement, which returns resultset. Test correct detection of StatementType. Mantis #0022972
DO NOT BACKPORTABLE TO 2.6

git-svn-id: trunk@22668 -
2012-10-16 10:57:08 +00:00
sergei
a178e28275 + Extend TObjRelocation to hold untranslated platform-specific relocation types. This allows to avoid translating relocations into generic format when reading object files (which is just waste of time), and allows TObjRelocationType enumeration contain only types that are actually produced by compiler.
git-svn-id: trunk@22667 -
2012-10-16 10:40:34 +00:00
lacak
83c866637b Adjust TestTemporaryTable test. Adds support for Firebird/Interbase Global Temporary Tables. (+small cleanup)
Mantis #0022976 , original patch by Reinier Olislagers 
 

git-svn-id: trunk@22666 -
2012-10-16 10:26:55 +00:00
sergei
339d06aa58 * When writing section names of .o files, let sh_name of sections with relocations point into names of corresponding relocation sections past the .rel/.rela prefix. In case of smartlinked sections this saves almost half of .shstrtab section size.
* Fixed writing of weak defined symbols, TLS and GNU_IFUNC symbols.

git-svn-id: trunk@22665 -
2012-10-16 10:21:21 +00:00
pierre
25b0de0c28 Use -march and -mabi options for GNU assembler call.
This avoids problems on newer GNU assembler, which might have
 a default ABI different from O32.

git-svn-id: trunk@22664 -
2012-10-16 10:01:23 +00:00
pierre
305206354a Add arch and abi values for mips cpu
git-svn-id: trunk@22663 -
2012-10-16 09:57:24 +00:00
michael
8962703312 * Enable datadictionary for MySQL 5.1 and 5.5
git-svn-id: trunk@22662 -
2012-10-16 07:05:54 +00:00
yury
76dd6cfaac * Do not write unneeded registry keys if ClassName is empty.
* VersionIndependentProgID should not include version.
* Also delete the "CurVer" registry key during un-registration to perform complete clean-up.

git-svn-id: trunk@22657 -
2012-10-15 21:30:54 +00:00
yury
91988e611a * Ignore an error returned by UnRegisterTypeLib() to allow successful un-registration of whole COM object if type library is not registered atm.
git-svn-id: trunk@22656 -
2012-10-15 21:27:45 +00:00
pierre
66872fafa2 Fix wrong ifdef for MIPS cpu check
git-svn-id: trunk@22655 -
2012-10-15 14:01:30 +00:00
yury
25602c7cbd * Make TRegIniFile Delphi compatible.
* Fix completely broken TRegistryIniFile.
+ Tests.

git-svn-id: trunk@22654 -
2012-10-15 12:43:14 +00:00