florian
a375ad9565
* remaining assembler writer bugs fixed, the errors in the
...
system unit are inline assembler problems
2002-08-18 10:42:37 +00:00
florian
c853f24a86
* more ppc assembling fixes
2002-08-18 10:34:30 +00:00
florian
4144773f01
* result type handling in tcgcal.pass_2 overhauled
...
* better tnode.dowrite
* some ppc stuff fixed
2002-08-17 22:09:43 +00:00
florian
b841ba8b16
* some assembler writer bugs fixed
2002-08-17 18:23:53 +00:00
florian
e313bab4ff
* first part of procinfo rewrite
2002-08-17 09:23:33 +00:00
carl
745efb2c47
* issameref() to test if two references are the same (then emit no opcodes)
...
+ ret_in_reg to replace ret_in_acc
(fix some register allocation bugs at the same time)
+ save_std_register now has an extra parameter which is the
usedinproc registers
2002-08-16 14:24:57 +00:00
carl
588abc6631
* jmpbuf size allocation for exceptions is now cpu specific (as it should)
...
* more generic nodes for maths
* several fixes for better m68k support
2002-08-15 15:15:55 +00:00
carl
c33d99adb7
- a_load_sym_ofs_reg removed
...
* loadvmt now calls loadaddr_ref_reg instead
2002-08-15 08:13:54 +00:00
carl
d175d7113f
+ added fixing because first_in_to_real is now completely generic
2002-08-14 19:30:42 +00:00
Jonas Maebe
3ab3c91e0a
- remove valuelow/valuehigh fields from tlocation, because they depend
...
on the endianess of the host operating system -> difficult to get
right. Use lo/hi(location.valueqword) instead (remember to use
valueqword and not value!!)
2002-08-14 18:41:47 +00:00
florian
af4302bc67
* more fixes for ppc calling conventions
2002-08-13 21:40:55 +00:00
carl
9da171faf2
+ stab register indexes for powerpc (moved from gdb to cpubase)
...
+ tprocessor enumeration moved to cpuinfo
+ linker in target_info is now a class
* many many updates for m68k (will soon start to compile)
- removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +00:00
peter
ac71268ce6
* saving of asmsymbols in ppu supported
...
* asmsymbollist global is removed and moved into a new class
tasmlibrarydata that will hold the info of a .a file which
corresponds with a single module. Added librarydata to tmodule
to keep the library info stored for the module. In the future the
objectfiles will also be stored to the tasmlibrarydata class
* all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
Jonas Maebe
387f05b00d
* some overflow checking fixes
2002-08-11 11:40:16 +00:00
Jonas Maebe
9ba736bd04
+ powerpc-specific genlinearlist
2002-08-11 11:39:12 +00:00
carl
1f1145d30e
- no longer used files removed
2002-08-11 07:02:00 +00:00
florian
3ec544be88
* fixed powerpc compilation problems
2002-08-11 06:14:40 +00:00
Jonas Maebe
ee7d5f7b2a
* various fixes and optimizations
2002-08-10 17:15:31 +00:00
Jonas Maebe
bedbc15e75
* endianess fix
2002-08-10 17:15:06 +00:00
Jonas Maebe
f1f27e99b4
+ abs, sqr, sqrt implementations
2002-08-10 17:15:00 +00:00
carl
18b102ce95
+ moved target_cpu_string to cpuinfo
...
* renamed asmmode enum.
* assembler reader has now less ifdef's
* move from nppcmem.pas -> ncgmem.pas vec. node.
2002-08-10 14:46:29 +00:00
florian
b136cecacd
* first part of ppc calling conventions fix
2002-08-06 20:55:20 +00:00
Jonas Maebe
e7d92a1aa7
* fixed bug in g_flags2reg()
...
* and yet more constant operation fixes :)
2002-08-06 07:12:05 +00:00
Jonas Maebe
10c4e8eb15
* fixed compilation problems
2002-08-05 08:58:53 +00:00
Jonas Maebe
8ff3e3e1b3
* more misc. fixes, mostly constant-related
2002-08-04 12:57:55 +00:00
Jonas Maebe
54011b5bea
* some misc constant fixes
2002-08-02 11:10:42 +00:00
florian
ed950491a8
* the code generator knows now if parameters are in registers
2002-07-30 20:50:43 +00:00
florian
e7a6cd18dd
* more fixes for the ppc
...
+ wrappers for the tcnvnode.first_* stuff introduced
2002-07-29 21:23:42 +00:00
Jonas Maebe
07089fadb7
+ nppcmem
2002-07-29 09:22:20 +00:00
Jonas Maebe
a1a3283c61
+ tppcvecnode, almost straight copy of the i386 code, can most likely
...
be made generic if all treference type allow a base, index and offset
2002-07-29 09:21:30 +00:00
Jonas Maebe
04cb71275a
+ second_int_to_int implementation which is almost the same as the
...
generic implementation, but it avoids some unnecessary type conversions
2002-07-29 09:20:20 +00:00
florian
37351a4590
- removed debug code which was commited by accident
2002-07-28 21:38:30 +00:00
florian
463b355ba3
* more powerpc fixes
...
+ dummy tcgvecnode
2002-07-28 21:34:31 +00:00
florian
3fe0229843
+ added direct assembler reader for PowerPC
2002-07-28 20:45:22 +00:00
Jonas Maebe
046ee7bf2b
+ 64 bit operations (badly tested), everything is implemented now!
...
* some small fixes
2002-07-28 16:02:49 +00:00
Jonas Maebe
e3cbc3cf22
+ tcg64fppc.a_op64_const_reg_reg() and tcg64fppc.a_op64_reg_reg_reg()
...
* several fixes, most notably in a_load_reg_reg(): it didn't do any
conversion from smaller to larger sizes or vice versa
* some small optimizations
2002-07-28 16:01:59 +00:00
Jonas Maebe
ccf4a67d81
+ second_addboolean(), second_addfloat() and second_addsmallset()
...
(64bit stuff is all that's left to do)
2002-07-27 20:00:59 +00:00
Jonas Maebe
b4cfa73079
* fixed a_loadaddr_ref_reg()
...
* fixed g_flags2reg()
* optimized g_concatcopy()
2002-07-27 19:59:29 +00:00
Jonas Maebe
1b983ee56e
* some typo corrections in the instruction tables
...
* renamed the m* registers to v*
2002-07-27 19:57:18 +00:00
Jonas Maebe
6b83738e7d
+ generic implementation of tcg.g_flags2ref()
...
* tcg.flags2xxx() now also needs a size parameter
2002-07-27 19:53:51 +00:00
florian
1b5435381b
* several PowerPC related fixes to get forward with system unit compilation
2002-07-26 22:22:10 +00:00
florian
eb2ca8d10f
* rewrote the system handling
2002-07-26 21:15:37 +00:00
Jonas Maebe
0d740d4de8
+ intial implementation of add nodes, only integer/enumeration/pointer/...
...
handling is finished
2002-07-26 12:31:56 +00:00
Jonas Maebe
83ce7360ed
* fixed typo in instruction table (_subco_ -> a_subco)
2002-07-26 12:30:51 +00:00
Jonas Maebe
e2c5923e97
* fixed range errors
2002-07-26 11:19:57 +00:00
Jonas Maebe
61a2a3ae37
* fixed bug in shl/shr code
2002-07-26 10:48:34 +00:00
carl
448d40de1a
+ FPURESULTREG -> FPU_RESULT_REG
2002-07-25 17:56:29 +00:00
florian
156fc666c8
* small typo fixed, compiles with 1.0.x again
2002-07-24 14:38:00 +00:00
Jonas Maebe
c1e9bd36a3
* make sure we use rlwi* when possible instead of andi.
2002-07-21 17:00:23 +00:00
Jonas Maebe
33e3b0dda0
+ include ncgset unit
2002-07-21 16:58:59 +00:00
Jonas Maebe
3eb6dc156e
* hopefully final fix for second_int_to_real()
2002-07-21 16:57:22 +00:00
Jonas Maebe
398195464a
* fixed bugs with writing out unconditinal jumps
2002-07-21 16:56:20 +00:00
florian
59abf2555b
* types.pas renamed to defbase.pas because D6 contains a types
...
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
florian
e161eb5e25
+ initial version, a lot of instructions need to be added
2002-07-13 21:50:34 +00:00
florian
15b9d096f9
* some more generic calling stuff fixed
2002-07-13 19:38:43 +00:00
Jonas Maebe
79c0a402ef
* fixed fpu constants in second_int_to_real (fpu values are also stored
...
in big endian)
2002-07-13 06:49:39 +00:00
florian
f0e2409c9f
* fixed to compile with 1.1
2002-07-12 22:02:22 +00:00
Jonas Maebe
4f77082660
* changed motorola syntax of references with symbols to GNU syntax
2002-07-12 10:10:01 +00:00
florian
336808f6c3
* start of the new generic parameter handling
2002-07-11 14:41:27 +00:00
Jonas Maebe
82e23e60f5
* fixed nppccnv and enabled it
...
- removed PPC specific second_int_to_int and use the generic one instead
2002-07-11 07:42:31 +00:00
Jonas Maebe
17f7d6e8e0
* fixed tppcmoddivnode
...
* fixed 64bit parts of tppcshlshrnode
2002-07-11 07:41:27 +00:00
Jonas Maebe
690ba14436
+ tcg64fpc implementation (only a_op64_reg_reg and a_op64_const_reg for
...
now)
* fixed and improved tcgppc.a_load_const_reg
* improved tcgppc.a_op_const_reg, tcgppc.a_cmp_const_reg_label
* A_CMP* -> A_CMPW* (this means that 32bit compares should be done)
2002-07-11 07:38:28 +00:00
Jonas Maebe
5ee1a2ea17
* some available registers fixes
2002-07-11 07:35:36 +00:00
Jonas Maebe
c018cb9116
* fixed mullw entry in instruction list
2002-07-11 07:34:55 +00:00
Jonas Maebe
3e7b6ef7fa
* unarynminus and shlshr node fixed for 32bit and smaller ordinals
...
* small fixes in the assembler writer
* changed scratch registers, because they were used by the linker (r11
and r12) and by the abi under linux (r31)
2002-07-09 19:45:01 +00:00
florian
be574d1cf2
* powerpc target fixed, very simple units can be compiled
2002-07-07 09:44:31 +00:00
carl
d75603c2ed
* bugfix of hdisponen (base must be set, not index)
...
* more portability fixes
2002-05-20 13:30:40 +00:00
peter
06ebac4e27
* readded missing revisions
2002-05-18 13:34:04 +00:00
carl
21b3a10f02
+ defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
...
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
Jonas Maebe
1e82d75ccf
- removed, superceded by rgobj/tgobj/rgcpou
2002-05-15 05:52:42 +00:00
peter
2992e1819c
* removed old logs and updated copyright year
2002-05-14 19:34:38 +00:00
peter
f6b3e2e37f
* synchronized cpubase between powerpc and i386
...
* moved more tables from cpubase to cpuasm
* tai_align_abstract moved to tainst, cpuasm must define
the tai_align class now, which may be empty
2002-05-14 17:28:08 +00:00
peter
51688dade3
* a ppcppc can be build again
2002-05-13 19:52:46 +00:00
carl
5cdad9e30f
* some small updates according to i386 version
2002-04-21 15:48:39 +00:00
carl
9b12acc70a
* renamed some constants
2002-04-20 21:38:45 +00:00
carl
4cff0f13fd
- moved type constant
2002-04-07 13:41:50 +00:00
Jonas Maebe
71a52a4aeb
* several powerpc-related additions and fixes
2002-04-06 18:10:42 +00:00
Jonas Maebe
c6d03a29f0
* completed (not compilale yet though)
2002-01-03 14:57:52 +00:00
Jonas Maebe
e41ba8650a
* fixed small bug in a_jmp_flags
2002-01-02 14:53:04 +00:00
Jonas Maebe
f15dbd7bf0
* range checking is now processor independent (part in cgobj, part in
cg64f32) and should work correctly again (it needed some changes after
the changes of the low and high of tordef's to int64)
* maketojumpbool() is now processor independent (in ncgutil)
* getregister32 is now called getregisterint
2001-12-30 17:24:45 +00:00
Jonas Maebe
91f567bb66
* powerpc/cgcpu.pas compiles :)
...
* several powerpc-related fixes
* cpuasm unit is now based on common tainst unit
+ nppcmat unit for powerpc (almost complete)
2001-12-29 15:28:57 +00:00
Jonas Maebe
00a1625ce3
+ second_int_to_real for cardinal, int64 and qword
2001-10-28 14:17:10 +00:00
Jonas Maebe
2d3126c843
* small fixes
2001-10-28 14:16:49 +00:00
Jonas Maebe
da7d733384
+ implemented second_int_to_real
...
* fixed small bug in second_int_to_int
2001-10-01 12:17:26 +00:00
Jonas Maebe
32759c4953
* small optimization
2001-09-29 21:33:30 +00:00
Jonas Maebe
ca8623dfb6
+ implemented bool_to_int and int_to_int (+ helper in nppcutil)
2001-09-29 21:33:12 +00:00
Jonas Maebe
fa0a56f559
* several additions, almost complete (only some problems with resflags left)
2001-09-28 20:40:05 +00:00
Jonas Maebe
17209e05b7
* some fixes to operations with constants
2001-09-16 10:33:21 +00:00
Jonas Maebe
4930d6448f
* some more things implemented
2001-09-09 17:10:25 +00:00
Jonas Maebe
bea3bf8717
* changed type of tcg from object to class -> abstract methods are now
...
a lot cleaner :)
+ more updates: load_*_loc methods, op_*_* methods, g_flags2reg method
(if possible with geenric implementation and necessary ppc
implementations)
* worked a bit further on cgflw, now working on exitnode
2001-09-06 15:25:55 +00:00
Jonas Maebe
3b4b673069
* new cgflow based on n386flw with all nodes until forn "translated"
...
+ a_cmp_loc_*_label methods for tcg
+ base implementatino for a_cmp_ref_*_label methods
* small bugfixes to powerpc cg
2001-09-05 20:21:03 +00:00
florian
525be77ced
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:29:33 +00:00