svenbarth
b1d79494dd
Fix around 30 tests by using a volatile register for restoring the stack pointer
...
m68k/cgcpu.pas, tcg68k.g_proc_exit:
* use A0 (which is a volatile register) instead of A3 (which is not) to restore the stack pointer
git-svn-id: trunk@25663 -
2013-10-05 21:32:27 +00:00
nickysn
9a1018ec57
+ enabled the MCGA and 16-colour VGA modes in the graph unit for i8086-msdos
...
git-svn-id: trunk@25662 -
2013-10-05 21:25:50 +00:00
pierre
8a0dccf590
NetBSD getcwd system call also returns string length
...
git-svn-id: trunk@25661 -
2013-10-05 21:23:47 +00:00
nickysn
6bf7072a33
+ enabled the EGA modes in the graph unit for i8086-msdos
...
git-svn-id: trunk@25660 -
2013-10-05 21:15:42 +00:00
marco
274ad65477
* IPicture from #25147 . Translated IPicture2 (win64 safe) myself. (roughly the same but with 64-bit handle type)
...
git-svn-id: trunk@25659 -
2013-10-05 20:43:09 +00:00
nickysn
836ec24fb1
+ enabled the Hercules code in the i8086-msdos graph unit
...
git-svn-id: trunk@25658 -
2013-10-05 19:18:11 +00:00
nickysn
54a34391a1
* rewritten the EGA/VGA detection code to use intr, instead of inline asm
...
git-svn-id: trunk@25657 -
2013-10-05 18:55:25 +00:00
nickysn
05be9829dc
* finished the implementation of SaveStateVGA and RestoreStateVGA
...
git-svn-id: trunk@25656 -
2013-10-05 18:42:29 +00:00
nickysn
55f1b860af
* SaveStateVGA and RestoreStateVGA rewritten to use intr
...
git-svn-id: trunk@25655 -
2013-10-05 18:06:44 +00:00
svenbarth
20587d8547
And another place where I forgot to (de)allocate address registers...
...
m68k/cgcpu.pas, tcg68k.call_rtl_mul_const_reg & tcg68k.call_rtl_mul_reg_reg:
* (de)allocate address registers
git-svn-id: trunk@25654 -
2013-10-05 17:53:06 +00:00
svenbarth
f8fe25f8cf
Forgot to commit one location where address registers need to be allocated.
...
m68k/n68kmat.pas, tm68kmoddivnode.call_rtl_divmod_reg_reg:
* (de)allocate address registers
git-svn-id: trunk@25653 -
2013-10-05 17:50:12 +00:00
nickysn
896cdc42e5
* windows detection on startup rewritten to use intr
...
git-svn-id: trunk@25652 -
2013-10-05 17:48:05 +00:00
Károly Balogh
55be015a4e
better version of the ColdFire TST.L 123(dX) fix, fixes regressions in tcnvint1 and 2
...
git-svn-id: trunk@25651 -
2013-10-05 16:52:39 +00:00
nickysn
bff9afe865
+ added msdos to AllSmartLinkLibraryOSes
...
git-svn-id: trunk@25650 -
2013-10-05 12:42:14 +00:00
nickysn
f1c1ea17fa
* updated TTarget.GetUnitLibFileName according to the settings for staticlibext
...
and staticlibprefix for each target, supported by FPC
git-svn-id: trunk@25649 -
2013-10-05 12:41:08 +00:00
florian
73e6af4864
+ cpu flag CPUARM_HAS_THUMB_IDIV
...
* test for CPUARM_HAS_THUMB_IDIV instead the CPU type when creating sdiv/udiv code
git-svn-id: trunk@25648 -
2013-10-05 12:38:55 +00:00
florian
8fb7cf822b
* unified internal errors
...
git-svn-id: trunk@25647 -
2013-10-05 12:37:46 +00:00
florian
9cb5212378
* patch by Anton Rieckert: cpu_armv7em should default to thumb(2) code as well, resolves #25142
...
git-svn-id: trunk@25646 -
2013-10-05 12:37:06 +00:00
nickysn
a19a9ef9cc
+ added a TOS parameter to TTarget.GetUnitLibFileName
...
- rm the TTarget.UnitLibFileName property, as GetUnitLibFileName is now a
function of TOS
git-svn-id: trunk@25645 -
2013-10-05 12:13:11 +00:00
nickysn
1bea98995b
* regenerated fpcmake makefiles after r25642
...
git-svn-id: trunk@25644 -
2013-10-05 10:11:27 +00:00
nickysn
8844c67f56
* updated fpcmake revision.inc after r25642
...
git-svn-id: trunk@25643 -
2013-10-05 10:06:14 +00:00
nickysn
d89c286dc1
* changed the staticlibext for i8086-msdos to .a in fpcmake.ini as well
...
git-svn-id: trunk@25642 -
2013-10-05 10:05:03 +00:00
nickysn
96a4f8e43b
* the staticlibext for i8086-msdos changed from .lib to .a; rationale:
...
1) less special cases needed in fpmkunit for i8086-msdos
2) consistency with the naming scheme on the go32v2 target
3) we didn't follow the DOS naming scheme completely anyway, e.g. we used .o
for object files, instead of .obj
git-svn-id: trunk@25641 -
2013-10-05 10:01:59 +00:00
marco
6ace630c6f
* fix for #24947 , writing index expression of property. Patch by Daniel Gaspary.
...
git-svn-id: trunk@25640 -
2013-10-04 21:37:52 +00:00
marco
bca1e53840
* fix for mantis #24920 try to properly update messages unit for win64.
...
git-svn-id: trunk@25639 -
2013-10-04 18:24:16 +00:00
nickysn
8f8bd8b12d
- rm the unnecessary jnz instruction before the rep stosb in the i8086-msdos startup code, because the rep prefix checks for cx=0 and skips the stosb instruction anyway
...
git-svn-id: trunk@25638 -
2013-10-04 13:36:24 +00:00
Károly Balogh
6c0581da49
* do not emit TST.L #ofs(dX) instructions for the Coldfire
...
fixes an assembler error while compiling packages/fpgtk/src/fpgtk.pp for the Coldfire
git-svn-id: trunk@25637 -
2013-10-04 11:31:58 +00:00
Károly Balogh
584e3638ab
* get the count of params from the correct list
...
this fixes varargs a bit, particularly fixes an unhandled TList bounds exception while compiling packages/fcl-base/src/eventlog.pp
git-svn-id: trunk@25636 -
2013-10-04 11:24:20 +00:00
nickysn
608a449c4a
+ added a 'cld' before the first string x86 instruction in the i8086-msdos startup code
...
git-svn-id: trunk@25635 -
2013-10-04 11:18:47 +00:00
nickysn
826b4678f3
* moved UpdateAlignmentStr, UpdateOptimizerStr, UpdateWpoStr and UpdateDebugStr from unit globals to unit dirparse
...
git-svn-id: trunk@25634 -
2013-10-04 08:26:02 +00:00
svenbarth
235c06ab34
Implement volatile address registers. Fixes quite some tests, but also breaks others... (overall more are fixed than are broken :) )
...
paramgr.pas, tparamanager:
+ add virtual get_volatile_registers_address method which by default returns an empty set
cgobj.pas, tcg:
* allocallcpuregisters: also allocate address registers if needed
* deallocallcpuregisters: also deallocate address registers if needed
ncgcal.pas, tcgcallnode.pass_generate_code:
* (de)allocate address registers
* keep result from being deallocated if it should be an address register (currently by no architecture...)
m68k/cpupara.pas, tm68kparamanager:
+ get_volatile_registers_address: return a0 and a1 as volatile registers
m68k/n68kmat.pas, tm68kmoddivnode.call_rtl_divmod_reg_reg:
* (de)allocate address registers
git-svn-id: trunk@25633 -
2013-10-03 20:33:11 +00:00
svenbarth
29ff548c0b
Revert some additions of add_move_instruction as this heavily breaks code when the frame pointer is involved
...
git-svn-id: trunk@25632 -
2013-10-03 18:58:38 +00:00
svenbarth
dd204f395d
m68k: add a few more add_move_instruction to tcg68k
...
git-svn-id: trunk@25631 -
2013-10-03 14:36:08 +00:00
svenbarth
03623c6c1a
Forgot to commit that I moved tcgsize2opsize from cgcpu to cpubase.
...
git-svn-id: trunk@25630 -
2013-10-03 14:34:54 +00:00
nickysn
119cf760eb
* UpdateTargetSwitchStr moved to a new unit dirparse.pas. This avoids the dependence of unit scandir on unit options
...
git-svn-id: trunk@25629 -
2013-10-03 12:21:33 +00:00
svenbarth
8e60465eb4
Fix the last failing tcnvint test (plus another one) by using comparisons that are not necessarily 32-bit.
...
m68k/n68kadd.pas, tn68kadd.second_cmpordinal:
* use the size of the largest operand to select a fiting operand
* ToDo: check whether a sign/zero extend of the value is necessary
git-svn-id: trunk@25628 -
2013-10-03 11:59:25 +00:00
sergei
5af873ee5b
* x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files.
...
git-svn-id: trunk@25627 -
2013-10-03 08:08:04 +00:00
sergei
2c79314d59
* IF_SANDYBRIDGE designates CPU family, not feature. Mostly a cosmetic change, since we don't use these flags for anything.
...
git-svn-id: trunk@25626 -
2013-10-03 06:06:34 +00:00
svenbarth
75dc360bd4
Correctly handle 64-Bit values when converting ints to bools. Fixes 2 tests.
...
m68k/n68kcnv.pas, tn68kcnv.second_int_to_bool:
* we need to check both the upper and the lower register for a 64-bit value to decide whether it's True or False
git-svn-id: trunk@25625 -
2013-10-02 20:16:42 +00:00
svenbarth
0cb2bda0a5
Correctly handle loads of different sizes. Fixes 1 test. Might be more, but some other bugs might hide it.
...
m68k/cgcpu.pas, tcg68k:
* a_load_ref_cgpara: use pashsize instead of paraloc^.size as the latter could be OS_NO and thus a "move" instead of a "move.x" will be generated resulting in a word move when a long or byte move might have been necessary
* a_load_reg_ref: use the smallest size when moving the value to a reference
* a_load_ref_ref: when the size is different always use a temporary register for a ref to ref move
* a_load_ref_ref: when doing a fixed move for Coldfire use the correct ref (that's another embarrasing error...) and size (fixes usage of String[Index] for a const array parameter)
* a_load_ref_reg: use the smallest size when moving the value from a reference
* g_concatcopy: don't use source.alignment as that doesn't contain the correct value and also load the value into the temp register using the correct size (fixes passing of small values as parameters, like chars)
git-svn-id: trunk@25624 -
2013-10-02 20:14:16 +00:00
Károly Balogh
c108a24cc8
reverted r25622 which was an accidental commit of some highly experimental debug code (sorry)
...
git-svn-id: trunk@25623 -
2013-10-02 18:31:28 +00:00
Károly Balogh
d004b44406
really fixed FillChar and fixed FillWord. fixes 8 tests.
...
git-svn-id: trunk@25622 -
2013-10-02 14:11:09 +00:00
Károly Balogh
e27db65085
really fixed FillChar and fixed FillWord. fixes 8 tests.
...
git-svn-id: trunk@25621 -
2013-10-02 12:33:52 +00:00
marco
2a9916baba
* fix mantis #25129 for non OS X BSD systems. Patch by A. Cardenas Marquez
...
- crtbegin and crtend suffix handling
- crti before crtbegin
git-svn-id: trunk@25620 -
2013-10-02 09:05:32 +00:00
michael
1f0c70508f
* DisplayName should not set name
...
git-svn-id: trunk@25619 -
2013-10-02 07:52:30 +00:00
michael
50b9b65395
* Only specify override for destructor in interface section. Add inherited to constructor, Tstreamclass is TMemoryStream
...
git-svn-id: trunk@25618 -
2013-10-02 07:51:45 +00:00
michael
38f72cf39b
Raise exception if no scanner specified
...
git-svn-id: trunk@25617 -
2013-10-02 07:49:33 +00:00
michael
a6627d14d4
* Added Extract to TJSONArray
...
git-svn-id: trunk@25616 -
2013-10-02 07:48:31 +00:00
Károly Balogh
31e7b790a7
a_load_const_reg: don't sign_extend after MOVEQ, it's not needed. also use CRL.L before loading to reg instead of sign_extend when possible
...
git-svn-id: trunk@25615 -
2013-10-02 01:19:44 +00:00
Tomas Hajny
e79246d6e6
* fix missing dependency of fppkg on fpmkunit (unnoticed on some targets due to dependency import via fcl-web)
...
git-svn-id: trunk@25613 -
2013-10-02 00:18:53 +00:00