peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
peter
38bebdb044
* only make both operands the same for xor,and,or when both are
...
integer types
2004-09-13 20:32:53 +00:00
Jonas Maebe
e3eb4f8359
* fixed "if @procvar_of_object <> nil" in Delphi/TP mode for for non-x86
2004-08-17 19:04:36 +00:00
florian
8cb7072e5f
* fixed several ie9999s when illegal operators were used
2004-08-08 15:22:29 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
71280bedad
* fix cardinal+constint
2004-05-28 21:13:44 +00:00
florian
d6b865167c
+ added set of widechar support (limited to 256 chars, is delphi compatible)
2004-05-23 14:14:18 +00:00
peter
324144db92
* only convert widechar to widestring when both operands are
...
constant
* support widechar-widechar operations in orddef part
2004-05-23 14:08:39 +00:00
florian
35f9b5a3ee
* fixed <ordinal>+<pointer>
2004-05-21 13:08:14 +00:00
florian
b5bf8cefad
+ <pointer> - <pointer> result is divided by the pointer element size now
...
this is delphi compatible as well as resulting in the expected result for p1+(p2-p1)
2004-05-20 21:54:33 +00:00
peter
c25228226d
* don't change sign for unsigned shl/shr operations
...
* cleanup for u32bit
2004-05-19 23:29:25 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
florian
e4f4b8acd6
* fixed web bug #3048 : comparision of dyn. arrays
2004-04-18 07:52:43 +00:00
peter
e661df03ee
* fixes to previous constant integer commit
2004-03-29 14:44:10 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
peter
6b96b70118
* fixed operator overload allowing for pointer-string
...
* replaced some type_e_mismatch with more informational messages
2004-03-18 16:19:03 +00:00
daniel
3ea87ad054
* Avoid memory allocation and string copying
2004-02-21 22:08:46 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
florian
465aa5851b
* several fixes to compile x86-64 system
2004-02-05 01:24:08 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
florian
e35b683e4d
+ added prefetch(const mem) support
2004-02-02 20:41:59 +00:00
florian
c37035a450
* common addnode code for x86-64 and i386
2004-01-20 12:59:36 +00:00
peter
60814ccb16
* disable addmmxset
2004-01-14 17:19:04 +00:00
Jonas Maebe
2af569745c
* if currency = int64, FPC_CURRENCY_IS_INT64 is defined
...
+ round and trunc for currency and comp if FPC_CURRENCY_IS_INT64 is
defined
* if currency = orddef, prefer currency -> int64/qword conversion over
currency -> float conversions
* optimized currency/currency if currency = orddef
* TODO: write FPC_DIV_CURRENCY and FPC_MUL_CURRENCY routines to prevent
precision loss if currency=int64 and bestreal = double
2004-01-02 17:19:04 +00:00
Jonas Maebe
a75ef67bfd
* properly fixed assigned() mess (by handling it separately in ncginl)
...
-> all assigned()-related tests in the test suite work again
2003-12-31 20:47:02 +00:00
Jonas Maebe
3ff00d31b3
* fixed previous commit for tp and delphi modes
2003-12-30 16:30:50 +00:00
Jonas Maebe
f587f35457
* fixed methodpointer comparing in a generic way (typecast both left and
...
right explicitly to voidpointer), instead of relying on strange
behvaiour or n386addnode.pass_2 (if size of def = 8, only use the first
4 bytes instead of internalerror-ing or so)
2003-12-29 22:33:08 +00:00
daniel
448e336682
* Some work to allow mmx instructions to be used for 32 byte sets
2003-12-21 11:28:41 +00:00
Jonas Maebe
e9eff10134
+ support for evaluating qword constant expressions (both arguments have
...
to be a qword, constants have to be explicitly typecasted to qword)
2003-12-09 21:17:04 +00:00
peter
4245cedfed
* compare longint-cardinal also makes types wider
2003-10-28 15:35:18 +00:00
peter
a28d911c98
* IncompatibleTypes() added that will include unit names when
...
the typenames are the same
2003-10-21 18:16:13 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
florian
eb9a587759
+ support of NaN and Inf in the compiler as values of real constants
2003-09-06 16:47:24 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
peter
28ebc69c8f
* removed changesettype because that will change the definition
...
of the setdef forever and can result in a different between
original interface and current implementation definition
2003-06-05 20:05:55 +00:00
peter
5197c95be6
* widen cardinal+signed operations
2003-06-03 21:04:43 +00:00
peter
75394a788e
* disable string node optimizations for the moment
2003-05-26 21:15:18 +00:00
peter
0799b0663d
* generic fpc_shorstr_concat
...
+ fpc_shortstr_append_shortstr optimization
2003-05-26 19:38:28 +00:00
florian
1f099e81a7
* if something doesn't work with callparatemp, the define callparatemp
...
should be used because other processors with reigster calling conventions
depend on this as well
2003-05-24 21:12:57 +00:00
Jonas Maebe
7804ac8ec2
- disable addoptnodes for powerpc, because they can generate calls in
...
pass_2, so -dcallparatemp can't detect them as nested calls
2003-05-23 22:57:38 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
a23e3f0a2f
* add string returns in LOC_REFERENCE
2003-04-26 09:12:55 +00:00
florian
41da381f1a
* fixed a lot of PowerPC related stuff
2003-04-24 22:29:57 +00:00
peter
c21ca3dfa0
+ added currency support based on int64
...
+ is_64bit for use in cg units instead of is_64bitint
* removed cgmessage from n386add, replace with internalerrors
2003-04-23 20:16:03 +00:00
peter
41dfcfba39
* expectloc fixes
2003-04-23 10:10:07 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
carl
ff5cc80fcd
* bugfix for generic calls to FPU emulation code
2003-02-15 22:20:14 +00:00
carl
ce2b1f45ef
* load_frame_pointer is now generic
...
* change fpu emulation routine names
2003-02-12 22:10:07 +00:00