Commit Graph

735 Commits

Author SHA1 Message Date
daniel
d05f58b604 * Group asmlists into array to be able to add
some of them more comfortably.
  * x86_64 compilation was broken, fixed.
  * Sparc compilation was broken, fixed.

git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
peter
03c02cdb42 * support Type[index] typecasting
git-svn-id: trunk@711 -
2005-07-20 11:30:00 +00:00
Jonas Maebe
8bc4e0a32f * inline and compilerproc are now procoptions instead of proccall types
(so both can be combined with each other, as well as with other calling
     conventions)
  * defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated

git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00
daniel
9989bb0d3c * Add operator size to "ret immidiate" instruction
git-svn-id: trunk@607 -
2005-07-10 09:34:51 +00:00
daniel
45bcc5b07a * Add support for jmp $0011:$22334455 to Intel asm reader, request from
a user that is writing an operating system.
  * Fix mkx86ins bug to interpret imm16:imm32 as a single operand

git-svn-id: trunk@606 -
2005-07-10 07:42:14 +00:00
florian
dac1050c11 + mmx support revived, fixes bug #4106
git-svn-id: trunk@555 -
2005-07-02 11:53:51 +00:00
peter
c1b2e1aac5 * check function/procedure type when adding a proc definition
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +00:00
florian
07442c5693 * fixed passing of variant parameters for windows api
* widestrings need to be allocated by a special OS call on windows

git-svn-id: trunk@458 -
2005-06-20 19:56:36 +00:00
florian
21ae782854 * fixed more xmm stuff
+ some win64 stuff added

git-svn-id: trunk@330 -
2005-06-09 20:50:17 +00:00
peter
757ed4e8d3 * standard assembler reader for i386
git-svn-id: trunk@235 -
2005-06-07 13:20:14 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
florian
c97714de9f * renamed windows related units from win32 to win so it can contain ce and 64 bit stuff
git-svn-id: trunk@213 -
2005-06-05 13:42:35 +00:00
florian
a7446e4a7b * changed operand information for multimedia xor operations
git-svn-id: trunk@204 -
2005-06-05 09:50:38 +00:00
florian
36dd45fbc3 * allocation strings fixed allocated<->released where exchanged
git-svn-id: trunk@200 -
2005-06-05 07:47:28 +00:00
florian
ebcb69478f * fixed a lot of stuff for fpu/mm register variables
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
Jonas Maebe
66755db8b4 * fixed web bug #3905 2005-04-22 15:55:08 +00:00
florian
33ec5d49c5 * USECMOV fixed 2005-03-20 21:41:10 +00:00
Jonas Maebe
ec959955bd * fixed generic jumps optimizer and enabled it for ppc (the label table
was not being initialised -> getfinaldestination always failed, which
    caused wrong optimizations in some cases)
  * changed the inverse_cond into a function, because tasmcond is a record
    on ppc
  + added a compare_conditions() function for the same reason
