Commit Graph

6159 Commits

Author SHA1 Message Date
florian
3ab069324a * op_const_reg_reg with OP_SAR fixed 2004-01-22 02:22:47 +00:00
florian
703af0f1f4 * improved register usage
+ implemented second_cmp64bit
2004-01-22 01:47:15 +00:00
peter
fa9e45b7cb * decrrefcount resets temps to nil 2004-01-21 22:13:20 +00:00
peter
ac1332a388 * fixed stackchecking for register calling 2004-01-21 21:01:34 +00:00
marco
308ab35e63 * Copy and pasted some structures from Net- to OpenBSD (3.4+ ELF!) 2004-01-21 20:53:50 +00:00
florian
af3d31eceb * fixed handling of max. distance of pc relative symbols 2004-01-21 19:01:03 +00:00
florian
3b21b99111 * fixed register allocator problems with concatcopy 2004-01-21 15:41:56 +00:00
florian
75e2de9f2c + reintroduce implemented 2004-01-21 14:22:00 +00:00
florian
e680460234 * fixed a_cmp_const_reg_label
* fixed volatile register handling which was broken by my last patch
2004-01-21 01:22:35 +00:00
florian
162ff2e6d4 * fixed a_call_reg
+ implemented paramgr.get_volative_registers
2004-01-20 23:18:00 +00:00
florian
1779c5dd8c * fixed symbol type writing for arm-linux
* fixed assembler generation for abs
2004-01-20 21:02:54 +00:00
florian
c37035a450 * common addnode code for x86-64 and i386 2004-01-20 12:59:36 +00:00
Jonas Maebe
df428f7a5d * fixed allocation of parameters passed by reference for powerpc in
callee
2004-01-17 15:55:10 +00:00
daniel
143b3f4c05 * Applied Peters patch 2004-01-16 18:08:39 +00:00
daniel
eaa7da9015 + Cleanup of stabstring generation code. Cleaner, faster, and compiler
executable reduced by 50 kb,
2004-01-15 23:16:32 +00:00
daniel
7a6b6f4bd4 * Some minor stuff
* Managed to eliminate speed effects of string compression
2004-01-15 15:16:17 +00:00
florian
541955ad91 + x86 instruction tables for x86-64 extended 2004-01-15 14:01:18 +00:00
florian
412072f71d * renamed instruction tables 2004-01-15 13:57:58 +00:00
florian
85bed883ce * another bunch of x86-64 fixes mainly calling convention and
assembler reader related
2004-01-14 23:39:05 +00:00
peter
c3b9e56e90 * give penalty in float-float conversion when precision is lost 2004-01-14 21:44:16 +00:00
peter
bb03be5004 * add release_openarrayvalue 2004-01-14 21:43:54 +00:00
peter
2063100f51 * ignore hidden parameters when default parameters are used 2004-01-14 17:53:58 +00:00
peter
60814ccb16 * disable addmmxset 2004-01-14 17:19:04 +00:00
florian
f936718fa1 * x86-64 compilation fixed 2004-01-13 18:08:58 +00:00
peter
47f08937e4 * use localalign info for alignment for locals and temps
* sparc fpu flags branching added
  * moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
peter
42c6e9323b * sparc updates, mostly float related 2004-01-12 16:39:40 +00:00
peter
d28412f40b * don't generate IMUL reg,1 2004-01-12 16:38:50 +00:00
peter
c34c9af5ce * moved spilling code from taicpu to rg 2004-01-12 16:37:59 +00:00
peter
32173c41fa * removed asmmode_direct 2004-01-12 16:36:53 +00:00
peter
b6515b81be * range check error 2004-01-12 16:35:40 +00:00
peter
d68c75f65a * R_SUB_FS added to make a difference between double and single
floats, required for sparc only
2004-01-12 16:35:05 +00:00
olle
6ab944bfcf * gen of conditional instr updated according to agppcgas
* gen of PPCAsm command fixed
2004-01-12 00:08:03 +00:00
daniel
4a4b8f2a72 * Experiment: Compress strings to save memory
Did not save a single byte of mem; clearly the core size is boosted by
    temporary memory usage...
