* merged Wiktor's Watcom patches in 1.1

This commit is contained in:
florian 2003-09-05 17:41:12 +00:00
parent f34e9e5adf
commit 22f1ff8da4
18 changed files with 173 additions and 58 deletions

View File

@ -29,6 +29,9 @@ Unit catch;
{ go32v2 stack check goes nuts if ss is not the data selector (PM) }
{$S-}
{$endif}
{$ifdef watcom} // wiktor: pewnei nie potrzeba
{$S-}
{$endif}
{$ifdef DEBUG}
{$define NOCATCH}
@ -47,6 +50,10 @@ uses
{$endif}
{$endif}
{$ifdef go32v2}
{$define has_signal}
dpmiexcp,
{$endif}
{$ifdef watcom}
{$define has_signal}
dpmiexcp,
{$endif}
@ -109,7 +116,10 @@ end.
{
$Log$
Revision 1.13 2003-04-23 10:10:31 peter
Revision 1.14 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.13 2003/04/23 10:10:31 peter
* unix signalhandler has longint argument
Revision 1.12 2003/01/10 21:37:48 marco

View File

@ -117,6 +117,10 @@ uses
{$ifdef GO32V2}
emu387,
{$endif GO32V2}
{$ifdef WATCOM} // wiktor: pewnie nie potrzeba
emu387,
{ dpmiexcp, }
{$endif WATCOM}
{$endif}
{$ifdef USEEXCEPT}
tpexcept,
@ -399,7 +403,10 @@ end;
end.
{
$Log$
Revision 1.39 2003-09-03 11:18:36 florian
Revision 1.40 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.39 2003/09/03 11:18:36 florian
* fixed arm concatcopy
+ arm support in the common compiler sources added
* moved some generic cg code around

View File

@ -29,6 +29,9 @@ unit fppu;
{$ifdef GO32V2}
{$define SHORT_ON_FILE_HANDLES}
{$endif GO32V2}
{$ifdef WATCOM}
{$define SHORT_ON_FILE_HANDLES}
{$endif WATCOM}
interface
@ -1418,7 +1421,10 @@ uses
end.
{
$Log$
Revision 1.38 2003-08-23 22:29:24 peter
Revision 1.39 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.38 2003/08/23 22:29:24 peter
* reload flagged units when interface is loaded
Revision 1.37 2003/06/08 11:40:14 peter

View File

@ -1103,6 +1103,10 @@ implementation
{$ifdef go32v2}
var
hs : string;
{$endif}
{$ifdef watcom}
var
hs : string;
{$endif}
begin
GetShortName:=n;
@ -1119,6 +1123,11 @@ implementation
hs:=n;
if Dos.GetShortName(hs) then
GetShortName:=hs;
{$endif}
{$ifdef watcom}
hs:=n;
if Dos.GetShortName(hs) then
GetShortName:=hs;
{$endif}
end;
@ -1602,7 +1611,10 @@ implementation
end.
{
$Log$
Revision 1.94 2003-09-04 21:37:29 olle
Revision 1.95 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.94 2003/09/04 21:37:29 olle
+ added new lagnuage mode: MAC
Revision 1.93 2003/09/03 11:18:36 florian

View File

@ -171,6 +171,21 @@ implementation
AsmWrite(symbol.name);
first:=false;
end;
if (aktoutputformat = as_i386_wasm) then
begin
if offset<0 then
begin
AsmWrite(tostr(offset));
first:=false;
end
else if (offset>0) then
begin
if not first then
AsmWrite('+');
AsmWrite(tostr(offset));
first:=false;
end;
end;
if (base<>NR_NO) then
begin
if not(first) then
@ -189,16 +204,19 @@ implementation
if scalefactor<>0 then
AsmWrite('*'+tostr(scalefactor));
end;
if offset<0 then
begin
AsmWrite(tostr(offset));
first:=false;
end
else if (offset>0) then
begin
AsmWrite('+'+tostr(offset));
first:=false;
end;
if (aktoutputformat <> as_i386_wasm) then
begin
if offset<0 then
begin
AsmWrite(tostr(offset));
first:=false;
end
else if (offset>0) then
begin
AsmWrite('+'+tostr(offset));
first:=false;
end;
end;
if first then
AsmWrite('0');
AsmWrite(']');
@ -729,7 +747,7 @@ ait_stab_function_name : ;
begin
if tasmsymbol(p).defbind=AB_EXTERNAL then
begin
if (aktoutputformat = as_i386_masm) then
if (aktoutputformat in [as_i386_masm,as_i386_wasm]) then
currentasmlist.AsmWriteln(#9'EXTRN'#9+p.name
+': NEAR')
else
@ -749,7 +767,7 @@ ait_stab_function_name : ;
begin
DoAssemble:=Inherited DoAssemble;
{ masm does not seem to recognize specific extensions and uses .obj allways PM }
if (aktoutputformat = as_i386_masm) then
if (aktoutputformat in [as_i386_masm,as_i386_wasm]) then
begin
if not(cs_asm_extern in aktglobalswitches) then
begin
@ -848,13 +866,36 @@ ait_stab_function_name : ;
'','','')
);
as_i386_wasm_info : tasminfo =
(
id : as_i386_wasm;
idtxt : 'WASM';
asmbin : 'wasm';
asmcmd : '$ASM -5s -fpc -fp3 -ms -zq -Fo=$OBJ';
supported_target : system_any; { what should I write here ?? }
outputbinary: false;
allowdirect : true;
needar : true;
labelprefix_only_inside_procedure : false;
labelprefix : '@@';
comment : '; ';
secnames : ('',
'CODE','DATA','BSS',
'','','','','','',
'','','')
);
initialization
RegisterAssembler(as_i386_tasm_info,T386IntelAssembler);
RegisterAssembler(as_i386_masm_info,T386IntelAssembler);
RegisterAssembler(as_i386_wasm_info,T386IntelAssembler);
end.
{
$Log$
Revision 1.37 2003-09-03 15:55:01 peter
Revision 1.38 2003-09-05 17:41:13 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.37 2003/09/03 15:55:01 peter
* NEWRA branch merged
Revision 1.36.2.3 2003/08/31 15:46:26 peter

View File

@ -66,6 +66,9 @@ implementation
{$ifndef NOTARGETWDOSX}
,t_wdosx
{$endif}
{$ifndef NOTARGETWATCOM}
,t_watcom
{$endif}
{**************************************
Assemblers
@ -88,7 +91,10 @@ implementation
end.
{
$Log$
Revision 1.12 2003-05-20 23:54:00 florian
Revision 1.13 2003-09-05 17:41:13 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.12 2003/05/20 23:54:00 florian
+ basic darwin support added
Revision 1.11 2003/04/25 12:04:31 florian

View File

@ -2152,6 +2152,7 @@ option_help_pages=11025_[
3*2Aas_assemble using GNU AS
3*2Anasmcoff_coff (Go32v2) file using Nasm
3*2Anasmelf_elf32 (Linux) file using Nasm
3*2Awasm_obj file using Wasm (Watcom)
3*2Anasmobj_obj file using Nasm
3*2Amasm_obj file using Masm (Microsoft)
3*2Atasm_obj file using Tasm (Borland)
@ -2176,6 +2177,7 @@ option_help_pages=11025_[
3*1T<x>_Target operating system:
3*2TEMX_OS/2 via EMX (including EMX/RSX extender)
3*2TGO32V2_Version 2 of DJ Delorie DOS extender
3*2TWATCOM_Watcom compatible DOS extender
3*2TLINUX_Linux
3*2TNETWARE_Novell Netware Module (clib)
3*2TOS2_OS/2 / eComStation

View File

@ -1986,6 +1986,7 @@ option_help_pages=11025_[
3*2Anasmobj_plik obj przy uľyciu Nasm
3*2Amasm_plik obj przy uľyciu Masm (Microsoft)
3*2Atasm_plik obj przy uľyciu Tasm (Borland)
3*2Atasm_plik obj przy u¾yciu Wasm (Watcom)
3*2Acoff_bezpo<70>redni zapis do pliku coff (Go32v2)
3*2Apecoff_bezpo<70>redni zapis do pliku pecoff (Win32)
3*1R<x>_styl zapisu asemblera:
@ -2009,6 +2010,7 @@ option_help_pages=11025_[
3*2TFREEBSD_FreeBSD
3*2TGO32V1_DOS extender DJ Delorie wersja 1
3*2TGO32V2_DOS extender DJ Delorie wersja 2
3*2TWATCOM_DOS extendery zgodne z Watcomem
3*2TLINUX_Linux
3*2TNETBSD_NetBSD
3*2TOPENBSD_OpenBSD(a.out)

View File

@ -1986,6 +1986,7 @@ option_help_pages=11025_[
3*2Anasmobj_plik obj przy użyciu Nasm
3*2Amasm_plik obj przy użyciu Masm (Microsoft)
3*2Atasm_plik obj przy użyciu Tasm (Borland)
3*2Awasm_plik obj przy u¿yciu Wasm (Watcom)
3*2Acoff_bezpośredni zapis do pliku coff (Go32v2)
3*2Apecoff_bezpośredni zapis do pliku pecoff (Win32)
3*1R<x>_styl zapisu asemblera:
@ -2009,6 +2010,7 @@ option_help_pages=11025_[
3*2TFREEBSD_FreeBSD
3*2TGO32V1_DOS extender DJ Delorie wersja 1
3*2TGO32V2_DOS extender DJ Delorie wersja 2
3*2TWATCOM_DOS extendery zgodne z Watcomem
3*2TLINUX_Linux
3*2TNETBSD_NetBSD
3*2TOPENBSD_OpenBSD(a.out)

View File

@ -628,7 +628,7 @@ const
option_info=11024;
option_help_pages=11025;
MsgTxtSize = 35254;
MsgTxtSize = 35334;
MsgIdxMax : array[1..20] of longint=(
17,63,195,52,57,44,98,19,35,60,

View File

@ -1,7 +1,7 @@
{$ifdef Delphi}
const msgtxt : array[0..000146] of string[240]=(
const msgtxt : array[0..000147] of string[240]=(
{$else Delphi}
const msgtxt : array[0..000146,1..240] of char=(
const msgtxt : array[0..000147,1..240] of char=(
{$endif Delphi}
'01000_T_Compiler: $1'#000+
'01001_D_Compiler OS: $1'#000+
@ -793,58 +793,60 @@ const msgtxt : array[0..000146,1..240] of char=(
'3*2Aas_assemble using GNU AS'#010+
'3*2Anasmcoff_coff (Go32v2) file using Nasm'#010+
'3*2Anasmelf_elf32 (Linux) file using Nasm'#010+
'3*2Awasm_obj file using Wasm (Watcom)'#010+
'3*2Anasmobj_obj file using Nasm'#010+
'3*2Amasm_obj file using Masm (Microsoft)'#010+
'3*2Atasm_ob','j file using Tasm (Borland)'#010+
'3*2Amasm_obj f','ile using Masm (Microsoft)'#010+
'3*2Atasm_obj file using Tasm (Borland)'#010+
'3*2Acoff_coff (Go32v2) using internal writer'#010+
'3*2Apecoff_pecoff (Win32) using internal writer'#010+
'3*1R<x>_assembler reading style:'#010+
'3*2Ratt_read AT&T style assembler'#010+
'3*2Rintel_read Intel style assembler'#010+
'3*2Rdirect_copy',' assembler text directly to assembler file'#010+
'3*2Rintel_read',' Intel style assembler'#010+
'3*2Rdirect_copy assembler text directly to assembler file'#010+
'3*1O<x>_optimizations:'#010+
'3*2Og_generate smaller code'#010+
'3*2OG_generate faster code (default)'#010+
'3*2Or_keep certain variables in registers'#010+
'3*2Ou_enable uncertain optimizations (see docs)'#010+
'3*2O1_level 1 optim','izations (quick optimizations)'#010+
'3*2Ou_enable uncertain optimi','zations (see docs)'#010+
'3*2O1_level 1 optimizations (quick optimizations)'#010+
'3*2O2_level 2 optimizations (-O1 + slower optimizations)'#010+
'3*2O3_level 3 optimizations (-O2 repeatedly, max 5 times)'#010+
'3*2Op<x>_target processor:'#010+
'3*3Op1_set target processor to 386/486'#010+
'3*3Op2_set target processor ','to Pentium/PentiumMMX (tm)'#010+
'3*3Op1_set target processor t','o 386/486'#010+
'3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#010+
'3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#010+
'3*1T<x>_Target operating system:'#010+
'3*2TEMX_OS/2 via EMX (including EMX/RSX extender)'#010+
'3*2TGO32V2_Version 2 of DJ Delorie DOS extender'#010+
'3*2TGO32V2_Version 2 of DJ Delorie DOS',' extender'#010+
'3*2TWATCOM_Watcom compatible DOS extender'#010+
'3*2TLINUX_Linux'#010+
'3*2TNETWARE_','Novell Netware Module (clib)'#010+
'3*2TNETWARE_Novell Netware Module (clib)'#010+
'3*2TOS2_OS/2 / eComStation'#010+
'3*2TSUNOS_SunOS/Solaris'#010+
'3*2TWDOSX_WDOSX DOS extender'#010+
'3*2TWIN32_Windows 32 Bit'#010+
'3*1W<x>_Win32-like target options'#010+
'3*1W<x>_Win32-like target ','options'#010+
'3*2WB<x>_Set Image base to Hexadecimal <x> value'#010+
'3*2WC_Specify console t','ype application'#010+
'3*2WC_Specify console type application'#010+
'3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+
'3*2WF_Specify full-screen type application (OS/2 only)'#010+
'3*2WG_Specify graphic type application'#010+
'3*2WG_Specify graphic type applicatio','n'#010+
'3*2WN_Do not generate relocation code (necessary for debugging)'#010+
'3*2WR_Generate',' relocation code'#010+
'3*2WR_Generate relocation code'#010+
'6*1A<x>_output format'#010+
'6*2Aas_Unix o-file using GNU AS'#010+
'6*2Agas_GNU Motorola assembler'#010+
'6*2Amit_MIT Syntax (old GAS)'#010+
'6*2Amot_Standard Motorola assembler'#010+
'6*2Amot_Standard Motorola ass','embler'#010+
'6*1O_optimizations:'#010+
'6*2Oa_turn on the optimizer'#010+
'6*2Og_generate smaller co','de'#010+
'6*2Og_generate smaller code'#010+
'6*2OG_generate faster code (default)'#010+
'6*2Ox_optimize maximum (still BUGGY!!!)'#010+
'6*2O0_set target processor to a MC68000'#010+
'6*2O2_set target processor to a MC68020+ (default)'#010+
'6*2O2_set target processor to a MC68020+',' (default)'#010+
'6*1R<x>_assembler reading style:'#010+
'6*2RMOT_read motorola style assemble','r'#010+
'6*2RMOT_read motorola style assembler'#010+
'6*1T<x>_Target operating system:'#010+
'6*2TAMIGA_Commodore Amiga'#010+
'6*2TATARI_Atari ST/STe/TT'#010+
@ -852,6 +854,6 @@ const msgtxt : array[0..000146,1..240] of char=(
'6*2TLINUX_Linux-68k'#010+
'6*2TPALMOS_PalmOS'#010+
'**1*_'#010+
'**1?_shows this help'#010+
'**1?','_shows this help'#010+
'**1h_shows this help without waiting'#000
);

View File

@ -1851,13 +1851,13 @@ begin
inputextension:=target_info.pasext;
end;
{ Add paths specified with parameters to the searchpaths }
{ Add paths specified with parameters to the searchpaths }
UnitSearchPath.AddList(option.ParaUnitPath,true);
ObjectSearchPath.AddList(option.ParaObjectPath,true);
IncludeSearchPath.AddList(option.ParaIncludePath,true);
LibrarySearchPath.AddList(option.ParaLibraryPath,true);
{ add unit environment and exepath to the unit search path }
{ add unit environment and exepath to the unit search path }
if inputdir<>'' then
Unitsearchpath.AddPath(inputdir,true);
if not disable_configfile then
@ -1906,7 +1906,7 @@ begin
objectsearchpath.AddList(unitsearchpath,false);
librarysearchpath.AddList(unitsearchpath,false);
{ switch assembler if it's binary and we got -a on the cmdline }
{ switch assembler if it's binary and we got -a on the cmdline }
if (cs_asm_leave in initglobalswitches) and
(target_asm.outputbinary) then
begin
@ -1922,7 +1922,7 @@ begin
Message1(option_asm_forced,target_asm.idtxt);
end;
{ turn off stripping if compiling with debuginfo or profile }
{ turn off stripping if compiling with debuginfo or profile }
if (cs_debuginfo in initmoduleswitches) or
(cs_profile in initmoduleswitches) then
exclude(initglobalswitches,cs_link_strip);
@ -1956,7 +1956,10 @@ finalization
end.
{
$Log$
Revision 1.102 2003-09-03 21:06:05 peter
Revision 1.103 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.102 2003/09/03 21:06:05 peter
* powerpc needs software int64 to double
Revision 1.101 2003/09/03 15:55:01 peter
@ -2143,5 +2146,4 @@ end.
Revision 1.65 2002/04/04 18:39:45 carl
+ added wdosx support (patch from Pavel)
}

View File

@ -257,7 +257,7 @@ implementation
end
{ address }
else if is_constintnode(pt) and
((target_info.system=system_i386_go32v2) or
((target_info.system in [system_i386_go32v2,system_i386_watcom]) or
(m_objfpc in aktmodeswitches) or
(m_delphi in aktmodeswitches)) then
begin
@ -266,7 +266,7 @@ implementation
abssym.abstyp:=toaddr;
abssym.absseg:=false;
abssym.address:=tordconstnode(pt).value;
if (target_info.system=system_i386_go32v2) and
if (target_info.system in [system_i386_go32v2,system_i386_watcom]) and
try_to_consume(_COLON) then
begin
pt.free;
@ -601,7 +601,10 @@ implementation
end.
{
$Log$
Revision 1.48 2003-07-02 22:18:04 peter
Revision 1.49 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.48 2003/07/02 22:18:04 peter
* paraloc splitted in callerparaloc,calleeparaloc
* sparc calling convention updates

View File

@ -1593,7 +1593,7 @@ implementation
begin
p2:=comp_expr(true);
{ support SEG:OFS for go32v2 Mem[] }
if (target_info.system=system_i386_go32v2) and
if (target_info.system in [system_i386_go32v2,system_i386_watcom]) and
(p1.nodetype=loadn) and
assigned(tloadnode(p1).symtableentry) and
assigned(tloadnode(p1).symtableentry.owner.name) and
@ -2419,7 +2419,10 @@ implementation
end.
{
$Log$
Revision 1.126 2003-08-23 22:29:51 peter
Revision 1.127 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.126 2003/08/23 22:29:51 peter
* fixed static class check for properties
Revision 1.125 2003/08/23 18:41:52 peter

View File

@ -446,7 +446,7 @@ implementation
AddUnit('ObjPas');
{ Profile unit? Needed for go32v2 only }
if (cs_profile in aktmoduleswitches) and
(target_info.system=system_i386_go32v2) then
(target_info.system in [system_i386_go32v2,system_i386_watcom]) then
AddUnit('Profile');
{ Units only required for main module }
if not(current_module.is_unit) then
@ -1465,7 +1465,10 @@ implementation
end.
{
$Log$
Revision 1.120 2003-08-23 22:29:24 peter
Revision 1.121 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.120 2003/08/23 22:29:24 peter
* reload flagged units when interface is loaded
Revision 1.119 2003/08/21 14:47:41 peter

View File

@ -146,6 +146,9 @@ uses
{$ifdef go32v2}
catch,
{$endif}
{$ifdef WATCOM}
catch,
{$endif}
{$endif NOCATCH}
{$endif FPC}
globals,compiler;
@ -196,7 +199,10 @@ begin
end.
{
$Log$
Revision 1.25 2003-09-03 11:18:37 florian
Revision 1.26 2003-09-05 17:41:12 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.25 2003/09/03 11:18:37 florian
* fixed arm concatcopy
+ arm support in the common compiler sources added
* moved some generic cg code around

View File

@ -113,7 +113,8 @@ interface
system_i386_EMX, { 28 }
system_powerpc_netbsd, { 29 }
system_powerpc_openbsd, { 30 }
system_arm_linux { 31 }
system_arm_linux, { 31 }
system_i386_watcom { 32 }
);
tasm = (as_none
@ -127,6 +128,7 @@ interface
,as_i386_nasmobj
,as_i386_tasm
,as_i386_masm
,as_i386_wasm
,as_i386_coff
,as_i386_pecoff
,as_i386_elf32
@ -695,7 +697,10 @@ finalization
end.
{
$Log$
Revision 1.67 2003-08-08 15:49:24 olle
Revision 1.68 2003-09-05 17:41:13 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.67 2003/08/08 15:49:24 olle
* merged macos entry/exit code generation into the general one.
Revision 1.66 2003/07/21 11:52:57 florian

View File

@ -1336,7 +1336,7 @@ unit cgx86;
include(rg.used_in_proc_int,RS_EDX);
end;
system_i386_go32v2:
system_i386_go32v2,system_i386_watcom:
begin
a_call_name(list,'MCOUNT');
end;
@ -1516,7 +1516,10 @@ unit cgx86;
end.
{
$Log$
Revision 1.59 2003-09-03 15:55:02 peter
Revision 1.60 2003-09-05 17:41:13 florian
* merged Wiktor's Watcom patches in 1.1
Revision 1.59 2003/09/03 15:55:02 peter
* NEWRA branch merged
Revision 1.58.2.5 2003/08/31 20:40:50 daniel