Commit Graph

40479 Commits

Author SHA1 Message Date
sergei
b9bbe8ba67 * tai_const.getcopy: Check that 'sym' is assigned before trying to call its method. Mantis .
git-svn-id: trunk@24836 -
2013-06-09 14:19:09 +00:00
nickysn
b6c979e55f + added tabstractprocdef.address_size which returns the actual address size of the proc, taking into account far procs
git-svn-id: trunk@24835 -
2013-06-09 13:39:13 +00:00
nickysn
3631198b34 + declare the text segment with class=code in the nasm header for far code memory models also
git-svn-id: trunk@24834 -
2013-06-09 13:01:40 +00:00
nickysn
9a6c242f97 + emit proper far calls/jmps for addr_far in the nasm assembly output
git-svn-id: trunk@24833 -
2013-06-09 12:59:44 +00:00
nickysn
f5a9442910 + added the appropriate startup code names for each memory model
git-svn-id: trunk@24832 -
2013-06-09 12:44:03 +00:00
nickysn
3280514d2b * in i8086 far code models, put the code in a section called module_name+'_TEXT', so each unit gets a separate code segment
git-svn-id: trunk@24831 -
2013-06-09 12:26:33 +00:00
nickysn
b74af9fda0 * declare the text segment with class=code on i8086-msdos
git-svn-id: trunk@24830 -
2013-06-09 12:13:52 +00:00
marco
5de259e487 * added pointer types for int8..int32 types after request on community site.
git-svn-id: trunk@24829 -
2013-06-09 11:21:51 +00:00
nickysn
af54de6d56 + added tcg8086.a_call_name_far and .a_call_name_static_far; a_call_name and a_call_name_static overriden and call near or far depending on the memory model
git-svn-id: trunk@24828 -
2013-06-09 10:54:30 +00:00
nickysn
ec497ae11e + the regular tcgx86.a_call_name and .a_call_name_static moved to .a_call_name_near and .a_call_name_static_near, because a_call_name and a_call_name_static are going to be overriden in tcg8086
git-svn-id: trunk@24827 -
2013-06-09 10:42:39 +00:00
nickysn
2279e51a95 + added trefaddr.addr_far for emitting far calls
git-svn-id: trunk@24826 -
2013-06-09 10:24:06 +00:00
pierre
415444a3a5 Fix compilation failure if DEBUG conditional is set, which needs regexpr package
git-svn-id: trunk@24825 -
2013-06-09 08:31:58 +00:00
sergei
94d1e0c81c + Added KEY_WOW64_64KEY and KEY_WOW64_32KEY to Windows unit and fcl-registry/src/regdef.inc
* Fixed TRegistry.OpenKeyReadOnly and TRegistry.KeyExists methods so they preserve KEY_WOW64_xxKEY bits passed into TRegistry constructor. Based on patch from Maciej Kaczkowski, resolves , 

