nickysn
|
511b1f37c1
|
* write the segment of aitconst_farptr on a separate line to avoid long symbol truncation, due to line length limit; this fixes compilation of sysutils in the medium memory model
git-svn-id: trunk@24879 -
|
2013-06-12 01:32:18 +00:00 |
|
nickysn
|
70cd05caa8
|
* fpc_setjmp and fpc_longjmp updated to support far code memory models
git-svn-id: trunk@24878 -
|
2013-06-11 23:59:30 +00:00 |
|
nickysn
|
0de550c2c9
|
* use an indirect jmp in fpc_longjmp
git-svn-id: trunk@24877 -
|
2013-06-11 23:47:30 +00:00 |
|
nickysn
|
07b9019c94
|
* jmp_buf.pc renamed to .ip and also changed to word
git-svn-id: trunk@24876 -
|
2013-06-11 22:51:06 +00:00 |
|
nickysn
|
8392c492cc
|
* jmp_buf.bp and .sp changed to word, because pointer will become 32-bit in far data memory models
git-svn-id: trunk@24875 -
|
2013-06-11 22:47:42 +00:00 |
|
nickysn
|
baa4d39ea3
|
+ apply extra_param_offset to all i8086 asm routines that use nostackframe
git-svn-id: trunk@24874 -
|
2013-06-11 21:10:47 +00:00 |
|
nickysn
|
5d4ebf0dca
|
+ added extra_param_offset constant for accessing parameters in asm routines with nostackframe
git-svn-id: trunk@24873 -
|
2013-06-11 21:08:43 +00:00 |
|
florian
|
980563d576
|
* several small errors fixed, float128<->float64 conversion works now
git-svn-id: trunk@24872 -
|
2013-06-11 21:00:26 +00:00 |
|
florian
|
92477a14b8
|
o patch by Max Nazholov:
* more C code ported
* missing exits fixed
* var-modifier of shortShift128Left fixed
* some range warnings fixed
git-svn-id: trunk@24871 -
|
2013-06-11 21:00:23 +00:00 |
|
florian
|
ff3295d8fd
|
* nostackframe is not allowed by newer FPCs for pascal functions/procedure (and was never recommended)
git-svn-id: trunk@24870 -
|
2013-06-11 20:04:33 +00:00 |
|
Károly Balogh
|
cdf3f3266b
|
implemented FileSetDate, improved FileCreate
git-svn-id: trunk@24869 -
|
2013-06-11 06:02:28 +00:00 |
|
nickysn
|
bb06899ec7
|
* clarified the comment for aitconst_farptr
git-svn-id: trunk@24868 -
|
2013-06-10 21:35:29 +00:00 |
|
nickysn
|
fa9c26f76f
|
+ medium memory model added to the compiler help messages
git-svn-id: trunk@24867 -
|
2013-06-10 21:04:54 +00:00 |
|
nickysn
|
d387182bd6
|
* when doing a pointer comparison on i8086, don't cast a far pointer to a near one (pchar), but use a far one instead
git-svn-id: trunk@24866 -
|
2013-06-10 20:53:11 +00:00 |
|
nickysn
|
894d400a7b
|
+ added is_farpointer(tdef) and is_hugepointer(tdef) helper functions to defutil
git-svn-id: trunk@24865 -
|
2013-06-10 20:50:05 +00:00 |
|
pierre
|
aae318403d
|
Fix a int64<->single conversion failure exposed in test/units/softfpu/sfttst.pp
git-svn-id: trunk@24864 -
|
2013-06-10 13:51:02 +00:00 |
|
nickysn
|
70dbd7f667
|
* far pointer aware conversion of method pointer to plain procvar
git-svn-id: trunk@24863 -
|
2013-06-10 09:56:45 +00:00 |
|
sergei
|
562714129f
|
* MIPS: get completely rid of LI macro, generate equivalent CPU instructions instead.
git-svn-id: trunk@24862 -
|
2013-06-10 02:07:21 +00:00 |
|
nickysn
|
6046edd8f9
|
+ i8086/n8086cnv.pas added to lazarus project
git-svn-id: trunk@24861 -
|
2013-06-10 01:19:22 +00:00 |
|
nickysn
|
b342588af1
|
+ i8086 specific far proc aware implementation of ttypeconvnode.second_proc_to_procvar
git-svn-id: trunk@24860 -
|
2013-06-10 01:19:01 +00:00 |
|
nickysn
|
9dbbffba61
|
+ added trefaddr.addr_seg for referencing the segment of a symbol
git-svn-id: trunk@24859 -
|
2013-06-10 01:16:37 +00:00 |
|
nickysn
|
57e84dc0b4
|
* set the proper size for far procsyms in tcgloadnode.pass_generate_code
git-svn-id: trunk@24858 -
|
2013-06-10 01:06:02 +00:00 |
|
nickysn
|
c9096ef806
|
* far pointer fix in taddrnode.pass_typecheck
git-svn-id: trunk@24857 -
|
2013-06-09 23:07:30 +00:00 |
|
nickysn
|
b81f0ab50d
|
+ implemented tcg8086.a_call_reg_far; very hacky, but still better than doing a near call, when it should be far
git-svn-id: trunk@24856 -
|
2013-06-09 22:16:40 +00:00 |
|
nickysn
|
62316da236
|
* a_call_reg moved to a_call_reg_near
git-svn-id: trunk@24855 -
|
2013-06-09 22:09:39 +00:00 |
|
nickysn
|
e4a1230356
|
+ added support for far pointer constants in the assembly output
git-svn-id: trunk@24854 -
|
2013-06-09 22:01:04 +00:00 |
|
nickysn
|
604b7c9deb
|
+ added cg.a_call_ref_near and a_call_ref_far
git-svn-id: trunk@24853 -
|
2013-06-09 20:22:47 +00:00 |
|
nickysn
|
10f7f0231e
|
* TExitProcInfo.SaveExit changed to CodePointer
git-svn-id: trunk@24852 -
|
2013-06-09 20:19:28 +00:00 |
|
nickysn
|
6431ebe7f3
|
* treat the nil node as equal to near, far and all the special x86 pointer types
git-svn-id: trunk@24851 -
|
2013-06-09 19:04:03 +00:00 |
|
nickysn
|
2809ed6fb9
|
* updated tfiledef.setsize to support the size of textrec in the medium memory model
git-svn-id: trunk@24850 -
|
2013-06-09 18:22:47 +00:00 |
|
nickysn
|
01f8989ebc
|
* textrec updated to use codepointer
git-svn-id: trunk@24849 -
|
2013-06-09 18:21:21 +00:00 |
|
nickysn
|
0d51ecdd00
|
* System.ExitProc type changed to CodePointer
git-svn-id: trunk@24848 -
|
2013-06-09 18:10:45 +00:00 |
|
nickysn
|
435a97059d
|
+ enabled the command line option for the medium memory model
git-svn-id: trunk@24847 -
|
2013-06-09 17:57:42 +00:00 |
|
nickysn
|
b5c032874f
|
* set the po_far flag by default in far code memory models
git-svn-id: trunk@24846 -
|
2013-06-09 17:54:29 +00:00 |
|
nickysn
|
093b87f50d
|
* far code support for the internal type
git-svn-id: trunk@24845 -
|
2013-06-09 17:53:54 +00:00 |
|
nickysn
|
bfd65ea550
|
* use tprocvardef(def).size (which takes into account far code/data) to determine cgsize for procvars in def_cgsize
git-svn-id: trunk@24844 -
|
2013-06-09 17:51:56 +00:00 |
|
nickysn
|
4a423ecc44
|
* System.InitProc changed to CodePointer
git-svn-id: trunk@24843 -
|
2013-06-09 17:49:38 +00:00 |
|
nickysn
|
ad29cab0aa
|
* DispCallByIDProc changed to CodePointer
git-svn-id: trunk@24842 -
|
2013-06-09 17:32:18 +00:00 |
|
nickysn
|
54c4c8155b
|
+ also added PCodePointer and PPCodePointer
git-svn-id: trunk@24841 -
|
2013-06-09 17:30:03 +00:00 |
|
nickysn
|
9b59809ac3
|
* TMethod.Code changed to CodePointer
git-svn-id: trunk@24840 -
|
2013-06-09 17:24:38 +00:00 |
|
nickysn
|
3e1e5cb7e8
|
+ added System.CodePointer - a pointer that is able to hold a procedure address in the current memory model
git-svn-id: trunk@24839 -
|
2013-06-09 17:23:31 +00:00 |
|
nickysn
|
0e4e329228
|
+ added defines for the i8086 code and data model; ptrint/ptruint made to follow the data pointer size
git-svn-id: trunk@24838 -
|
2013-06-09 16:06:14 +00:00 |
|
nickysn
|
1029636dfe
|
* far proc fixes in tcgcallnode.pass_generate_code
git-svn-id: trunk@24837 -
|
2013-06-09 14:21:03 +00:00 |
|
sergei
|
b9bbe8ba67
|
* tai_const.getcopy: Check that 'sym' is assigned before trying to call its method. Mantis #24574.
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 |
|