florian
44a7ef600f
* improve register handling for not and unary minus operator by using a new register for the destination
...
git-svn-id: trunk@24678 -
2013-05-31 21:32:58 +00:00
florian
4056194e7c
* don't ignore by accident the next instruction after a newly inserted constant pool
...
git-svn-id: trunk@24677 -
2013-05-31 21:29:08 +00:00
florian
3a393f839e
* do not reuse register locations on arm fpa/vfp
...
git-svn-id: trunk@24676 -
2013-05-31 21:29:05 +00:00
marco
8592b306f5
* some more Unicode Windows headers fixes.
...
git-svn-id: trunk@24673 -
2013-05-31 17:58:18 +00:00
masta
8c32802fcf
Added LdrbAnd2Ldrb Peephole optimizer for arm
...
Changes the following code:
ldrb dst1, [REF]
and dst2, dst1, #255
# dealloc dst1
to
ldrb dst2, [REF]
git-svn-id: trunk@24672 -
2013-05-31 17:36:54 +00:00
nickysn
10b3ce1ba5
* fixed an opsize bug in ti8086addnode.second_add64bit, which caused 32-bit instructions to be emitted
...
git-svn-id: trunk@24670 -
2013-05-31 17:13:38 +00:00
nickysn
fba73d3c96
+ added and implemented unit msmouse for i8086-msdos
...
git-svn-id: trunk@24669 -
2013-05-31 16:54:01 +00:00
nickysn
1ee6628afd
+ implemented all the crt screen output functions for i8086-msdos
...
git-svn-id: trunk@24668 -
2013-05-31 15:09:10 +00:00
florian
0968d095ed
* convert function like used new into a appropriate nodes only in pass_1 so proper error checking can be carried out, resolves #24495
...
git-svn-id: trunk@24667 -
2013-05-31 14:55:49 +00:00
nickysn
f2ff50f80e
+ initial implementation of unit crt for i8086-msdos (based on the go32v2 version)
...
git-svn-id: trunk@24666 -
2013-05-31 14:29:35 +00:00
nickysn
5b503f42c7
+ implemented Mem/MemW/MemL[] for i8086
...
git-svn-id: trunk@24665 -
2013-05-31 13:31:45 +00:00
Károly Balogh
af1f84892c
try to do VLink support semi-properly, so cross compilation is possible
...
git-svn-id: trunk@24664 -
2013-05-31 13:04:44 +00:00
Jonas Maebe
1551c773e0
- removed no longer necessary thlcg2ll.initialize_regvars override and
...
commented dummy location_force_mmregscalar (fully implemented in r24661)
git-svn-id: trunk@24663 -
2013-05-31 12:21:53 +00:00
Jonas Maebe
51f52565ce
* fixed cross-testing: test TESTCOMPILER variable before emptying OPT,
...
and assign (:=) rather than create a reference to (=) the original
OPT in TESTCOMPILER
git-svn-id: trunk@24662 -
2013-05-31 12:05:21 +00:00
Jonas Maebe
5051453806
+ support for LOC_(C)MMREGISTER in hlcg
...
o migrated location_force_mmregister_scalar from ncgutil to hlcgobj
git-svn-id: trunk@24661 -
2013-05-31 12:05:14 +00:00
nickysn
c271594b4f
+ optimized implementation of 32-bit OP_SHL,OP_SHR and OP_SAR in tcg8086.a_op_const_reg
...
git-svn-id: trunk@24660 -
2013-05-31 11:03:36 +00:00
nickysn
89cbbe5931
+ enabled compilation of unit objects for i8086-msdos
...
git-svn-id: trunk@24659 -
2013-05-31 09:39:17 +00:00
marco
527489c1ab
* some minor fixes to get unit Windows compiled with UNICODE defined.
...
git-svn-id: trunk@24658 -
2013-05-31 09:09:08 +00:00
nickysn
ab03091865
+ enabled compilation of unit classes on i8086-msdos
...
git-svn-id: trunk@24657 -
2013-05-31 08:29:23 +00:00
nickysn
db5573b395
* fixed the nasm assembly output for SAR/SAL with a memory reference
...
git-svn-id: trunk@24656 -
2013-05-31 08:21:42 +00:00
Károly Balogh
348615589b
disabled sockets unit, because it doesn't build ATM
...
git-svn-id: trunk@24653 -
2013-05-30 19:08:28 +00:00
Károly Balogh
24e2bd4364
added a dummy implementation of GetLastOSError
...
git-svn-id: trunk@24652 -
2013-05-30 19:07:41 +00:00
Károly Balogh
b3c4450186
make a warning a note, so it compiles with -Sew
...
git-svn-id: trunk@24651 -
2013-05-30 19:04:14 +00:00
nickysn
a36288ee68
+ enabled compilation of unit fgl on i8086-msdos
...
git-svn-id: trunk@24650 -
2013-05-30 19:02:13 +00:00
nickysn
730f7c82b7
* some fixes, intended to get units fgl and classes to compile on 16-bit cpus
...
git-svn-id: trunk@24649 -
2013-05-30 18:58:25 +00:00
svenbarth
6ad761912f
Add a Delphi compatible test for passing of different string like types to UnicodeString/RawByteString parameters.
...
git-svn-id: trunk@24648 -
2013-05-30 16:54:17 +00:00
nickysn
125a6a8720
* register id of (e)flags changed, so it doesn't overlap with dr0
...
git-svn-id: trunk@24647 -
2013-05-30 16:40:59 +00:00
nickysn
ed92dee3fb
* fixed the calling of virtual methods on i8086
...
git-svn-id: trunk@24646 -
2013-05-30 16:23:29 +00:00
masta
073cab8d86
Optimize FoldShiftLdrStr in ARM Peephole optimizer
...
The optimizer now juggles around the base and index register if that opens
up the possibility of folding the shift into the instruction.
This can only be done in the case of addressmode=AM_OFFSET, in case of
[AM_POSTINDEXED, AM_PREINDEXED] we can not move the base register, as this
would cause havoc and destruction.
git-svn-id: trunk@24645 -
2013-05-30 16:13:58 +00:00
marco
e57174a14f
* defined -W versions for several -A functions under ifdef FPC_UNICODE_RTL
...
git-svn-id: trunk@24644 -
2013-05-30 15:47:41 +00:00
sergei
fe322f35d5
* MIPS: fixed passing CPU type specified with -CpXXX switch to assembler
...
- removed mips_cpu variable and cpu_mips_default CPU type.
* globals.pas: default CPU type changed to MIPS2, this is what was passed to assembler before.
git-svn-id: trunk@24643 -
2013-05-30 15:02:40 +00:00
Jonas Maebe
a1bc04bbb3
* don't omit stack frame generation when generating gprof information, as
...
mcount expects the frame pointer to be valid
git-svn-id: trunk@24642 -
2013-05-30 13:43:51 +00:00
nickysn
35939ff0a9
+ method pointer support for targets with a 16-bit address space in tcgloadnode.pass_generate_code
...
git-svn-id: trunk@24641 -
2013-05-30 13:22:59 +00:00
Jonas Maebe
78f94ab035
* made calls to seterrno position-independent
...
git-svn-id: trunk@24640 -
2013-05-30 12:23:50 +00:00
svenbarth
6eaefeed7f
Addendum to 24628: forgot to increase PPU version
...
git-svn-id: trunk@24639 -
2013-05-30 12:21:03 +00:00
Jonas Maebe
d6180b1e70
* properly propagate PIC-related suffixes from the x86 assembler reader in
...
case the operand was parsed as a symbol
git-svn-id: trunk@24638 -
2013-05-30 12:20:48 +00:00
Jeppe Johansen
0bb8d24e24
Add some immediate forms of shift instructions to tcgthumb.a_op_const_reg
...
git-svn-id: trunk@24637 -
2013-05-30 12:07:32 +00:00
Jeppe Johansen
e5066a5f43
Update jumptabel generation for ARM Thumb
...
git-svn-id: trunk@24636 -
2013-05-30 12:06:30 +00:00
Jeppe Johansen
c4263ced51
Disable one peephole optimization for Thumb
...
git-svn-id: trunk@24635 -
2013-05-30 12:05:27 +00:00
nickysn
1797c8b803
* i8086 fixes for the handling of large sets in tx86innode.pass_generate_code; test/cg/tin.pp works now
...
git-svn-id: trunk@24634 -
2013-05-30 10:16:05 +00:00
sergei
0ad96d2099
* MIPS: some clean up of assembler reader:
...
- references cannot be in brackets
- registers are only prefixed by dollar, never by percent
- syntax x@LO is not supported, must be %lo(x).
git-svn-id: trunk@24633 -
2013-05-30 09:28:21 +00:00
lacak
eeabb9403e
fcl-db: base: change formal data type of AsInteger to Longint instead of Integer (in objpas mode it is same as Integer) to be Delphi compatible.
...
Change call chain GetAsInteger calls GetAsLongint to GetAsLongint calls GetAsInteger, because AsInteger is used often than GetAsLongint so we save one more call.
git-svn-id: trunk@24632 -
2013-05-30 08:26:39 +00:00
sergei
2944fc8839
* MIPS improvements:
...
* reworked condition codes, changed BC1T and BC1F from separate instructions to condition jumps.
- removed A_P_SW, A_P_LW and A_SPARC8UNIMP
+ support '.set at' and '.set noat' directives
+ prepare to support bgtz,bgez,bltz,blez instructions.
git-svn-id: trunk@24631 -
2013-05-29 17:35:56 +00:00
sergei
e1f6cf79e9
* MIPS: an empty reference (no symbol, base or index and zero offset) must not be output as empty string.
...
git-svn-id: trunk@24630 -
2013-05-29 15:59:40 +00:00
michael
7951c24a85
* Patch from Ludo Brands to fix 24497
...
git-svn-id: trunk@24629 -
2013-05-29 12:41:50 +00:00
svenbarth
956b26bc97
Completely reworked implementation of generic constraints, by moving the generic constraint data from the symbols to the definitions (I originally thought that this would simplyfy things, but the more correct approach is to add it to the defs).
...
symsym.pas:
- remove "tgenericconstraintdata" and any using/loading/writing of it in "ttypesym"
- remove "tgenericconstraintflag"
symdef.pas:
+ add "tgenericconstraintdata"
+ load and write "genconstraintdata" in "tstoreddef"
symconst.pas:
+ add "tgenericconstraintflag" so it can be used in "ppudump" as well
defcmp.pas, compare_defs_ext:
* as we allow global operator overloads we can't really determine whether two defs are compatible, because a valid operator for the specialization types might just happen to be in scope of the generic; so for now constraints are only strictly checked when declaring a specialization
pgenutil.pas:
* adjust "parse_generic_parameters" and "check_generic_constraints" to the new location of the constraint data
ppudump.pp:
* corrrectly parse defs which contain generic constraints
git-svn-id: trunk@24628 -
2013-05-29 08:19:02 +00:00
svenbarth
cc5a108cca
Allocate the list for generic parameters in tstoreddef only on demand as most defs won't contain generic parameters anyway (avoids a little bit of runtime and memory overhead per def).
...
symdef.pas, tstoreddef:
+ comment that the list is allocated on demand (and thus should be checked for Nil)
+ fillgenericparas: create the list when adding at least one generic parameter symbol
- create & ppuload: don't create list instance anymore
+ is_generic & is_specialization: check whether the list is assigned
defcmp.pas, compare_defs_ext:
+ check whether "genericparas" list is assigned
pgenutil.pas:
+ check_generic_constraints: check whether "genericparas" is assigned
+ insert_generic_parameter_types: create list before adding generic parameters
git-svn-id: trunk@24627 -
2013-05-29 07:50:49 +00:00
yury
4ca7e66661
* Fixed cross-installation after r24625.
...
git-svn-id: trunk@24626 -
2013-05-28 12:55:25 +00:00
joost
0db3e679a7
* Adapted the path of the newly created fpcmake
...
git-svn-id: trunk@24625 -
2013-05-27 19:21:09 +00:00
joost
f677ba5551
* Actually check if file is newer, and not if they are of the same age. Went wrong in r24611
...
git-svn-id: trunk@24624 -
2013-05-27 15:46:30 +00:00