2004-01-11 23:56:19 +00:00
florian
fc60443584 * version changed to 1.9.3 2004-01-11 20:59:41 +00:00
daniel
61d29c4e4e * Register allocation bug fixed 2004-01-11 13:21:35 +00:00
Jonas Maebe
4c7c8b9c3a * fixed mtfsb0 instruction for assembler reader/writer
* fixed initialisation of fpscr register to avoid spurious SIGPFE's
    (uses mtfsb0 instruction, so added extra define in options.pas to avoid
    requiring to start with a cross compiler)
2004-01-10 00:16:20 +00:00
daniel
cdbb601a4e * Degree=0 problem fixed
* Degree to high problem fixed
2004-01-09 22:02:29 +00:00
daniel
a4086f7dde * Commented out code removed 2004-01-09 13:37:17 +00:00
daniel
1f52387893 * Export table generation fixed according to instructions from Pierre 2004-01-09 13:36:26 +00:00
Jonas Maebe
e1fc7227d9 * darwin requires the alginment of .lcomm symbols to be specified
together with the symbol itself, instead of in a .align directive
2004-01-07 17:40:06 +00:00
peter
b4159755d2 * fixed too long ie number 2004-01-06 21:37:41 +00:00
Jonas Maebe
c5409f2f8a * fixed alignment constants for Darwin 2004-01-06 21:26:18 +00:00
peter
4b9ba9e064 * fix stabs for locals 2004-01-06 15:46:12 +00:00
florian
5f496817a0 * fixed webbug 2878 2004-01-06 02:17:44 +00:00
marco
55850b063a * regenerating the makefiles with some netbsd fixes + version upgrades 2004-01-05 23:34:21 +00:00
marco
b487ca1339 * fixed a few makefiles version numbers 2004-01-05 23:29:35 +00:00
florian
822ce0df68 * changed sysutils.exec to ExecuteProcess 2004-01-05 22:37:15 +00:00
marco
c6b2be7eef * rrregened 2004-01-05 18:01:40 +00:00
marco
16791157a4 * Regened 2004-01-05 17:24:16 +00:00
Jonas Maebe
6d4561ec58 * fixed compilation problems under x86 2004-01-05 08:13:30 +00:00
Jonas Maebe
e55860fdd8 + Darwin support for routines imported from external libraries (not yet
ideal, we should generate stubs in all files where the routines are
    used -> these are automatically merged by the linker; now we generate
    one global symbol with a jump to a stub in unit where the routine is
    declared)
  + (not yet working) Darwin support for imported variables
  + Darwin support for linking
2004-01-04 21:26:31 +00:00
Jonas Maebe
0f4ea52793 * use "as_darwin" assembler for Darwin
* Cprefix = '_' on Darwin
  * use_function_relative_addresses must be false on Darwin
2004-01-04 21:19:57 +00:00
Jonas Maebe
bee5b615cf + as_darwin assembler type (labels start with L)
* never generate register->number mappings for Darwin
    * always use real register names for Darwin
2004-01-04 21:18:10 +00:00
Jonas Maebe
9e781b8c7b + added log message for last commit 2004-01-04 21:17:51 +00:00
Jonas Maebe
744d6d85b2 *** empty log message *** 2004-01-04 21:12:47 +00:00
Jonas Maebe
3413faf00d * Darwin's assembler assumes that all labels starting with 'L' are local
-> rename symbols starting with 'L'
2004-01-04 21:10:04 +00:00
Jonas Maebe
8f33050b86 * darwin only supports .align, no .balign 2004-01-04 21:08:59 +00:00
Jonas Maebe
7f911c2f4a * Never generate a "main" symbol for PASCALMAIN for Darwin and classic
Mac OS, they use a C-main in their system unit
2004-01-04 21:08:09 +00:00
Jonas Maebe
2d40a5008b + support exported procedures for linuxppc
* refuse to compile systems/t_linux.pas if processor-specific  support
    for exported procedures is absent
  + generate .type and .size info for all currently defined linux-variants
    in aggas.pas
