mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 03:29:33 +02:00
+ added an i8086-embedded target support to the compiler (RTL and makefile
support are not done yet) git-svn-id: trunk@33999 -
This commit is contained in:
parent
e022ba1b53
commit
c2305809dc
@ -41,6 +41,9 @@ implementation
|
|||||||
{$ifndef NOTARGETWIN}
|
{$ifndef NOTARGETWIN}
|
||||||
,t_win16
|
,t_win16
|
||||||
{$endif}
|
{$endif}
|
||||||
|
{$ifndef NOTARGETEMBEDDED}
|
||||||
|
,t_embed
|
||||||
|
{$endif}
|
||||||
|
|
||||||
{**************************************
|
{**************************************
|
||||||
Assemblers
|
Assemblers
|
||||||
|
@ -2723,7 +2723,7 @@ implementation
|
|||||||
idtxt : 'OMF';
|
idtxt : 'OMF';
|
||||||
asmbin : '';
|
asmbin : '';
|
||||||
asmcmd : '';
|
asmcmd : '';
|
||||||
supported_targets : [system_i8086_msdos];
|
supported_targets : [system_i8086_msdos,system_i8086_embedded];
|
||||||
flags : [af_outputbinary,af_no_debug];
|
flags : [af_outputbinary,af_no_debug];
|
||||||
labelprefix : '..@';
|
labelprefix : '..@';
|
||||||
comment : '; ';
|
comment : '; ';
|
||||||
|
@ -2248,7 +2248,7 @@ begin
|
|||||||
'm':
|
'm':
|
||||||
begin
|
begin
|
||||||
{$if defined(i8086)}
|
{$if defined(i8086)}
|
||||||
if (target_info.system in [system_i8086_msdos,system_i8086_win16]) then
|
if (target_info.system in [system_i8086_msdos,system_i8086_win16,system_i8086_embedded]) then
|
||||||
begin
|
begin
|
||||||
case Upper(Copy(More,j+1,255)) of
|
case Upper(Copy(More,j+1,255)) of
|
||||||
'TINY': init_settings.x86memorymodel:=mm_tiny;
|
'TINY': init_settings.x86memorymodel:=mm_tiny;
|
||||||
@ -2323,7 +2323,7 @@ begin
|
|||||||
't':
|
't':
|
||||||
begin
|
begin
|
||||||
{$if defined(i8086)}
|
{$if defined(i8086)}
|
||||||
if (target_info.system in [system_i8086_msdos]) then
|
if (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
begin
|
begin
|
||||||
case Upper(Copy(More,j+1,255)) of
|
case Upper(Copy(More,j+1,255)) of
|
||||||
'EXE': SetAppType(app_cui);
|
'EXE': SetAppType(app_cui);
|
||||||
@ -3085,7 +3085,7 @@ begin
|
|||||||
{$endif i8086}
|
{$endif i8086}
|
||||||
|
|
||||||
if (paratargetdbg in [dbg_dwarf2,dbg_dwarf3]) and
|
if (paratargetdbg in [dbg_dwarf2,dbg_dwarf3]) and
|
||||||
not(target_info.system in (systems_darwin+[system_i8086_msdos])) then
|
not(target_info.system in (systems_darwin+[system_i8086_msdos,system_i8086_embedded])) then
|
||||||
begin
|
begin
|
||||||
{ smartlink creation does not yet work with DWARF
|
{ smartlink creation does not yet work with DWARF
|
||||||
debug info on most targets, but it works in internal assembler }
|
debug info on most targets, but it works in internal assembler }
|
||||||
|
@ -1165,7 +1165,7 @@ implementation
|
|||||||
abssym.addroffset:=Tordconstnode(pt).value.svalue;
|
abssym.addroffset:=Tordconstnode(pt).value.svalue;
|
||||||
{$if defined(i386) or defined(i8086)}
|
{$if defined(i386) or defined(i8086)}
|
||||||
tcpuabsolutevarsym(abssym).absseg:=false;
|
tcpuabsolutevarsym(abssym).absseg:=false;
|
||||||
if (target_info.system in [system_i386_go32v2,system_i386_watcom,system_i8086_msdos,system_i8086_win16]) and
|
if (target_info.system in [system_i386_go32v2,system_i386_watcom,system_i8086_msdos,system_i8086_win16,system_i8086_embedded]) and
|
||||||
try_to_consume(_COLON) then
|
try_to_consume(_COLON) then
|
||||||
begin
|
begin
|
||||||
pt.free;
|
pt.free;
|
||||||
|
@ -2080,7 +2080,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
p2:=comp_expr([ef_accept_equal]);
|
p2:=comp_expr([ef_accept_equal]);
|
||||||
{ support SEG:OFS for go32v2/msdos Mem[] }
|
{ support SEG:OFS for go32v2/msdos Mem[] }
|
||||||
if (target_info.system in [system_i386_go32v2,system_i386_watcom,system_i8086_msdos,system_i8086_win16]) and
|
if (target_info.system in [system_i386_go32v2,system_i386_watcom,system_i8086_msdos,system_i8086_win16,system_i8086_embedded]) and
|
||||||
(p1.nodetype=loadn) and
|
(p1.nodetype=loadn) and
|
||||||
assigned(tloadnode(p1).symtableentry) and
|
assigned(tloadnode(p1).symtableentry) and
|
||||||
assigned(tloadnode(p1).symtableentry.owner.name) and
|
assigned(tloadnode(p1).symtableentry.owner.name) and
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<Units Count="239">
|
<Units Count="241">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="pp.pas"/>
|
<Filename Value="pp.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -833,6 +833,7 @@
|
|||||||
<Unit200>
|
<Unit200>
|
||||||
<Filename Value="rautils.pas"/>
|
<Filename Value="rautils.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="RAUtils"/>
|
||||||
</Unit200>
|
</Unit200>
|
||||||
<Unit201>
|
<Unit201>
|
||||||
<Filename Value="regvars.pas"/>
|
<Filename Value="regvars.pas"/>
|
||||||
@ -986,6 +987,14 @@
|
|||||||
<Filename Value="systems\t_win16.pas"/>
|
<Filename Value="systems\t_win16.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
</Unit238>
|
</Unit238>
|
||||||
|
<Unit239>
|
||||||
|
<Filename Value="systems\i_embed.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit239>
|
||||||
|
<Unit240>
|
||||||
|
<Filename Value="systems\t_embed.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit240>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
@ -282,7 +282,8 @@ unit scandir;
|
|||||||
begin
|
begin
|
||||||
if not (target_info.system in systems_all_windows + [system_i386_os2,
|
if not (target_info.system in systems_all_windows + [system_i386_os2,
|
||||||
system_i386_emx, system_powerpc_macos,
|
system_i386_emx, system_powerpc_macos,
|
||||||
system_arm_nds, system_i8086_msdos] +
|
system_arm_nds, system_i8086_msdos,
|
||||||
|
system_i8086_embedded] +
|
||||||
systems_nativent) then
|
systems_nativent) then
|
||||||
begin
|
begin
|
||||||
if m_delphi in current_settings.modeswitches then
|
if m_delphi in current_settings.modeswitches then
|
||||||
@ -298,9 +299,9 @@ unit scandir;
|
|||||||
begin
|
begin
|
||||||
current_scanner.skipspace;
|
current_scanner.skipspace;
|
||||||
hs:=current_scanner.readid;
|
hs:=current_scanner.readid;
|
||||||
if (hs='GUI') and not (target_info.system in [system_i8086_msdos]) then
|
if (hs='GUI') and not (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
SetApptype(app_gui)
|
SetApptype(app_gui)
|
||||||
else if (hs='CONSOLE') and not (target_info.system in [system_i8086_msdos]) then
|
else if (hs='CONSOLE') and not (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
SetApptype(app_cui)
|
SetApptype(app_cui)
|
||||||
else if (hs='NATIVE') and (target_info.system in systems_windows + systems_nativent) then
|
else if (hs='NATIVE') and (target_info.system in systems_windows + systems_nativent) then
|
||||||
SetApptype(app_native)
|
SetApptype(app_native)
|
||||||
@ -313,9 +314,9 @@ unit scandir;
|
|||||||
SetApptype(app_arm9)
|
SetApptype(app_arm9)
|
||||||
else if (hs='ARM7') and (target_info.system in [system_arm_nds]) then
|
else if (hs='ARM7') and (target_info.system in [system_arm_nds]) then
|
||||||
SetApptype(app_arm7)
|
SetApptype(app_arm7)
|
||||||
else if (hs='COM') and (target_info.system in [system_i8086_msdos]) then
|
else if (hs='COM') and (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
SetApptype(app_com)
|
SetApptype(app_com)
|
||||||
else if (hs='EXE') and (target_info.system in [system_i8086_msdos]) then
|
else if (hs='EXE') and (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
SetApptype(app_cui)
|
SetApptype(app_cui)
|
||||||
else
|
else
|
||||||
Message1(scan_w_unsupported_app_type,hs);
|
Message1(scan_w_unsupported_app_type,hs);
|
||||||
@ -438,7 +439,7 @@ unit scandir;
|
|||||||
|
|
||||||
procedure dir_forcefarcalls;
|
procedure dir_forcefarcalls;
|
||||||
begin
|
begin
|
||||||
if (target_info.system<>system_i8086_msdos)
|
if not (target_info.system in [system_i8086_msdos,system_i8086_embedded])
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
or (current_settings.x86memorymodel in x86_near_code_models)
|
or (current_settings.x86memorymodel in x86_near_code_models)
|
||||||
{$endif i8086}
|
{$endif i8086}
|
||||||
@ -1258,7 +1259,7 @@ unit scandir;
|
|||||||
begin
|
begin
|
||||||
do_moduleswitch(cs_create_smart);
|
do_moduleswitch(cs_create_smart);
|
||||||
if (target_dbg.id in [dbg_dwarf2,dbg_dwarf3]) and
|
if (target_dbg.id in [dbg_dwarf2,dbg_dwarf3]) and
|
||||||
not(target_info.system in (systems_darwin+[system_i8086_msdos])) and
|
not(target_info.system in (systems_darwin+[system_i8086_msdos,system_i8086_embedded])) and
|
||||||
{ smart linking does not yet work with DWARF debug info on most targets }
|
{ smart linking does not yet work with DWARF debug info on most targets }
|
||||||
(cs_create_smart in current_settings.moduleswitches) and
|
(cs_create_smart in current_settings.moduleswitches) and
|
||||||
not (af_outputbinary in target_asm.flags) then
|
not (af_outputbinary in target_asm.flags) then
|
||||||
@ -1626,7 +1627,7 @@ unit scandir;
|
|||||||
|
|
||||||
procedure dir_hugecode;
|
procedure dir_hugecode;
|
||||||
begin
|
begin
|
||||||
if (target_info.system<>system_i8086_msdos)
|
if not (target_info.system in [system_i8086_msdos,system_i8086_embedded])
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
or (current_settings.x86memorymodel in x86_near_code_models)
|
or (current_settings.x86memorymodel in x86_near_code_models)
|
||||||
{$endif i8086}
|
{$endif i8086}
|
||||||
@ -1642,7 +1643,7 @@ unit scandir;
|
|||||||
var
|
var
|
||||||
hs : string;
|
hs : string;
|
||||||
begin
|
begin
|
||||||
if target_info.system<>system_i8086_msdos then
|
if not (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
begin
|
begin
|
||||||
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERNORMALIZATION');
|
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERNORMALIZATION');
|
||||||
exit;
|
exit;
|
||||||
@ -1672,7 +1673,7 @@ unit scandir;
|
|||||||
|
|
||||||
procedure dir_hugepointerarithmeticnormalization;
|
procedure dir_hugepointerarithmeticnormalization;
|
||||||
begin
|
begin
|
||||||
if target_info.system<>system_i8086_msdos then
|
if not (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
begin
|
begin
|
||||||
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERARITHMETICNORMALIZATION');
|
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERARITHMETICNORMALIZATION');
|
||||||
exit;
|
exit;
|
||||||
@ -1682,7 +1683,7 @@ unit scandir;
|
|||||||
|
|
||||||
procedure dir_hugepointercomparisonnormalization;
|
procedure dir_hugepointercomparisonnormalization;
|
||||||
begin
|
begin
|
||||||
if target_info.system<>system_i8086_msdos then
|
if not (target_info.system in [system_i8086_msdos,system_i8086_embedded]) then
|
||||||
begin
|
begin
|
||||||
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERCOMPARISONNORMALIZATION');
|
Message1(scanner_w_directive_ignored_on_target, 'HUGEPOINTERCOMPARISONNORMALIZATION');
|
||||||
exit;
|
exit;
|
||||||
|
@ -701,16 +701,16 @@ implementation
|
|||||||
procedure SetAppType(NewAppType:tapptype);
|
procedure SetAppType(NewAppType:tapptype);
|
||||||
begin
|
begin
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
if (target_info.system=system_i8086_msdos) and (apptype<>NewAppType) then
|
if (target_info.system in [system_i8086_msdos,system_i8086_embedded]) and (apptype<>NewAppType) then
|
||||||
begin
|
begin
|
||||||
if NewAppType=app_com then
|
if NewAppType=app_com then
|
||||||
begin
|
begin
|
||||||
targetinfos[system_i8086_msdos]^.exeext:='.com';
|
targetinfos[target_info.system]^.exeext:='.com';
|
||||||
target_info.exeext:='.com';
|
target_info.exeext:='.com';
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
targetinfos[system_i8086_msdos]^.exeext:='.exe';
|
targetinfos[target_info.system]^.exeext:='.exe';
|
||||||
target_info.exeext:='.exe';
|
target_info.exeext:='.exe';
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -171,7 +171,8 @@
|
|||||||
system_aarch64_darwin, { 86 }
|
system_aarch64_darwin, { 86 }
|
||||||
system_x86_64_iphonesim, { 87 }
|
system_x86_64_iphonesim, { 87 }
|
||||||
system_aarch64_linux, { 88 }
|
system_aarch64_linux, { 88 }
|
||||||
system_i8086_win16 { 89 }
|
system_i8086_win16, { 89 }
|
||||||
|
system_i8086_embedded { 90 }
|
||||||
);
|
);
|
||||||
|
|
||||||
type
|
type
|
||||||
|
@ -22,6 +22,13 @@ unit i_embed;
|
|||||||
|
|
||||||
{$i fpcdefs.inc}
|
{$i fpcdefs.inc}
|
||||||
|
|
||||||
|
{$ifdef go32v2}
|
||||||
|
{ As wlib uses a different Dos-Extender, long-command line
|
||||||
|
encoding for DJGPP does not work here.
|
||||||
|
Put all inside a script file instead }
|
||||||
|
{$define USE_SCRIPTED_WLIB}
|
||||||
|
{$endif}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -348,6 +355,75 @@ unit i_embed;
|
|||||||
llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
|
llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
|
||||||
);
|
);
|
||||||
|
|
||||||
|
system_i8086_embedded_info : tsysteminfo =
|
||||||
|
(
|
||||||
|
system : system_i8086_embedded;
|
||||||
|
name : 'Embedded';
|
||||||
|
shortname : 'embedded';
|
||||||
|
flags : [tf_use_8_3,tf_smartlink_library,
|
||||||
|
tf_no_objectfiles_when_smartlinking,tf_cld,
|
||||||
|
tf_no_generic_stackcheck,tf_emit_stklen];
|
||||||
|
cpu : cpu_i8086;
|
||||||
|
unit_env : '';
|
||||||
|
extradefines : '';
|
||||||
|
exeext : '.exe';
|
||||||
|
defext : '.def';
|
||||||
|
scriptext : '.bat';
|
||||||
|
smartext : '.sl';
|
||||||
|
unitext : '.ppu';
|
||||||
|
unitlibext : '.ppl';
|
||||||
|
asmext : '.s';
|
||||||
|
objext : '.o';
|
||||||
|
resext : '.res';
|
||||||
|
resobjext : '.or';
|
||||||
|
sharedlibext : '.dll';
|
||||||
|
staticlibext : '.a';
|
||||||
|
staticlibprefix : '';
|
||||||
|
sharedlibprefix : '';
|
||||||
|
sharedClibext : '.dll';
|
||||||
|
staticClibext : '.a';
|
||||||
|
staticClibprefix : 'lib';
|
||||||
|
sharedClibprefix : '';
|
||||||
|
importlibprefix : '';
|
||||||
|
importlibext : '.al';
|
||||||
|
Cprefix : '_';
|
||||||
|
newline : #13#10;
|
||||||
|
dirsep : '\';
|
||||||
|
assem : as_i8086_omf;
|
||||||
|
assemextern : as_i8086_nasmobj;
|
||||||
|
link : ld_int_msdos;
|
||||||
|
linkextern : ld_msdos;
|
||||||
|
{$ifdef USE_SCRIPTED_WLIB}
|
||||||
|
ar : ar_watcom_wlib_omf_scripted;
|
||||||
|
{$else}
|
||||||
|
ar : ar_watcom_wlib_omf;
|
||||||
|
{$endif}
|
||||||
|
res : res_none;
|
||||||
|
dbg : dbg_dwarf2;
|
||||||
|
script : script_dos;
|
||||||
|
endian : endian_little;
|
||||||
|
alignment :
|
||||||
|
(
|
||||||
|
procalign : 1;
|
||||||
|
loopalign : 1;
|
||||||
|
jumpalign : 0;
|
||||||
|
constalignmin : 0;
|
||||||
|
constalignmax : 2;
|
||||||
|
varalignmin : 0;
|
||||||
|
varalignmax : 2;
|
||||||
|
localalignmin : 0;
|
||||||
|
localalignmax : 2;
|
||||||
|
recordalignmin : 0;
|
||||||
|
recordalignmax : 2;
|
||||||
|
maxCrecordalign : 2
|
||||||
|
);
|
||||||
|
first_parm_offset : 4;
|
||||||
|
stacksize : 0;
|
||||||
|
stackalign : 2;
|
||||||
|
abi : abi_default;
|
||||||
|
llvmdatalayout : 'todo';
|
||||||
|
);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
@ -376,4 +452,9 @@ initialization
|
|||||||
set_source_info(system_x86_64_embedded_info);
|
set_source_info(system_x86_64_embedded_info);
|
||||||
{$endif embedded}
|
{$endif embedded}
|
||||||
{$endif CPUX86_64}
|
{$endif CPUX86_64}
|
||||||
|
{$ifdef cpu8086}
|
||||||
|
{$ifdef embedded}
|
||||||
|
set_source_info(system_i8086_embedded_info);
|
||||||
|
{$endif embedded}
|
||||||
|
{$endif cpu8086}
|
||||||
end.
|
end.
|
||||||
|
@ -1487,6 +1487,14 @@ initialization
|
|||||||
RegisterTarget(system_x86_64_embedded_info);
|
RegisterTarget(system_x86_64_embedded_info);
|
||||||
{$endif x86_64}
|
{$endif x86_64}
|
||||||
|
|
||||||
|
{$ifdef i8086}
|
||||||
|
{ no need to register linker ld_embedded, because i8086_embedded uses the
|
||||||
|
regular msdos linker. In case a flat binary, relocated for a specific
|
||||||
|
segment address is needed (e.g. for a BIOS or a real mode bootloader), it
|
||||||
|
can be produced post-compilation with exe2bin or a similar tool. }
|
||||||
|
RegisterTarget(system_i8086_embedded_info);
|
||||||
|
{$endif i8086}
|
||||||
|
|
||||||
{$ifdef mipsel}
|
{$ifdef mipsel}
|
||||||
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
||||||
RegisterTarget(system_mipsel_embedded_info);
|
RegisterTarget(system_mipsel_embedded_info);
|
||||||
|
@ -173,7 +173,8 @@ const
|
|||||||
{ 86 } 'Darwin-AArch64',
|
{ 86 } 'Darwin-AArch64',
|
||||||
{ 87 } 'iPhoneSim-x86-64',
|
{ 87 } 'iPhoneSim-x86-64',
|
||||||
{ 88 } 'Linux-AArch64',
|
{ 88 } 'Linux-AArch64',
|
||||||
{ 89 } 'Win16'
|
{ 89 } 'Win16',
|
||||||
|
{ 90 } 'Embedded-i8086'
|
||||||
);
|
);
|
||||||
|
|
||||||
const
|
const
|
||||||
|
@ -581,7 +581,7 @@ interface
|
|||||||
else if (atype=sec_threadvar) and
|
else if (atype=sec_threadvar) and
|
||||||
(target_info.system in (systems_windows+systems_wince)) then
|
(target_info.system in (systems_windows+systems_wince)) then
|
||||||
writer.AsmWrite('.tls'#9'bss')
|
writer.AsmWrite('.tls'#9'bss')
|
||||||
else if target_info.system in [system_i8086_msdos,system_i8086_win16] then
|
else if target_info.system in [system_i8086_msdos,system_i8086_win16,system_i8086_embedded] then
|
||||||
begin
|
begin
|
||||||
if secnames[atype]='.text' then
|
if secnames[atype]='.text' then
|
||||||
secname:=CodeSectionName(aname)
|
secname:=CodeSectionName(aname)
|
||||||
@ -643,7 +643,7 @@ interface
|
|||||||
{$endif i8086}
|
{$endif i8086}
|
||||||
begin
|
begin
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
if target_info.system in [system_i8086_msdos,system_i8086_win16] then
|
if target_info.system in [system_i8086_msdos,system_i8086_win16,system_i8086_embedded] then
|
||||||
begin
|
begin
|
||||||
if current_settings.x86memorymodel=mm_huge then
|
if current_settings.x86memorymodel=mm_huge then
|
||||||
WriteSection(sec_data,'',2);
|
WriteSection(sec_data,'',2);
|
||||||
@ -1251,7 +1251,8 @@ interface
|
|||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
case target_info.system of
|
case target_info.system of
|
||||||
system_i8086_msdos,
|
system_i8086_msdos,
|
||||||
system_i8086_win16:
|
system_i8086_win16,
|
||||||
|
system_i8086_embedded:
|
||||||
FormatName:='obj';
|
FormatName:='obj';
|
||||||
else
|
else
|
||||||
internalerror(2014082060);
|
internalerror(2014082060);
|
||||||
@ -1304,7 +1305,7 @@ interface
|
|||||||
idtxt : 'NASM';
|
idtxt : 'NASM';
|
||||||
asmbin : 'nasm';
|
asmbin : 'nasm';
|
||||||
asmcmd : '-f $FORMAT -o $OBJ -w-orphan-labels $EXTRAOPT $ASM';
|
asmcmd : '-f $FORMAT -o $OBJ -w-orphan-labels $EXTRAOPT $ASM';
|
||||||
supported_targets : [system_i8086_msdos,system_i8086_win16];
|
supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
|
||||||
flags : [af_needar,af_no_debug];
|
flags : [af_needar,af_no_debug];
|
||||||
labelprefix : '..@';
|
labelprefix : '..@';
|
||||||
comment : '; ';
|
comment : '; ';
|
||||||
@ -1316,7 +1317,7 @@ interface
|
|||||||
idtxt : 'NASMOBJ';
|
idtxt : 'NASMOBJ';
|
||||||
asmbin : 'nasm';
|
asmbin : 'nasm';
|
||||||
asmcmd : '-f obj -o $OBJ -w-orphan-labels $EXTRAOPT $ASM';
|
asmcmd : '-f obj -o $OBJ -w-orphan-labels $EXTRAOPT $ASM';
|
||||||
supported_targets : [system_i8086_msdos,system_i8086_win16];
|
supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
|
||||||
flags : [af_needar,af_no_debug];
|
flags : [af_needar,af_no_debug];
|
||||||
labelprefix : '..@';
|
labelprefix : '..@';
|
||||||
comment : '; ';
|
comment : '; ';
|
||||||
|
Loading…
Reference in New Issue
Block a user