2005-02-26 01:26:59 +00:00
Jonas Maebe
126f3fa6cf * fixed loop which could go into neverneverland in case of embedded
assembler blocks
2005-02-26 01:23:29 +00:00
Jonas Maebe
04b1263e7f * fixed uninitialised function result in getfinaldestination() when
maximum recursion reached
2005-02-25 20:50:53 +00:00
peter
dd0664156d * fix passing of 64bit values when using -Or 2005-02-15 19:16:04 +00:00
peter
482d781af3 win32 stdcall fixes needed for tw3650 2005-02-14 19:42:02 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
22d9294ab3 + overflow checking for the arm 2005-02-13 18:55:19 +00:00
peter
18ebd28692 * push_addr_param must be defined per target 2005-02-03 20:04:49 +00:00
peter
8f2a768124 * fix win32 small array parameters 2005-02-03 17:10:21 +00:00
peter
79eac1c0b3 * fix [regpara] in intel assembler 2005-01-31 17:07:50 +00:00
peter
46dbff9c93 * revert last commit 2005-01-30 11:03:22 +00:00
peter
cd01e600b9 * update x86_64 with new cpupara 2005-01-29 11:36:52 +00:00
peter
6ee925dec8 * spaces in register names 2005-01-25 18:48:34 +00:00
peter
e820bc93f2 * interface wrapper generation moved to cgobj
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
florian
c08ec5fbf3 * wrong prefix output for masm fixed 2005-01-24 20:44:29 +00:00
peter
79c20ebf7d * use val() for decoding integers 2005-01-20 17:05:53 +00:00
peter
04c97cc129 * load jmp_buf_size from system unit 2005-01-20 16:38:45 +00:00
peter
8d251e8506 * unit mapping rewrite
* new derefmap added
2005-01-19 22:19:41 +00:00
peter
c9f22afb8d * support labels in references 2005-01-19 20:21:51 +00:00
peter
b9ca478f50 * multiple location support for i386 a_param_ref
* remove a_param_copy_ref for i386
2005-01-18 22:19:20 +00:00
peter
ba4228d281 * fix section names 2005-01-18 17:49:45 +00:00
Jonas Maebe
9c22d594b0 + support for passing records in registers under darwin
* tcgpara now also has an intsize field, which contains the size in
    bytes of the whole parameter
2005-01-10 21:50:05 +00:00
Jonas Maebe
f9b99ad965 * remove "release subregA; allocate other_subreg_of_A" sequences so the
register renaming doesn't stop early
2005-01-03 14:59:28 +00:00
Jonas Maebe
d898b8dfb7 * no more moving the loading of regvars past conditional jumps 2004-12-30 14:51:22 +00:00
Jonas Maebe
f041b36ce7 * fixed checking of overlapping references 2004-12-30 13:49:42 +00:00
Jonas Maebe
53c04512cc * fixed several regvar related bugs, cycle with -OZp3r doesn't work
yet though
2004-12-28 18:01:40 +00:00
Jonas Maebe
b2869b3c75 * fixed internalerror when cycling with -O3p3u 2004-12-27 15:20:03 +00:00
peter
1da9e24cee * support sizeof()
* fix typecasting a constant like dword(4)
2004-12-22 17:09:55 +00:00
florian
c279c13d17 * the optimization fstp f;fld f to fst f disabled; leads to rounding problems 2004-12-18 15:21:56 +00:00
Jonas Maebe
84aa52942f * fixed tracking of usage of flags register
* fixed destroying of "memwrite"'s
  * fixed checking of entire sequences in all cases (previously this was
    only guaranteed if the new sequence was longer than the old one, and
    not if vice versa)
  * fixed wrong removal of sequences if a register load was already
    completely removed in the previous sequence (because in that case,
    that register has to be removed and renamed in the new sequence as
    well before removing the new sequence)
2004-12-18 15:16:10 +00:00
Jonas Maebe
a3627d9345 * fixed compilation with -dcsdebug -dallocregdebug 2004-12-18 14:07:35 +00:00
florian
0037f4a199 * fixed operand size calculation for sse operands
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
Jonas Maebe
bd04491f50 * patch from Peter to fix inlining of case statements 2004-11-30 18:13:39 +00:00
peter
06cfe01791 * os2 fixes for import
* asmsymtype support for intel reader
2004-11-29 18:50:15 +00:00
peter
8cf8c54609 * fixed varargs
* replaced dynarray with tlist
2004-11-22 22:01:19 +00:00
peter
2ad2e252a3 * allow spaces before : of a label 2004-11-21 21:36:13 +00:00
peter
89b1b583c9 * ttempcreatenode.create_reg merged into .create with parameter
whether a register is allowed
  * funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