git-svn-id: trunk@24824 -
2013-06-09 00:15:29 +00:00
nickysn
c1984bdf56 * take into account far code and far data in tprocvardef.size
git-svn-id: trunk@24823 -
2013-06-08 23:32:47 +00:00
sergei
86637a9ff9 * MIPS: pi_needs_got is necessary when doing unsigned to float conversions (it uses a global constant) and also if procedure does any calls in PIC mode.
git-svn-id: trunk@24822 -
2013-06-08 23:29:50 +00:00
sergei
5fe8b516d4 * Put string with unit name into sec_rodata_norel (other strings are already there since r23017, this one was missed).
git-svn-id: trunk@24821 -
2013-06-08 22:59:18 +00:00
nickysn
cd5255c147 + added startup code for the medium memory model
git-svn-id: trunk@24820 -
2013-06-08 22:41:43 +00:00
nickysn
5966cc088d * got rid of tpointerdef.update_savesize, overrode size instead
git-svn-id: trunk@24819 -
2013-06-08 21:23:16 +00:00
nickysn
6fdd48878f * adjust parameters of far procedures for the extra segment that's pushed on the stack by the far call instruction
git-svn-id: trunk@24818 -
2013-06-08 20:42:13 +00:00
nickysn
aa63efc27e * emit a far ret instruction in the exit code of far procedures
git-svn-id: trunk@24817 -
2013-06-08 20:40:50 +00:00
nickysn
a9c949e551 * the memory model const sets introduced in r24812 moved to i8086/cpuinfo.pas
git-svn-id: trunk@24816 -
2013-06-08 19:52:28 +00:00
nickysn
381c996e53 + added po_far to tprocoptions
git-svn-id: trunk@24815 -
2013-06-08 16:34:30 +00:00
nickysn
fcc84e5d96 + added the x86/*.pas files to ppc8086.lpi for easier access from the lazarus project inspector
git-svn-id: trunk@24814 -
2013-06-08 16:33:56 +00:00
nickysn
9eecec4910 + added const sets for the i8086 memory models based on the code and data model type
git-svn-id: trunk@24812 -
2013-06-08 14:36:12 +00:00
nickysn
54ec2f4b4b * makefiles updated after the msdos loader changes
git-svn-id: trunk@24810 -
2013-06-05 16:43:56 +00:00
nickysn
e28852d07d * prt0 startup code file for small model renamed to prt0s
git-svn-id: trunk@24809 -
2013-06-05 16:41:39 +00:00
nickysn
c124283a36 * msdos startup code for tiny and small memory models moved to a shared nasm include file to avoid code duplication
git-svn-id: trunk@24808 -
2013-06-05 16:38:01 +00:00
pierre
55252e82f2 Remove readln and add mode delphi
git-svn-id: trunk@24807 -
2013-06-05 15:42:46 +00:00
marco
2a09070108 * add INVALID_FILE_SIZE mentioned on Lazarus list.
git-svn-id: trunk@24806 -
2013-06-05 13:23:10 +00:00
michael
6411d31787 * Changed sharing mode
git-svn-id: trunk@24805 -
2013-06-04 15:48:42 +00:00
yury
7e5af23ace * Android: There are cases when libc "environ" var may be NULL. Check for such case and provide fake valid environment. Bug .
git-svn-id: trunk@24804 -
2013-06-04 15:21:29 +00:00
lacak
b7d5ed4bd7 fcl-db: sqldb: Some SQLConnections does not support statement [un]preparation, so let them do cleanup f.e. cancel pending queries and/or free resultset when dataset is closed.
git-svn-id: trunk@24803 -
2013-06-04 10:11:38 +00:00
lacak
c5cf5b5b2f fcl-db: bufdataset: Fix wrong initialization of OrgBufID in new blob buffer.
git-svn-id: trunk@24802 -
2013-06-04 05:47:36 +00:00
nickysn
4cd26988ad + added prt0t.o (loader for i8086-msdos tiny memory model) to the makefiles
git-svn-id: trunk@24801 -
2013-06-03 21:11:45 +00:00
sergei
2868a30cce + Added mips32r2 opcodes needed for pic32.
* Output registers of type R_SPECIALREGISTER as numbers.
+ For MTC0/MFC0 instructions, set type of first operand to R_SPECIALREGISTER, since it designates a coprocessor register.

git-svn-id: trunk@24799 -
2013-06-03 20:01:30 +00:00
sergei
cc8772cf92 * sizeof(x), typeof(x): if "x" is typenode, request GOT for PIC because a global VMT label will be loaded.
* typeinfo(x): transform into rttinode (which does request GOT) during pass 1, so pass 2 is not needed. 

git-svn-id: trunk@24798 -
2013-06-03 18:07:32 +00:00
lacak
b17cdf4e09 fcl-db: bufdataset: use call to FreeBlobBuffers instead of separate Freemem+Dispose
git-svn-id: trunk@24797 -
2013-06-03 10:56:31 +00:00
lacak
f520795cfe fcl-db: formatting (unification char-case)
git-svn-id: trunk@24796 -
2013-06-03 06:43:35 +00:00
lacak
299938e784 fcl-db: sqldb: FSelectable must be set to true by default, to work for TSQLConnections which does not provide information about statement (if there will be resultset) at preparation stage.
git-svn-id: trunk@24795 -
2013-06-03 06:29:51 +00:00
paul
fa0d5bb66e rtl: add tkBool into TTypeData case (issue )
git-svn-id: trunk@24794 -
2013-06-03 00:59:23 +00:00
nickysn
b409d600ee + implemented the tiny memory model for i8086-msdos; we now produce working dos .com files as well
git-svn-id: trunk@24793 -
2013-06-02 23:02:10 +00:00
Jeppe Johansen
f3273fa87d Optimize Add/Sub+Ldr/Str by using preindexed references
git-svn-id: trunk@24789 -
2013-06-02 21:51:12 +00:00
joost
f8a6ddd460 * Fixed paths in fpmake.pp files
git-svn-id: trunk@24787 -
2013-06-02 21:20:14 +00:00
joost
07325e2b80 * fpcres depends on paszlib
git-svn-id: trunk@24786 -
2013-06-02 21:07:24 +00:00
joost
53d1a08e03 * Do not use an underscore in the directory-names of winunits-base and -jedi
git-svn-id: trunk@24784 -
2013-06-02 18:16:10 +00:00
joost
df4191acb3 * Handle the location of each package at run-time, not at compilation time
* Added a fpmake.pp in the root, to compile the utils and packages in one go

git-svn-id: trunk@24783 -
2013-06-02 17:55:23 +00:00
Jeppe Johansen
2d823452b7 The scheduler pass of the ARM optimizer left markers in the instruction list, which could prevent further peephole optimizations
git-svn-id: trunk@24781 -
2013-06-02 16:37:41 +00:00
nickysn
7edabc64e6 * rm support for Mem without segment on i8086
git-svn-id: trunk@24780 -
2013-06-02 16:20:26 +00:00
nickysn
dd0d2d6bf5 * fixed the spurious compiler warnings and added proper rangechecking when using Mem[] on i8086
git-svn-id: trunk@24779 -
2013-06-02 15:18:05 +00:00
Jeppe Johansen
570b40faed Signed modulus by 2 on ARM with no division is optimized to a series of instructions instead of calling fpc_mod_longint.
An ASR is removed from signed division by 2.

git-svn-id: trunk@24778 -
2013-06-02 14:44:06 +00:00