2004-01-03 13:51:05 +00:00
michael
d2594024c0 + Changed version to 1.9.2 2004-01-03 12:31:44 +00:00
marco
c032cd36e8 * errorhandling fixed 2004-01-03 09:20:45 +00:00
marco
64e776098a * unix does ansistring exec 2004-01-03 09:12:23 +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
c094978054 + SetFPUExceptionMask implementation for PPC 2004-01-02 16:50:24 +00:00
Jonas Maebe
c2efd86268 + integer division-by-zero detection support for ppc
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
florian
03efd6e74b * fixed wrong temp. usage in generic exception handling 2004-01-01 17:23:16 +00:00
Jonas Maebe
e90bd0332a * default linker name for non-i386 and non-m68k 2004-01-01 15:34:50 +00:00
Jonas Maebe
be0397b1d1 * fixed currency bugs. Int64 currency handling still needs to be
rewritten so that it doesn't include conversions to real anymore
    though
2003-12-31 22:30:39 +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
8be1033511 * (64 bit int) shl/shr (value > 63) := 0 2003-12-31 18:12:23 +00:00
Jonas Maebe
4aba5c80f1 * fixed C record max alignment 2003-12-31 17:28:19 +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
florian
a3cd612259 * fixed error message, if a resource file can't be written 2003-12-29 19:31:20 +00:00
Jonas Maebe
b46b7ff792 * integrated hack from 1.0.x so we can parse low(int64) as int64 instead
of as double (in 1.0.x, it was necessary for low(longint))
2003-12-29 17:19:35 +00:00
Jonas Maebe
92f038ebec * fixed saving/restoring of volatile fpu registers under sysv
+ better provisions for abi differences regarding fpu registers that have
    to be saved
2003-12-29 14:17:50 +00:00
Jonas Maebe
980efd582d + support for currency typed constants if currency=int64. Warning: does
not work properly for extreme values if bestreal <= double
2003-12-29 12:48:39 +00:00
Jonas Maebe
7de6463c43 * hopefully fixed bug tb0454 (merged from nppcadd) 2003-12-29 11:37:52 +00:00
Jonas Maebe
da6a3d28c8 * hopefully fixed tb0454 2003-12-29 11:35:19 +00:00
Jonas Maebe
83323b4955 * fixed tb0350 (support loading address of reference containing the
address 0)
2003-12-29 11:13:53 +00:00
Jonas Maebe
8953ed5494 * fixed tnotnode for < 32 bit quantities 2003-12-28 23:49:30 +00:00
florian
2028eb6b96 + except handling related nodes now include pi_do_call if necessary 2003-12-28 22:51:18 +00:00
florian
d38abc3a3f + setting of bit 6 of cr for c var args on ppc implemented 2003-12-28 22:09:12 +00:00
Jonas Maebe
85e84512fb * fixed procedures declared as "interrupt" for non-x86 2003-12-28 21:57:43 +00:00
florian
218beb5b32 * handling of open array value parameters fixed 2003-12-28 19:22:27 +00:00
Jonas Maebe
da74a9fea6 - removed unused methods from old generic spilling code 2003-12-28 16:20:09 +00:00
Jonas Maebe
6bab64590e * hopefully fixed varargs (both Pascal- and C-style) 2003-12-28 15:33:06 +00:00
Jonas Maebe
ffa51d27c3 * hopefully fixed interfaces (untested) 2003-12-28 15:14:14 +00:00
peter
ae6be6bc0e * support type convs for write typed 2003-12-27 22:27:55 +00:00
peter
3677577d9f * check with fileexists() before opening a file 2003-12-27 22:27:24 +00:00
florian
c72e3a8eea * updated instruction includes from new instruction table 2003-12-26 20:24:03 +00:00
peter
1c7e6fc380 * sparc updates
* use registertype in spill_register
2003-12-26 14:02:30 +00:00
florian
466744d413 * rtl and compiler compile with -Cfsse2 2003-12-26 13:47:41 +00:00
florian
ace2d682b0 * rtl and compiler compile with -Cfsse2 2003-12-26 13:19:16 +00:00
florian
3d8e1ab1fb + fpu<->mm register conversion 2003-12-26 00:32:21 +00:00
florian
dd2bb53aa5 + possible sse2 unit usage for double calculations
* some sse2 assembler issues fixed
2003-12-25 12:01:35 +00:00
peter
e380119e8c * sparc assembler reader updates 2003-12-25 01:25:43 +00:00
florian
06442fa677 + $fputype directive support
+ single data type operations with sse unit
  * fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
peter
6b3c925f64 * don't lowercase enumnames 2003-12-24 20:51:11 +00:00
florian
6d3d97e845 * first fixes to compile the x86-64 system unit 2003-12-24 01:47:22 +00:00