florian
18f7aa97dd * changed funcret location back to tlocation 2004-11-21 17:17:03 +00:00
peter
e740a66636 * tparaitem removed, use tparavarsym instead
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
6c9c4c686c * small m68k updates to bring it up2date
* give better error for external local variable
2004-11-09 22:32:59 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
peter
f80f3fc0fa * shortstr compare with empty string fixed
* removed special i386 code
2004-11-01 12:43:28 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
Jonas Maebe
c9eba4e861 * fixed web bug #3378 2004-10-31 15:17:08 +00:00
peter
705868e816 * remove saveregister calling convention 2004-10-24 20:01:08 +00:00
peter
adb6f59eef * small regvar fixes
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
mazen
581b52422c - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
60c73cc0e5 * -Or fixes for open array 2004-10-13 21:12:51 +00:00
peter
8b3e00244f * length parameter for copyvaluearray changed to tlocation 2004-10-11 15:46:45 +00:00
Jonas Maebe
cf085fb9d0 * several fixes to allocregbetween() 2004-10-10 15:01:19 +00:00
Jonas Maebe
0cf348b3df * take into account the size of a write to determine whether a write to
one reference influences the contents of another reference
2004-10-06 19:24:38 +00:00
peter
f5471aef6e * more spilling rewrites 2004-10-05 20:41:01 +00:00
peter
fa3f491546 * range check errors fixed 2004-10-05 17:31:41 +00:00
peter
ee3585f56f * spilling code rewritten for x86. It now used the generic
spilling routines. Special x86 optimization still needs
    to be added.
  * Spilling fixed when both operands needed to be spilled
  * Cleanup of spilling routine, do_spill_readwritten removed
2004-10-04 20:46:22 +00:00
peter
8fb3536f6e * simple regvar support, not yet finished 2004-09-26 17:45:29 +00:00
peter
65c3ba277c * ungetregister is now only used for cpuregisters, renamed to
ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
peter
9b0243bccc * support byte() typecast
* support array index
2004-09-13 20:25:52 +00:00
armin
354004d803 * target netwlibc added (libc is preferred for newer netware versions) 2004-09-04 21:18:47 +00:00
Jonas Maebe
3a1e8981f4 * do not rename registers across conditional jumps 2004-08-17 16:34:58 +00:00
Jonas Maebe
d1b9c24cb1 * fixed some more potential regvar bugs 2004-07-23 13:30:19 +00:00
Jonas Maebe
1dd5fc2b47 * changed first_sse_imreg to first_mm_imreg 2004-07-09 23:30:13 +00:00
peter
b6ed8c482b * varargs calculation fixed, it's now the same as the other
targets
2004-07-09 23:09:02 +00:00
peter
4445ae854d * fixed parsing of strings in db 2004-07-06 19:47:19 +00:00
peter
b55648ad7d * align directive added 2004-06-23 14:54:46 +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
7dd6b85e01 * fix shl/shr with value > 63 2004-05-23 14:10:17 +00:00
peter
5358278ca1 tai_regalloc.allocation changed to ratype to notify rgobj of register size changes 2004-05-22 23:34:27 +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
6fc2ea345d * extra typecast to prevent range check 2004-05-19 23:30:18 +00:00
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
peter
ffb2785d2b * A_MOVSL renamed to A_MOVSD 2004-04-09 14:36:05 +00:00
peter
406eb57a59 * MOVSL fixed 2004-04-08 16:49:42 +00:00
olle
ea51b18d9b * bugfix for multiline string constants 2004-03-17 12:03:00 +00:00
Jonas Maebe
74836e0d0d * fixed refaddr bug that caused go32v2 cycle failure 2004-03-14 18:42:32 +00:00
florian
61f15e4ec4 * make cycle fixed
+ pic support for darwin
  + support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
Jonas Maebe
401d1891ae * fixed bug in ref_addr changes 2004-02-28 16:59:02 +00:00
Jonas Maebe
756dd463ff * fixed optimizer for new treference fields 2004-02-27 19:55:23 +00:00
olle
d6382f17f2 + added Tai_symbol_end 2004-02-27 13:42:52 +00:00