From a508f9e5d3eab7f78cf185a1aba508e1064b0116 Mon Sep 17 00:00:00 2001 From: nickysn Date: Thu, 7 Jan 2016 15:40:32 +0000 Subject: [PATCH] + added check if the selected cpu is 386+ when writing a 66h or 67h prefix in the i8086 internal object writer. This allows weeding out spurious 386 instructions, as is similarly done by NASM when using it as an external assembler. git-svn-id: trunk@32871 - --- compiler/msg/errore.msg | 3 +- compiler/msgidx.inc | 5 +- compiler/msgtxt.inc | 629 ++++++++++++++++++++------------------- compiler/x86/aasmcpu.pas | 8 + 4 files changed, 328 insertions(+), 317 deletions(-) diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg index c153a7a132..1d1460b7c1 100644 --- a/compiler/msg/errore.msg +++ b/compiler/msg/errore.msg @@ -2772,7 +2772,7 @@ asmr_e_invalid_code_value=07129_E_Invalid value of .code directive constant # # Assembler/binary writers # -# 08031 is the last used one +# 08032 is the last used one # asmw_f_too_many_asm_files=08000_F_Too many assembler files % With smartlinking enabled, there are too many assembler @@ -2825,6 +2825,7 @@ asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported asmw_f_code_segment_too_large=08030_F_Code segment too large asmw_f_data_segment_too_large=08031_F_Data segment too large +asmw_e_instruction_not_supported_by_cpu=08032_E_Instruction not supported by the selected instruction set # # Executing linker/assembler # diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc index 3af52cb690..a001f2b325 100644 --- a/compiler/msgidx.inc +++ b/compiler/msgidx.inc @@ -834,6 +834,7 @@ const asmw_e_32bit_not_supported=08029; asmw_f_code_segment_too_large=08030; asmw_f_data_segment_too_large=08031; + asmw_e_instruction_not_supported_by_cpu=08032; exec_w_source_os_redefined=09000; exec_i_assembling_pipe=09001; exec_d_cant_create_asmfile=09002; @@ -1024,9 +1025,9 @@ const option_info=11024; option_help_pages=11025; - MsgTxtSize = 76577; + MsgTxtSize = 76643; MsgIdxMax : array[1..20] of longint=( - 27,99,344,124,96,58,130,32,208,64, + 27,99,344,124,96,58,130,33,208,64, 58,20,1,1,1,1,1,1,1,1 ); diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc index 92e998da71..bbbd73fe9c 100644 --- a/compiler/msgtxt.inc +++ b/compiler/msgtxt.inc @@ -1018,62 +1018,65 @@ const msgtxt : array[0..000319,1..240] of char=( '08029_E_Asm: 32 Bit references not supported'#000+ '08030_F_Code segment too large'#000+ '08031_F_Data segment too large'#000+ - '09000_W_Source operating system redefined'#000+ + '08032_E_Instruction not supported by the selected instruction set'#000+ + '09000_W_Source operating syste','m redefined'#000+ '09001_I_Assembling (pipe) $1'#000+ - '09002_E_Can'#039't create asse','mbler file: $1'#000+ + '09002_E_Can'#039't create assembler file: $1'#000+ '09003_E_Can'#039't create object file: $1 (error code: $2)'#000+ '09004_E_Can'#039't create archive file: $1'#000+ '09005_E_Assembler $1 not found, switching to external assembling'#000+ - '09006_T_Using assembler: $1'#000+ - '09007_E_Error while assembling exitcode ','$1'#000+ + '09','006_T_Using assembler: $1'#000+ + '09007_E_Error while assembling exitcode $1'#000+ '09008_E_Can'#039't call the assembler, error $1 switching to external a'+ 'ssembling'#000+ '09009_I_Assembling $1'#000+ '09010_I_Assembling with smartlinking $1'#000+ - '09011_W_Object $1 not found, Linking may fail !'#000+ + '09011_W_Object $1 not found, Link','ing may fail !'#000+ '09012_W_Library $1 not found, Linking may fail !'#000+ - '09','013_E_Error while linking'#000+ + '09013_E_Error while linking'#000+ '09014_E_Can'#039't call the linker, switching to external linking'#000+ '09015_I_Linking $1'#000+ '09016_E_Util $1 not found, switching to external linking'#000+ - '09017_T_Using util $1'#000+ + '09017_T_Usi','ng util $1'#000+ '09018_E_Creation of Executables not supported'#000+ - '09019_E_C','reation of Dynamic/Shared Libraries not supported'#000+ + '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+ '09035_E_Creation of Static Libraries not supported'#000+ '09020_I_Closing script $1'#000+ - '09021_E_resource compiler "$1" not found, switching to external mode'#000+ + '09021_E_resource compiler "$1" not found, switc','hing to external mode'+ + #000+ '09022_I_Compiling resource $1'#000+ - '09023_T_unit $','1 cannot be statically linked, switching to smart link'+ - 'ing'#000+ + '09023_T_unit $1 cannot be statically linked, switching to smart linkin'+ + 'g'#000+ '09024_T_unit $1 cannot be smart linked, switching to static linking'#000+ - '09025_T_unit $1 cannot be shared linked, switching to static linking'#000+ - '09026_E_unit $1 cannot be smart or static lin','ked'#000+ + '09025_T_unit $1 cannot be shared linked, switchi','ng to static linking'+ + #000+ + '09026_E_unit $1 cannot be smart or static linked'#000+ '09027_E_unit $1 cannot be shared or static linked'#000+ '09028_D_Calling resource compiler "$1" with "$2" as command line'#000+ '09029_E_Error while compiling resources'#000+ - '09030_E_Can'#039't call the resource compiler "$1", switching to extern'+ - 'al mode'#000+ - '09031_E','_Can'#039't open resource file "$1"'#000+ + '09030_E_Can'#039't c','all the resource compiler "$1", switching to exte'+ + 'rnal mode'#000+ + '09031_E_Can'#039't open resource file "$1"'#000+ '09032_E_Can'#039't write resource file "$1"'#000+ '09033_N_File "$1" not found for backquoted cat command'#000+ - '09034_W_"$1" not found, this will probably cause a linking failure'#000+ + '09034_W_"$1" not found, this will probably cause ','a linking failure'#000+ '09128_F_Can'#039't post process executable $1'#000+ - '09129_F','_Can'#039't open executable $1'#000+ + '09129_F_Can'#039't open executable $1'#000+ '09130_X_Size of Code: $1 bytes'#000+ '09131_X_Size of initialized data: $1 bytes'#000+ '09132_X_Size of uninitialized data: $1 bytes'#000+ - '09133_X_Stack space reserved: $1 bytes'#000+ + '09133_X_Stack space reserved:',' $1 bytes'#000+ '09134_X_Stack space committed: $1 bytes'#000+ - '09200_F_Executab','le image size is too big for $1 target.'#000+ + '09200_F_Executable image size is too big for $1 target.'#000+ '09201_W_Object file "$1" contains 32-bit absolute relocation to symbol'+ ' "$2".'#000+ - '09202_E_Program segment too large (exceeds 64k by $1 bytes)'#000+ + '09202_E_Program segment too large (exceeds 64k by $1 byte','s)'#000+ '09203_E_Code segment too large (exceeds 64k by $1 bytes)'#000+ - '09204_','E_Data segment too large (exceeds 64k by $1 bytes)'#000+ + '09204_E_Data segment too large (exceeds 64k by $1 bytes)'#000+ '09205_E_Segment "$1" too large (exceeds 64k by $2 bytes)'#000+ '09206_E_Group "$1" too large (exceeds 64k by $2 bytes)'#000+ - '09207_E_Cannot create a .COM file, because the program contains segmen'+ - 't reloc','ations'#000+ + '09207_E_Can','not create a .COM file, because the program contains segm'+ + 'ent relocations'#000+ '10000_T_Unitsearch: $1'#000+ '10001_T_PPU Loading $1'#000+ '10002_U_PPU Name: $1'#000+ @@ -1081,186 +1084,186 @@ const msgtxt : array[0..000319,1..240] of char=( '10004_U_PPU Crc: $1'#000+ '10005_U_PPU Time: $1'#000+ '10006_U_PPU File too short'#000+ - '10007_U_PPU Invalid Header (no PPU at the begin)'#000+ - '10008_U_PPU Invalid Version',' $1'#000+ + '10007_U_PP','U Invalid Header (no PPU at the begin)'#000+ + '10008_U_PPU Invalid Version $1'#000+ '10009_U_PPU is compiled for another processor'#000+ '10010_U_PPU is compiled for another target'#000+ '10011_U_PPU Source: $1'#000+ '10012_U_Writing $1'#000+ '10013_F_Can'#039't Write PPU-File'#000+ - '10014_F_Error reading PPU-File'#000+ + '10014_F_Er','ror reading PPU-File'#000+ '10015_F_unexpected end of PPU-File'#000+ - '10016_F_In','valid PPU-File entry: $1'#000+ + '10016_F_Invalid PPU-File entry: $1'#000+ '10017_F_PPU Dbx count problem'#000+ '10018_E_Illegal unit name: $1'#000+ '10019_F_Too much units'#000+ '10020_F_Circular unit reference between $1 and $2'#000+ - '10021_F_Can'#039't compile unit $1, no sources available'#000+ - '10022_F_Can'#039't find unit $1 use','d by $2'#000+ + '10021_F_Can'#039't co','mpile unit $1, no sources available'#000+ + '10022_F_Can'#039't find unit $1 used by $2'#000+ '10023_W_Unit $1 was not found but $2 exists'#000+ '10024_F_Unit $1 searched but $2 found'#000+ '10025_W_Compiling the system unit requires the -Us switch'#000+ - '10026_F_There were $1 errors compiling module, stopping'#000+ + '10026_F_There were $1 erro','rs compiling module, stopping'#000+ '10027_U_Load from $1 ($2) unit $3'#000+ - '10','028_U_Recompiling $1, checksum changed for $2'#000+ + '10028_U_Recompiling $1, checksum changed for $2'#000+ '10029_U_Recompiling $1, source found only'#000+ '10030_U_Recompiling unit, static lib is older than ppufile'#000+ - '10031_U_Recompiling unit, shared lib is older than ppufile'#000+ - '10032_U_Recompiling unit, obj and ','asm are older than ppufile'#000+ + '10031_U_Recompiling unit, s','hared lib is older than ppufile'#000+ + '10032_U_Recompiling unit, obj and asm are older than ppufile'#000+ '10033_U_Recompiling unit, obj is older than asm'#000+ '10034_U_Parsing interface of $1'#000+ '10035_U_Parsing implementation of $1'#000+ - '10036_U_Second load for unit $1'#000+ + '10036_U_Second load for unit $','1'#000+ '10037_U_PPU Check file $1 time $2'#000+ - '10040_W_Can'#039't recompile unit $','1, but found modified include file'+ - 's'#000+ + '10040_W_Can'#039't recompile unit $1, but found modified include files'#000+ '10041_U_File $1 is newer than the one used for creating PPU file $2'#000+ - '10042_U_Trying to use a unit which was compiled with a different FPU m'+ + '10042_U_Trying to use a unit which was compiled with a different FPU m', 'ode'#000+ '10043_U_Loading interface units from $1'#000+ - '10044_U_Loading implem','entation units from $1'#000+ + '10044_U_Loading implementation units from $1'#000+ '10045_U_Interface CRC changed for unit $1'#000+ '10046_U_Implementation CRC changed for unit $1'#000+ '10047_U_Finished compiling unit $1'#000+ - '10048_U_Adding dependency: $1 depends on $2'#000+ + '10048_U_Adding dependency: ','$1 depends on $2'#000+ '10049_U_No reload, is caller: $1'#000+ - '10050_U_No reloa','d, already in second compile: $1'#000+ + '10050_U_No reload, already in second compile: $1'#000+ '10051_U_Flag for reload: $1'#000+ '10052_U_Forced reloading'#000+ '10053_U_Previous state of $1: $2'#000+ '10054_U_Already compiling $1, setting second compile'#000+ - '10055_U_Loading unit $1'#000+ + '10','055_U_Loading unit $1'#000+ '10056_U_Finished loading unit $1'#000+ - '10057_U_Reg','istering new unit $1'#000+ + '10057_U_Registering new unit $1'#000+ '10058_U_Re-resolving unit $1'#000+ '10059_U_Skipping re-resolving unit $1, still loading used units'#000+ '10060_U_Unloading resource unit $1 (not needed)'#000+ - '10061_E_Unit $1 was compiled using a different whole program optimizat'+ - 'ion feed','back input ($2, $3); recompile it without wpo or use the sam'+ + '10061_E_Unit',' $1 was compiled using a different whole program optimiz'+ + 'ation feedback input ($2, $3); recompile it without wpo or use the sam'+ 'e wpo feedback input file for this compilation invocation'#000+ - '10062_U_Indirect interface (objects/classes) CRC changed for unit $1'#000+ - '10063_U_PPU is compiled for another i8086 memory mode','l'#000+ + '10062_U_Indirect interface (objects/classes) CRC changed',' for unit $1'+ + #000+ + '10063_U_PPU is compiled for another i8086 memory model'#000+ '11000_O_$1 [options] [options]'#000+ '11001_W_Only one source file supported, changing source file to compil'+ 'e from "$1" into "$2"'#000+ - '11002_W_DEF file can be created only for OS/2'#000+ + '11002_W_DEF file can be created only ','for OS/2'#000+ '11003_E_nested response files are not supported'#000+ - '11004_F_N','o source file name in command line'#000+ + '11004_F_No source file name in command line'#000+ '11005_N_No option inside $1 config file'#000+ '11006_E_Illegal parameter: $1'#000+ '11007_H_-? writes help pages'#000+ '11008_F_Too many config files nested'#000+ - '11009_F_Unable to open file $1'#000+ - '11010_D_Reading further options from $','1'#000+ + '110','09_F_Unable to open file $1'#000+ + '11010_D_Reading further options from $1'#000+ '11011_W_Target is already set to: $1'#000+ '11012_W_Shared libs not supported on DOS platform, reverting to static'+ #000+ - '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered'#000+ - '11014_F_In options file $1 at line $2 unexpected #ENDIFs enc','ountered'+ - #000+ + '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encoun','tere'+ + 'd'#000+ + '11014_F_In options file $1 at line $2 unexpected #ENDIFs encountered'#000+ '11015_F_Open conditional at the end of the options file'#000+ '11016_W_Debug information generation is not supported by this executab'+ 'le'#000+ '11017_H_Try recompiling with -dGDB'#000+ - '11018_W_You are using the obsolete switch $1'#000+ - '11019_W_You are using ','the obsolete switch $1, please use $2'#000+ + '1','1018_W_You are using the obsolete switch $1'#000+ + '11019_W_You are using the obsolete switch $1, please use $2'#000+ '11020_N_Switching assembler to default source writing assembler'#000+ '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+ - '11022_W_"$1" assembler use forced'#000+ - '11026_T_Reading options from file $1'#000, + '11022','_W_"$1" assembler use forced'#000+ + '11026_T_Reading options from file $1'#000+ '11027_T_Reading options from environment $1'#000+ '11028_D_Handling option "$1"'#000+ '11029_O_*** press enter ***'#000+ '11030_H_Start of reading config file $1'#000+ - '11031_H_End of reading config file $1'#000+ + '11031_H_End of reading config fil','e $1'#000+ '11032_D_interpreting option "$1"'#000+ - '11036_D_interpreting firstpa','ss option "$1"'#000+ + '11036_D_interpreting firstpass option "$1"'#000+ '11033_D_interpreting file option "$1"'#000+ '11034_D_Reading config file "$1"'#000+ '11035_D_found source file name "$1"'#000+ '11039_E_Unknown codepage "$1"'#000+ - '11040_F_Config file $1 is a directory'#000+ - '11041_W_Assembler output selected "$1" cannot gene','rate debug info, d'+ - 'ebugging disabled'#000+ + '11040_F_Config file $1',' is a directory'#000+ + '11041_W_Assembler output selected "$1" cannot generate debug info, deb'+ + 'ugging disabled'#000+ '11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead'#000+ - '11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DE'+ + '11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DE', 'F found'#000+ - '11044_F_Option "$1" is not, or not yet, supported on the c','urrent tar'+ - 'get platform'#000+ + '11044_F_Option "$1" is not, or not yet, supported on the current targe'+ + 't platform'#000+ '11045_F_The feature "$1" is not, or not yet, supported on the selected'+ ' target platform'#000+ - '11046_N_DWARF debug information cannot be used with smart linking on t'+ - 'his target, switching to static linking'#000+ - '11047_W_Option "$1" ','is ignored for the current target platform.'#000+ + '11046_N_DWARF debug information cannot be used with smart linkin','g on'+ + ' this target, switching to static linking'#000+ + '11047_W_Option "$1" is ignored for the current target platform.'#000+ '11048_W_Disabling external debug information because it is unsupported'+ ' for the selected target/debug format combination.'#000+ - '11049_N_DWARF debug information cannot be used with smart linking with'+ - ' exte','rnal assembler, disabling static library creation.'#000+ + '11049_N_D','WARF debug information cannot be used with smart linking wi'+ + 'th external assembler, disabling static library creation.'#000+ '11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variabl'+ 'e: $1'#000+ - '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+ - 'ble: $1'#000+ - '11052_E_You must use a FPU type of ','VFPV2, VFPV3 or VFPV3_D16 when us'+ - 'ing the EABIHF ABI target'#000+ + '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_T','ARGET environment var'+ + 'iable: $1'#000+ + '11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when usin'+ + 'g the EABIHF ABI target'#000+ '11053_W_The selected debug format is not supported on the current targ'+ 'et, not changing the current setting'#000+ - '11054_E_argument to "$1" is missing'#000+ + '11054_E_','argument to "$1" is missing'#000+ '11055_E_malformed parameter: $1'#000+ - '11056_','W_Smart linking requires external linker'#000+ + '11056_W_Smart linking requires external linker'#000+ '11057_E_Creating .COM files is not supported in the current memory mod'+ 'el. Only the tiny memory model supports making .COM files.'#000+ - '12000_F_Cannot open whole program optimization feedback file "$1"'#000+ - '1200','1_D_Processing whole program optimization information in wpo fee'+ - 'dback file "$1"'#000+ + '1200','0_F_Cannot open whole program optimization feedback file "$1"'#000+ + '12001_D_Processing whole program optimization information in wpo feedb'+ + 'ack file "$1"'#000+ '12002_D_Finished processing the whole program optimization information'+ - ' in wpo feedback file "$1"'#000+ - '12003_E_Expected section header, but got "$2" at line $1 of wpo',' feed'+ - 'back file'#000+ + ' in wpo feedback file "$','1"'#000+ + '12003_E_Expected section header, but got "$2" at line $1 of wpo feedba'+ + 'ck file'#000+ '12004_W_No handler registered for whole program optimization section "'+ '$2" at line $1 of wpo feedback file, ignoring'#000+ - '12005_D_Found whole program optimization section "$1" with information'+ - ' about "$2"'#000+ - '12006_F_The selected whole ','program optimizations require a previousl'+ - 'y generated feedback file (use -Fw to specify)'#000+ + '12005_D_Found whole program optimization se','ction "$1" with informati'+ + 'on about "$2"'#000+ + '12006_F_The selected whole program optimizations require a previously '+ + 'generated feedback file (use -Fw to specify)'#000+ '12007_E_No collected information necessary to perform "$1" whole progr'+ - 'am optimization found'#000+ - '12008_F_Specify a whole program optimization feedback file t','o store '+ - 'the generated info in (using -FW)'#000+ + 'am optimization ','found'#000+ + '12008_F_Specify a whole program optimization feedback file to store th'+ + 'e generated info in (using -FW)'#000+ '12009_E_Not generating any whole program optimization information, yet'+ ' a feedback file was specified (using -FW)'#000+ - '12010_E_Not performing any whole program optimizations, yet an input f'+ - 'eedback file wa','s specified (using -Fw)'#000+ + '12010_E_Not perform','ing any whole program optimizations, yet an input'+ + ' feedback file was specified (using -Fw)'#000+ '12011_D_Skipping whole program optimization section "$1", because not '+ 'needed by the requested optimizations'#000+ - '12012_W_Overriding previously read information for "$1" from feedback '+ - 'input file using information in sectio','n "$2"'#000+ + '12012_W_Overriding previously read informa','tion for "$1" from feedbac'+ + 'k input file using information in section "$2"'#000+ '12013_E_Cannot extract symbol liveness information from program when s'+ 'tripping symbols, use -Xs-'#000+ - '12014_E_Cannot extract symbol liveness information from program when w'+ + '12014_E_Cannot extract symbol liveness information from program when w', 'hen not linking'#000+ - '12015_F_Cannot find "$1" or "$2" to extract symbol',' liveness informat'+ - 'ion from linked program'#000+ + '12015_F_Cannot find "$1" or "$2" to extract symbol liveness informatio'+ + 'n from linked program'#000+ '12016_E_Error during reading symbol liveness information produced by "'+ '$1"'#000+ - '12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+ - 'ion from linked program'#000+ - '12018_E_Collection of symbol l','iveness information can only help when'+ - ' using smart linking, use -CX -XX'#000+ + '12017_F_Error executing "$1" (exitcode: $2) to extract sym','bol inform'+ + 'ation from linked program'#000+ + '12018_E_Collection of symbol liveness information can only help when u'+ + 'sing smart linking, use -CX -XX'#000+ '12019_E_Cannot create specified whole program optimisation feedback fi'+ 'le "$1"'#000+ - '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+ - 'CPU'#010+ - 'Copyright (c) 19','93-2015 by Florian Klaempfl and others'#000+ + '11023_Free Pascal Compil','er version $FPCFULLVERSION [$FPCDATE] for $F'+ + 'PCCPU'#010+ + 'Copyright (c) 1993-2015 by Florian Klaempfl and others'#000+ '11024_Free Pascal Compiler version $FPCVERSION'#010+ #010+ 'Compiler date : $FPCDATE'#010+ 'Compiler CPU target: $FPCCPU'#010+ #010+ - 'Supported targets (targets marked with '#039'{*}'#039' are under develop'+ - 'ment):'#010+ + 'Supported targets (targets ','marked with '#039'{*}'#039' are under devel'+ + 'opment):'#010+ ' $OSTARGETS'#010+ #010+ - 'Supported ','CPU instruction sets:'#010+ + 'Supported CPU instruction sets:'#010+ ' $INSTRUCTIONSETS'#010+ #010+ 'Supported FPU instruction sets:'#010+ @@ -1269,13 +1272,13 @@ const msgtxt : array[0..000319,1..240] of char=( 'Supported inline assembler modes:'#010+ ' $ASMMODES'#010+ #010+ - 'Recognized compiler and RTL features:'#010+ + 'Recognized compiler and RTL fe','atures:'#010+ ' $FEATURELIST'#010+ #010+ 'Supported ABI targets:'#010+ ' $ABITARGETS'#010+ #010+ - 'Supp','orted Optimizations:'#010+ + 'Supported Optimizations:'#010+ ' $OPTIMIZATIONS'#010+ #010+ 'Supported Whole Program Optimizations:'#010+ @@ -1283,321 +1286,319 @@ const msgtxt : array[0..000319,1..240] of char=( ' $WPOPTIMIZATIONS'#010+ #010+ 'Supported Microcontroller types:$\n $CONTROLLERTYPES$\n'#010+ - 'This program comes under the GNU General Public Licence'#010+ - 'For more information re','ad COPYING.v2'#010+ + 'This program ','comes under the GNU General Public Licence'#010+ + 'For more information read COPYING.v2'#010+ #010+ 'Please report bugs in our bug tracker on:'#010+ ' http://bugs.freepascal.org'#010+ #010+ 'More information may be found on our WWW pages (including directions'#010+ - 'for mailing lists useful for asking questions or discussing potential', - #010+ + 'for',' mailing lists useful for asking questions or discussing potentia'+ + 'l'#010+ 'new features, etc.):'#010+ ' http://www.freepascal.org'#000+ '11025_F*0*_Only options valid for the default or selected platform are'+ ' listed.'#010+ - '**0*_Put + after a boolean switch option to enable it, - to disable it'+ - '.'#010+ - '**1@_Read compiler op','tions from in addition to the default fp'+ - 'c.cfg'#010+ + '**0*_Put + after a boolean swi','tch option to enable it, - to disable '+ + 'it.'#010+ + '**1@_Read compiler options from in addition to the default fpc.'+ + 'cfg'#010+ '**1a_The compiler does not delete the generated assembler file'#010+ '**2al_List sourcecode lines in assembler file'#010+ - '**2an_List node info in assembler file (-dEXTDEBUG compiler)'#010+ - '**2ao_Add an extra o','ption to external assembler call (ignored for in'+ - 'ternal)'#010+ + '**2an_List node',' info in assembler file (-dEXTDEBUG compiler)'#010+ + '**2ao_Add an extra option to external assembler call (ignored for inte'+ + 'rnal)'#010+ '*L2ap_Use pipes instead of creating temporary assembler files'#010+ - '**2ar_List register allocation/release info in assembler file'#010+ + '**2ar_List register allocation/release info in assembler',' file'#010+ '**2at_List temp allocation/release info in assembler file'#010+ - '**','1A_Output format:'#010+ + '**1A_Output format:'#010+ '**2Adefault_Use default assembler'#010+ '3*2Aas_Assemble using GNU AS'#010+ '3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+ - '8*2Anasm_Assemble using Nasm'#010+ + '8*2Anasm_Assemble using Nasm',#010+ '8*2Anasmobj_Assemble using Nasm'#010+ '3*2Anasm_Assemble using Nasm'#010+ - '3*2A','nasmcoff_COFF (Go32v2) file using Nasm'#010+ + '3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+ '3*2Anasmelf_ELF32 (Linux) file using Nasm'#010+ '3*2Anasmwin32_Win32 object file using Nasm'#010+ '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+ - '3*2Anasmdarwin_macho32 object file using Nasm (experimental)'#010+ - '3*2Awa','sm_Obj file using Wasm (Watcom)'#010+ + '3','*2Anasmdarwin_macho32 object file using Nasm (experimental)'#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_Obj file using Tasm (Borland)'#010+ - '3*2Aelf_ELF (Linux) using internal writer'#010+ + '3*2Aelf_ELF (Linux) using inte','rnal writer'#010+ '3*2Acoff_COFF (Go32v2) using internal writer'#010+ - '3*2Apecof','f_PE-COFF (Win32) using internal writer'#010+ + '3*2Apecoff_PE-COFF (Win32) using internal writer'#010+ '3*2Ayasm_Assemble using Yasm (experimental)'#010+ '4*2Aas_Assemble using GNU AS'#010+ '4*2Agas_Assemble using GNU GAS'#010+ - '4*2Agas-darwin_Assemble darwin Mach-O64 using GNU GAS'#010+ - '4*2Amasm_Win64 object file using ml64 (Mic','rosoft)'#010+ + '4*2Agas-darwin_Assemble darwin',' Mach-O64 using GNU GAS'#010+ + '4*2Amasm_Win64 object file using ml64 (Microsoft)'#010+ '4*2Apecoff_PE-COFF (Win64) using internal writer'#010+ '4*2Aelf_ELF (Linux-64bit) using internal writer'#010+ '4*2Ayasm_Assemble using Yasm (experimental)'#010+ - '4*2Anasm_Assemble using Nasm (experimental)'#010+ - '4*2Anasmwin64_Assemble Win64 object file using',' Nasm (experimental)'#010+ + '4*2Anasm_Assemble using ','Nasm (experimental)'#010+ + '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+ '4*2Anasmelf_Assemble Linux-64bit object file using Nasm (experimental)'+ #010+ '4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+ 'ental)'#010+ - '6*2Aas_Unix o-file using GNU AS'#010+ + '6*2Aa','s_Unix o-file using GNU AS'#010+ '6*2Agas_GNU Motorola assembler'#010+ - '6*2Amit_','MIT Syntax (old GAS)'#010+ + '6*2Amit_MIT Syntax (old GAS)'#010+ '6*2Amot_Standard Motorola assembler'#010+ 'A*2Aas_Assemble using GNU AS'#010+ 'P*2Aas_Assemble using GNU AS'#010+ 'S*2Aas_Assemble using GNU AS'#010+ '**1b_Generate browser info'#010+ - '**2bl_Generate local symbol info'#010+ + '**2','bl_Generate local symbol info'#010+ '**1B_Build all modules'#010+ - '**1C_Code ','generation options:'#010+ + '**1C_Code generation options:'#010+ '**2C3_Turn on ieee error checking for constants'#010+ '**2Ca_Select ABI; see fpc -i or fpc -ia for possible values'#010+ - '**2Cb_Generate code for a big-endian variant of the target architectur'+ - 'e'#010+ - '**2Cc_Set default calling conventi','on to '#010+ + '**2Cb_Generate code for a big-endian varian','t of the target architect'+ + 'ure'#010+ + '**2Cc_Set default calling convention to '#010+ '**2CD_Create also dynamic library (not supported)'#010+ '**2Ce_Compilation with emulated floating point opcodes'#010+ - '**2Cf_Select fpu instruction set to use; see fpc -i or fpc -if for '+ - 'possible values'#010+ - '**2CF_Minimal floating point constan','t precision (default, 32, 64)'+ - #010+ + '**2Cf_Select fpu instruction set to use; see fpc -i or f','pc -if fo'+ + 'r possible values'#010+ + '**2CF_Minimal floating point constant precision (default, 32, 64)'#010+ '**2Cg_Generate PIC code'#010+ '**2Ch_ bytes heap (between 1023 and 67107840)'#010+ '**2Ci_IO-checking'#010+ - 'A*2CI_Select instruction set on ARM: ARM or THUMB'#010+ + 'A*2CI_Select instruction set on ARM: ARM or THU','MB'#010+ '**2Cn_Omit linking stage'#010+ - 'P*2CN_Generate nil-pointer checks (AIX','-only)'#010+ + 'P*2CN_Generate nil-pointer checks (AIX-only)'#010+ '**2Co_Check overflow of integer operations'#010+ '**2CO_Check for possible overflow of integer operations'#010+ - '**2Cp_Select instruction set; see fpc -i or fpc -ic for possible va'+ - 'lues'#010+ + '**2Cp_Select instruction set; see fpc -i or fpc -ic for possible ','v'+ + 'alues'#010+ '**2CP=_ packing settings'#010+ - '**3CPPACKSET=_ set al','location: 0, 1 or DEFAULT or NORMAL, 2, '+ - '4 and 8'#010+ + '**3CPPACKSET=_ set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 '+ + 'and 8'#010+ '**3CPPACKENUM=_ enum packing: 0, 1, 2 and 4 or DEFAULT or NORMA'+ 'L'#010+ - '**3CPPACKRECORD=_ record packing: 0 or DEFAULT or NORMAL, 1, 2,'+ - ' 4, 8, 16 and 32'#010+ + '**3CPPACKRECORD=_ record packing: 0 or DEFAULT ','or NORMAL, 1, '+ + '2, 4, 8, 16 and 32'#010+ '**2Cr_Range checking'#010+ - '**2CR_Verify',' object method call validity'#010+ + '**2CR_Verify object method call validity'#010+ '**2Cs_Set stack checking size to '#010+ '**2Ct_Stack checking (for testing only, see manual)'#010+ '8*2CT_Target-specific code generation options'#010+ - '3*2CT_Target-specific code generation options'#010+ - '4*2CT_Target-speci','fic code generation options'#010+ + '3*2C','T_Target-specific code generation options'#010+ + '4*2CT_Target-specific code generation options'#010+ 'p*2CT_Target-specific code generation options'#010+ 'P*2CT_Target-specific code generation options'#010+ - 'J*2CT_Target-specific code generation options'#010+ + 'J*2CT_Target-specific code generation options',#010+ 'A*2CT_Target-specific code generation options'#010+ - 'p*3CTsmalltoc_ G','enerate smaller TOCs at the expense of execution spe'+ - 'ed (AIX)'#010+ + 'p*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+ + ' (AIX)'#010+ 'P*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+ ' (AIX)'#010+ - 'J*3CTautogetterprefix=X_ Automatically create getters for properties '+ - 'with prefix X (empty string disa','bles)'#010+ + 'J*3CTautogetterprefix=X_ Automatica','lly create getters for propertie'+ + 's with prefix X (empty string disables)'#010+ 'J*3CTautosetterprefix=X_ Automatically create setters for properties '+ 'with prefix X (empty string disables)'#010+ - '8*3CTcld_ Emit a CLD instruction before using the x86 '+ - 'string instructions'#010+ - '3*3CTcld_ Emit a CLD',' instruction before using the x8'+ + '8*3CTcld_ Emit a CLD instruction before usin','g the x8'+ '6 string instructions'#010+ + '3*3CTcld_ Emit a CLD instruction before using the x86 '+ + 'string instructions'#010+ '4*3CTcld_ Emit a CLD instruction before using the x86 '+ 'string instructions'#010+ - '8*3CTfarprocspushoddbp_ Increment BP before pushing it in the pr'+ - 'ologue of far functions'#010+ - 'J*','3CTcompactintarrayinit_ Generate smaller (but potentially slower) '+ - 'code for initializing integer array constants'#010+ - 'J*3CTenumfieldinit_ Initialize enumeration fields in constructor'+ - 's to enumtype(0), after calling inherited constructors'#010+ - 'J*3','CTinitlocals_ Initialize local variables that trigger a '+ - 'JVM bytecode verification error if used uninitialized (slows down code'+ - ')'#010+ - 'J*3CTlowercaseprocstart_ Lowercase the first character of procedure/f'+ - 'unction/method names'#010+ - 'A*3CTthumbin','terworking_ Generate Thumb interworking-safe code if pos'+ - 'sible'#010+ + '8*3CTfarprocspushoddbp_ ','Increment BP before pushing it in the '+ + 'prologue of far functions'#010+ + 'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+ + 'de for initializing integer array constants'#010+ + 'J*3CTenumfieldinit_ Initialize enumeration fields in con','struct'+ + 'ors to enumtype(0), after calling inherited constructors'#010+ + 'J*3CTinitlocals_ Initialize local variables that trigger a JV'+ + 'M bytecode verification error if used uninitialized (slows down code)'#010+ + 'J*3CTlowercaseprocstart_ Lowercase t','he first character of procedure'+ + '/function/method names'#010+ + 'A*3CTthumbinterworking_ Generate Thumb interworking-safe code if possi'+ + 'ble'#010+ 'J*2Cv_Var/out parameter copy-out checking'#010+ '**2CX_Create also smartlinked library'#010+ '**1d_Defines the symbol '#010+ - '**1D_Generate a DEF file'#010+ + '*','*1D_Generate a DEF file'#010+ '**2Dd_Set description to '#010+ - '**2Dv_S','et DLL version to '#010+ + '**2Dv_Set DLL version to '#010+ '*O2Dw_PM application'#010+ '**1e_Set path to executable'#010+ '**1E_Same as -Cn'#010+ '**1fPIC_Same as -Cg'#010+ '**1F_Set file names and paths:'#010+ - '**2Fa[,y]_(for a program) load units and [y] before uses is par'+ - 'sed'#010+ - '**2Fc_Set input co','depage to '#010+ + '**2Fa[,y]_(for a program) ','load units and [y] before uses is p'+ + 'arsed'#010+ + '**2Fc_Set input codepage to '#010+ '**2FC_Set RC compiler binary name to '#010+ '**2Fd_Disable the compiler'#039's internal directory cache'#010+ - '**2FD_Set the directory where to search for compiler utilities'#010+ + '**2FD_Set the directory where to search for compiler utilit','ies'#010+ '**2Fe_Redirect error output to '#010+ - '**2Ff_Add to fram','ework path (Darwin only)'#010+ + '**2Ff_Add to framework path (Darwin only)'#010+ '**2FE_Set exe/unit output path to '#010+ '**2Fi_Add to include path'#010+ '**2Fl_Add to library path'#010+ '**2FL_Use as dynamic linker'#010+ - '**2Fm_Load unicode conversion table from .txt in the compiler di'+ - 'r'#010+ - '*','*2FM_Set the directory where to search for unicode binary files'#010+ + '**2Fm_Load unicode conversion table from .txt in the compiler '+ + 'dir'#010+ + '**2FM_Set the directory where to search for unicode binary files'#010+ '**2Fo_Add to object path'#010+ '**2Fr_Load error message file '#010+ - '**2FR_Set resource (.res) linker to '#010+ + '**2FR_Set resource (.res) linker to',' '#010+ '**2Fu_Add to unit path'#010+ - '**2FU_Set unit output path t','o , overrides -FE'#010+ + '**2FU_Set unit output path to , overrides -FE'#010+ '**2FW_Store generated whole-program optimization feedback in '#010+ '**2Fw_Load previously stored whole-program optimization feedback fr'+ 'om '#010+ - '*g1g_Generate debug information (default format for target)'#010+ - '*g2gc_Generate',' checks for pointers'#010+ + '*g1g_Gen','erate debug information (default format for target)'#010+ + '*g2gc_Generate checks for pointers'#010+ '*g2gh_Use heaptrace unit (for memory leak/corruption debugging)'#010+ '*g2gl_Use line info unit (show more info with backtraces)'#010+ - '*g2go_Set debug information options'#010+ - '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information ','(b'+ - 'reaks gdb < 6.5)'#010+ + '*g2go_Set debug information ','options'#010+ + '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+ + 'aks gdb < 6.5)'#010+ '*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+ #010+ '*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class n'+ 'ame'#010+ - '*g2gp_Preserve case in stabs symbol names'#010+ - '*g2gs_Generate Stabs debug informa','tion'#010+ + '*g2gp_Pres','erve case in stabs symbol names'#010+ + '*g2gs_Generate Stabs debug information'#010+ '*g2gt_Trash local variables (to detect uninitialized uses; multiple '#039+ 't'#039' changes the trashing value)'#010+ '*g2gv_Generates programs traceable with Valgrind'#010+ - '*g2gw_Generate DWARFv2 debug information (same as -gw2)'#010+ - '*g2gw2_Generate DWARFv2 debug ','information'#010+ + '*g2gw_Generate DWARF','v2 debug information (same as -gw2)'#010+ + '*g2gw2_Generate DWARFv2 debug information'#010+ '*g2gw3_Generate DWARFv3 debug information'#010+ '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+ '**1i_Information'#010+ '**2iD_Return compiler date'#010+ - '**2iSO_Return compiler OS'#010+ + '**2iSO_Return compi','ler OS'#010+ '**2iSP_Return compiler host processor'#010+ - '**2iTO_Return target ','OS'#010+ + '**2iTO_Return target OS'#010+ '**2iTP_Return target processor'#010+ '**2iV_Return short compiler version'#010+ '**2iW_Return full compiler version'#010+ '**2ia_Return list of supported ABI targets'#010+ - '**2ic_Return list of supported CPU instruction sets'#010+ - '**2if_Return list of supported FPU instr','uction sets'#010+ + '**2ic_Return list of suppo','rted CPU instruction sets'#010+ + '**2if_Return list of supported FPU instruction sets'#010+ '**2ii_Return list of supported inline assembler modes'#010+ '**2io_Return list of supported optimizations'#010+ '**2ir_Return list of recognized compiler and RTL features'#010+ - '**2it_Return list of supported targets'#010+ - '**2iu_Return list of supported m','icrocontroller types'#010+ + '**2it','_Return list of supported targets'#010+ + '**2iu_Return list of supported microcontroller types'#010+ '**2iw_Return list of supported whole program optimizations'#010+ '**1I_Add to include path'#010+ '**1k_Pass to the linker'#010+ '**1l_Write logo'#010+ - '**1M_Set language mode to '#010+ + '**1M_Set lan','guage mode to '#010+ '**2Mfpc_Free Pascal dialect (default)'#010+ - '**2Mobjfpc','_FPC mode with Object Pascal support'#010+ + '**2Mobjfpc_FPC mode with Object Pascal support'#010+ '**2Mdelphi_Delphi 7 compatibility mode'#010+ '**2Mtp_TP/BP 7.0 compatibility mode'#010+ '**2Mmacpas_Macintosh Pascal dialects compatibility mode'#010+ - '**1n_Do not read the default config files'#010+ - '**1o_Change the name of the',' executable produced to '#010+ + '**1n_D','o not read the default config files'#010+ + '**1o_Change the name of the executable produced to '#010+ '**1O_Optimizations:'#010+ '**2O-_Disable optimizations'#010+ '**2O1_Level 1 optimizations (quick and debugger friendly)'#010+ - '**2O2_Level 2 optimizations (-O1 + quick optimizations)'#010+ - '**2O3_Level 3 optimizations (-O2 + slow optimiz','ations)'#010+ + '**2O2_Level 2 optimizations (-O1 + qu','ick optimizations)'#010+ + '**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+ '**2O4_Level 4 optimizations (-O3 + optimizations which might have unex'+ 'pected side effects)'#010+ '**2Oa=_Set alignment'#010+ - '**2Oo[NO]_Enable or disable optimizations; see fpc -i or fpc -io fo'+ - 'r possible values'#010+ - '**2Op_Set target cpu fo','r optimizing; see fpc -i or fpc -ic for po'+ - 'ssible values'#010+ + '**2Oo[NO]_Enable or disable optimizations; se','e fpc -i or fpc -io '+ + 'for possible values'#010+ + '**2Op_Set target cpu for optimizing; see fpc -i or fpc -ic for poss'+ + 'ible values'#010+ '**2OW_Generate whole-program optimization feedback for optimization'+ - ' ; see fpc -i or fpc -iw for possible values'#010+ - '**2Ow_Perform whole-program optimization ; see fpc -i or fpc',' -'+ - 'iw for possible values'#010+ + ' ; see fpc -i or fpc -iw for possible values'#010, + '**2Ow_Perform whole-program optimization ; see fpc -i or fpc -iw'+ + ' for possible values'#010+ '**2Os_Optimize for size rather than speed'#010+ '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+ - 'F*1P_Target CPU / compiler related options:'#010+ + 'F*1P_Target CPU / compiler related options:'#010, 'F*2PB_Show default compiler binary'#010+ 'F*2PP_Show default target cpu'#010+ - 'F','*2P_Set target CPU (arm,avr,i386,i8086,jvm,m68k,mips,mipsel,powe'+ - 'rpc,powerpc64,sparc,x86_64)'#010+ + 'F*2P_Set target CPU (arm,avr,i386,i8086,jvm,m68k,mips,mipsel,powerp'+ + 'c,powerpc64,sparc,x86_64)'#010+ '**1R_Assembler reading style:'#010+ '**2Rdefault_Use default assembler for target'#010+ - '3*2Ratt_Read AT&T style assembler'#010+ - '3*2Rintel_Read Intel style assemb','ler'#010+ + '3','*2Ratt_Read AT&T style assembler'#010+ + '3*2Rintel_Read Intel style assembler'#010+ '6*2RMOT_Read motorola style assembler'#010+ '**1S_Syntax options:'#010+ '**2S2_Same as -Mobjfpc'#010+ '**2Sc_Support operators like C (*=,+=,/= and -=)'#010+ '**2Sa_Turn on assertions'#010+ - '**2Sd_Same as -Mdelphi'#010+ - '**2Se_Error options. is a combination of the fo','llowing:'#010+ + '**2Sd_Same ','as -Mdelphi'#010+ + '**2Se_Error options. is a combination of the following:'#010+ '**3*_ : Compiler halts after the errors (default is 1)'#010+ '**3*_w : Compiler also halts after warnings'#010+ '**3*_n : Compiler also halts after notes'#010+ - '**3*_h : Compiler also halts after hints'#010+ - '**2Sf_Enable certain features in compiler a','nd RTL; see fpc -i or fpc'+ - ' -ir for possible values)'#010+ + '**3*_h : Compiler ','also halts after hints'#010+ + '**2Sf_Enable certain features in compiler and RTL; see fpc -i or fpc -'+ + 'ir for possible values)'#010+ '**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)'#010+ - '**2Sh_Use reference counted strings (ansistring by default) instead of'+ - ' shortstrings'#010+ - '**2Si_Turn on inlining of procedures/functions',' declared as "inline"'#010+ + '**2Sh_Use reference counted strings (ansistring by default) inst','ead '+ + 'of shortstrings'#010+ + '**2Si_Turn on inlining of procedures/functions declared as "inline"'#010+ '**2Sk_Load fpcylix unit'#010+ '**2SI_Set interface style to '#010+ '**3SIcom_COM compatible interface (default)'#010+ '**3SIcorba_CORBA compatible interface'#010+ - '**2Sm_Support macros like C (global)'#010+ + '**2Sm_Supp','ort macros like C (global)'#010+ '**2So_Same as -Mtp'#010+ - '**2Ss_Constructor na','me must be init (destructor must be done)'#010+ + '**2Ss_Constructor name must be init (destructor must be done)'#010+ '**2Sv_Support vector processing (use CPU vector extensions if availabl'+ 'e)'#010+ - '**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes)'#010+ + '**2Sx_Enable exception keywords (default in Delphi/ObjFPC m','odes)'#010+ '**2Sy_@ returns a typed pointer, same as $T+'#010+ - '**1s_D','o not call assembler and linker'#010+ + '**1s_Do not call assembler and linker'#010+ '**2sh_Generate script to link on host'#010+ '**2st_Generate script to link on target'#010+ '**2sr_Skip register allocation phase (use with -alr)'#010+ - '**1T_Target operating system:'#010+ + '**1T_Tar','get operating system:'#010+ '3*2Tandroid_Android'#010+ '3*2Taros_AROS'#010+ - '3*2Tbeos_B','eOS'#010+ + '3*2Tbeos_BeOS'#010+ '3*2Tdarwin_Darwin/Mac OS X'#010+ '3*2Tembedded_Embedded'#010+ '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+ '3*2Tfreebsd_FreeBSD'#010+ '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+ - '3*2Thaiku_Haiku'#010+ - '3*2Tiphonesim_ iPhoneSimulator from iOS SDK 3.2+ (old','er versions: -T'+ - 'darwin)'#010+ + '3*2','Thaiku_Haiku'#010+ + '3*2Tiphonesim_ iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tda'+ + 'rwin)'#010+ '3*2Tlinux_Linux'#010+ '3*2Tnativent_Native NT API (experimental)'#010+ '3*2Tnetbsd_NetBSD'#010+ '3*2Tnetware_Novell Netware Module (clib)'#010+ - '3*2Tnetwlibc_Novell Netware Module (libc)'#010+ + '3*2Tnetwlibc_Novell Netware Module',' (libc)'#010+ '3*2Topenbsd_OpenBSD'#010+ '3*2Tos2_OS/2 / eComStation'#010+ - '3*2Tsunos_S','unOS/Solaris'#010+ + '3*2Tsunos_SunOS/Solaris'#010+ '3*2Tsymbian_Symbian OS'#010+ '3*2Tsolaris_Solaris'#010+ '3*2Twatcom_Watcom compatible DOS extender'#010+ '3*2Twdosx_WDOSX DOS extender'#010+ '3*2Twin32_Windows 32 Bit'#010+ '3*2Twince_Windows CE'#010+ - '4*2Tdarwin_Darwin/Mac OS X'#010+ + '4','*2Tdarwin_Darwin/Mac OS X'#010+ '4*2Tfreebsd_FreeBSD'#010+ - '4*2Tiphonesim_ iPhon','eSimulator'#010+ + '4*2Tiphonesim_ iPhoneSimulator'#010+ '4*2Tlinux_Linux'#010+ '4*2Tnetbsd_NetBSD'#010+ '4*2Topenbsd_OpenBSD'#010+ '4*2Tsolaris_Solaris'#010+ '4*2Twin64_Win64 (64 bit Windows systems)'#010+ '6*2Tamiga_Commodore Amiga'#010+ - '6*2Tatari_Atari ST/STe/TT'#010+ + '6*2Tatari_Atari ST/STe','/TT'#010+ '6*2Tlinux_Linux'#010+ '6*2Tpalmos_PalmOS'#010+ - '8*2Tmsdos_MS-DOS (and compat','ible)'#010+ + '8*2Tmsdos_MS-DOS (and compatible)'#010+ 'a*2Tdarwin_Darwin/iOS'#010+ 'A*2Tandroid_Android'#010+ 'A*2Tdarwin_Darwin/iPhoneOS/iOS'#010+ @@ -1605,11 +1606,11 @@ const msgtxt : array[0..000319,1..240] of char=( 'A*2Tgba_Game Boy Advance'#010+ 'A*2Tlinux_Linux'#010+ 'A*2Tnds_Nintendo DS'#010+ - 'A*2Tsymbian_Symbian'#010+ + 'A*2Tsymbian_','Symbian'#010+ 'A*2Twince_Windows CE'#010+ 'J*2Tandroid_Android'#010+ 'J*2Tjava_Java'#010+ - 'm*2','Tembedded_Embedded'#010+ + 'm*2Tembedded_Embedded'#010+ 'M*2Tandroid_Android'#010+ 'M*2Tembedded_Embedded'#010+ 'M*2Tlinux_Linux'#010+ @@ -1617,154 +1618,154 @@ const msgtxt : array[0..000319,1..240] of char=( 'P*2Tamiga_AmigaOS'#010+ 'P*2Tdarwin_Darwin/Mac OS X'#010+ 'P*2Tlinux_Linux'#010+ - 'P*2Tmacos_Mac OS (classic)'#010+ + 'P*2Tmacos_Mac OS (classi','c)'#010+ 'P*2Tmorphos_MorphOS'#010+ 'P*2Tnetbsd_NetBSD'#010+ 'P*2Twii_Wii'#010+ 'p*2Taix_AIX'#010+ - 'p','*2Tdarwin_Darwin/Mac OS X'#010+ + 'p*2Tdarwin_Darwin/Mac OS X'#010+ 'p*2Tlinux_Linux'#010+ 'S*2Tsolaris_Solaris'#010+ 'S*2Tlinux_Linux'#010+ 'V*2Tembedded_Embedded'#010+ '**1u_Undefines the symbol '#010+ '**1U_Unit options:'#010+ - '**2Un_Do not check where the unit name matches the file name'#010+ - '**2Ur_Generate release unit',' files (never automatically recompiled)'#010+ + '**2Un_Do not check whe','re the unit name matches the file name'#010+ + '**2Ur_Generate release unit files (never automatically recompiled)'#010+ '**2Us_Compile a system unit'#010+ '**1v_Be verbose. is a combination of the following letters:'#010+ - '**2*_e : Show errors (default) 0 : Show nothing (except errors)'#010+ - '**2*_w : Show warnings ',' u : Show unit info'#010+ + '**2*_e : Show errors (default) 0 ',': Show nothing (except errors'+ + ')'#010+ + '**2*_w : Show warnings u : Show unit info'#010+ '**2*_n : Show notes t : Show tried/used files'#010+ '**2*_h : Show hints c : Show conditionals'#010+ - '**2*_i : Show general info d : Show debug info'#010+ - '**2*_l : Show linenumbers r :',' Rhide/GCC compatibility mod'+ - 'e'#010+ + '**2*_i : Show general info ',' d : Show debug info'#010+ + '**2*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+ '**2*_s : Show time stamps q : Show message numbers'#010+ '**2*_a : Show everything x : Show info about invoked tools'+ #010+ - '**2*_b : Write file names messages p : Write tree.log with parse tre'+ - 'e'#010+ - '**2*_',' with full path v : Write fpcdebug.txt with'#010+ + '**2*_b : Wr','ite file names messages p : Write tree.log with parse t'+ + 'ree'#010+ + '**2*_ with full path v : Write fpcdebug.txt with'#010+ '**2*_z : Write output to stderr lots of debugging info'#010+ - '**2*_m, : Do not show messages numbered and '#010+ - 'F*1V_Append '#039'-'#039' to the used compiler binary name (e.','g.'+ - ' for version)'#010+ + '**2*_m, : Do not show messages numbered ','and '#010+ + 'F*1V_Append '#039'-'#039' to the used compiler binary name (e.g. f'+ + 'or version)'#010+ '**1W_Target-specific options (targets)'#010+ '3*2WA_Specify native type application (Windows)'#010+ '4*2WA_Specify native type application (Windows)'#010+ - 'A*2WA_Specify native type application (Windows)'#010+ - '3*2Wb_Create a bundle instead of a lib','rary (Darwin)'#010+ + 'A*2WA_Specify native',' type application (Windows)'#010+ + '3*2Wb_Create a bundle instead of a library (Darwin)'#010+ 'P*2Wb_Create a bundle instead of a library (Darwin)'#010+ 'p*2Wb_Create a bundle instead of a library (Darwin)'#010+ 'a*2Wb_Create a bundle instead of a library (Darwin)'#010+ - 'A*2Wb_Create a bundle instead of a library (Darwin)'#010+ - '4*2Wb_Create a bun','dle instead of a library (Darwin)'#010+ + 'A*2W','b_Create a bundle instead of a library (Darwin)'#010+ + '4*2Wb_Create a bundle instead of a library (Darwin)'#010+ '3*2WB_Create a relocatable image (Windows, Symbian)'#010+ '3*2WB_Set image base to (Windows, Symbian)'#010+ - '4*2WB_Create a relocatable image (Windows)'#010+ + '4*2WB_Create a relocatable image (Wind','ows)'#010+ '4*2WB_Set image base to (Windows)'#010+ - 'A*2WB_Create a reloc','atable image (Windows, Symbian)'#010+ + 'A*2WB_Create a relocatable image (Windows, Symbian)'#010+ 'A*2WB_Set image base to (Windows, Symbian)'#010+ '3*2WC_Specify console type application (EMX, OS/2, Windows)'#010+ - '4*2WC_Specify console type application (Windows)'#010+ - 'A*2WC_Specify console type application (Windows)'#010, + '4*2WC_Specify console type appli','cation (Windows)'#010+ + 'A*2WC_Specify console type application (Windows)'#010+ 'P*2WC_Specify console type application (Classic Mac OS)'#010+ '3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+ - '4*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+ - 'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows',')'#010+ + '4*2WD_Use DEFFILE to export functions of DLL or EXE (Win','dows)'#010+ + 'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+ '3*2We_Use external resources (Darwin)'#010+ '4*2We_Use external resources (Darwin)'#010+ 'a*2We_Use external resources (Darwin)'#010+ 'A*2We_Use external resources (Darwin)'#010+ - 'P*2We_Use external resources (Darwin)'#010+ + 'P*2We_Use external r','esources (Darwin)'#010+ 'p*2We_Use external resources (Darwin)'#010+ - '3*2WF_Spec','ify full-screen type application (EMX, OS/2)'#010+ + '3*2WF_Specify full-screen type application (EMX, OS/2)'#010+ '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+ '4*2WG_Specify graphic type application (Windows)'#010+ - 'A*2WG_Specify graphic type application (Windows)'#010+ - 'P*2WG_Specify graphic type applicatio','n (Classic Mac OS)'#010+ + 'A*2WG_Specify graphi','c type application (Windows)'#010+ + 'P*2WG_Specify graphic type application (Classic Mac OS)'#010+ '3*2Wi_Use internal resources (Darwin)'#010+ '4*2Wi_Use internal resources (Darwin)'#010+ 'a*2Wi_Use internal resources (Darwin)'#010+ 'A*2Wi_Use internal resources (Darwin)'#010+ - 'P*2Wi_Use internal resources (Darwin)'#010+ - 'p*2Wi_Use internal resources (D','arwin)'#010+ + 'P*2','Wi_Use internal resources (Darwin)'#010+ + 'p*2Wi_Use internal resources (Darwin)'#010+ '3*2WI_Turn on/off the usage of import sections (Windows)'#010+ '4*2WI_Turn on/off the usage of import sections (Windows)'#010+ - 'A*2WI_Turn on/off the usage of import sections (Windows)'#010+ + 'A*2WI_Turn on/off the usage of import sections (Windo','ws)'#010+ '8*2Wm_Set memory model'#010+ '8*3WmTiny_Tiny memory model'#010+ - '8*3WmSma','ll_Small memory model (default)'#010+ + '8*3WmSmall_Small memory model (default)'#010+ '8*3WmMedium_Medium memory model'#010+ '8*3WmCompact_Compact memory model'#010+ '8*3WmLarge_Large memory model'#010+ '8*3WmHuge_Huge memory model'#010+ - '3*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ - 'n)'#010+ - '4*2WM_Mi','nimum Mac OS X deployment version: 10.4, 10.5.1, ... (Dar'+ + '3*2WM_Minimum M','ac OS X deployment version: 10.4, 10.5.1, ... (Dar'+ 'win)'#010+ + '4*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ + 'n)'#010+ 'p*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ - 'P*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ - 'n)'#010+ - '3*2WN_Do not generate relocation',' code, needed for debugging (Windows'+ - ')'#010+ + 'P*2WM_Minimum Mac OS X deployment ve','rsion: 10.4, 10.5.1, ... (Dar'+ + 'win)'#010+ + '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ '4*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ - 'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ - 'A*2Wp_Specify the controller type; see fpc -i or fpc -iu fo','r poss'+ - 'ible values'#010+ + 'A*2WN_Do not generate relocation code, needed for debugging (Windo','ws'+ + ')'#010+ + 'A*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ + 'le values'#010+ 'm*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ 'le values'#010+ 'V*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ - 'le values'#010+ - '3*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (ipho','nesim)'+ - #010+ + 'le val','ues'#010+ + '3*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+ '4*2WP_Minimum iOS deployment version: 8.0, 8.0.2, ... (iphonesim)'#010+ 'a*2WP_Minimum iOS deployment version: 7.0, 7.1.2, ... (Darwin)'#010+ - 'A*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)'#010+ - '3*2WR_Generate relocation code (','Windows)'#010+ + 'A*2WP_Minimum iOS deployment ','version: 3.0, 5.0.1, ... (Darwin)'#010+ + '3*2WR_Generate relocation code (Windows)'#010+ '4*2WR_Generate relocation code (Windows)'#010+ 'A*2WR_Generate relocation code (Windows)'#010+ '8*2Wt_Set the target executable format'#010+ - '8*3Wtexe_Create a DOS .EXE file (default)'#010+ + '8*3Wtexe_Create a DOS .EXE file (default)',#010+ '8*3Wtcom_Create a DOS .COM file (requires tiny memory model)'#010+ - 'P*2W','T_Specify MPW tool type application (Classic Mac OS)'#010+ + 'P*2WT_Specify MPW tool type application (Classic Mac OS)'#010+ '**2WX_Enable executable stack (Linux)'#010+ '**1X_Executable options:'#010+ - '**2X9_Generate linkerscript for GNU Binutils ld older than version 2.1'+ - '9.1 (Linux)'#010+ - '**2Xc_Pass --shared/-dynamic to the linker',' (BeOS, Darwin, FreeBSD, L'+ - 'inux)'#010+ + '**2X9_Generate linkerscript for GNU Binutils ld older than',' version 2'+ + '.19.1 (Linux)'#010+ + '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+ + 'ux)'#010+ '**2Xd_Do not search default library path (sometimes required for cross'+ '-compiling when not using -XR)'#010+ '**2Xe_Use external linker'#010+ - '**2Xf_Substitute pthread library name for linking (BSD)'#010+ - '**2Xg_Create debuginfo in',' a separate file and add a debuglink sectio'+ - 'n to executable'#010+ + '**2Xf_Substitut','e pthread library name for linking (BSD)'#010+ + '**2Xg_Create debuginfo in a separate file and add a debuglink section '+ + 'to executable'#010+ '**2XD_Try to link units dynamically (defines FPC_LINK_DYNAMIC)'#010+ '**2Xi_Use internal linker'#010+ - '**2XLA_Define library substitutions for linking'#010+ - '**2XLO_Define order of library linking'#010, + '**2XLA_Define library',' substitutions for linking'#010+ + '**2XLO_Define order of library linking'#010+ '**2XLD_Exclude default order of standard libraries'#010+ '**2Xm_Generate link map'#010+ '**2XM_Set the name of the '#039'main'#039' program routine (default i'+ 's '#039'main'#039')'#010+ - '**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)'+ - #010+ - 'F*2Xp_First search ','for the compiler binary in the directory '#010+ + '**2Xn_Use target system nat','ive linker instead of GNU ld (Solaris, AI'+ + 'X)'#010+ + 'F*2Xp_First search for the compiler binary in the directory '#010+ '**2XP_Prepend the binutils names with the prefix '#010+ '**2Xr_Set the linker'#039's rlink-path to (needed for cross comp'+ - 'ile, see the ld manual for more information) (BeOS, Linux)'#010+ - '**2XR_Prepe','nd to all linker search paths (BeOS, Darwin, FreeB'+ - 'SD, Linux, Mac OS, Solaris)'#010+ + 'ile, se','e the ld manual for more information) (BeOS, Linux)'#010+ + '**2XR_Prepend to all linker search paths (BeOS, Darwin, FreeBSD'+ + ', Linux, Mac OS, Solaris)'#010+ '**2Xs_Strip all symbols from executable'#010+ - '**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)'#010+ - '**2Xt_Link with static libraries (-static is pas','sed to linker)'#010+ + '**2XS_Try to link units statically (default, defines',' FPC_LINK_STATIC'+ + ')'#010+ + '**2Xt_Link with static libraries (-static is passed to linker)'#010+ '**2Xv_Generate table for Virtual Entry calls'#010+ '**2XV_Use VLink as external linker (default on Amiga, MorphOS)'#010+ - '**2XX_Try to smartlink units (defines FPC_LINK_SMART)'#010+ + '**2XX_Try to smartlink units (def','ines FPC_LINK_SMART)'#010+ '**1*_'#010+ '**1?_Show this help'#010+ - '**1h_Shows this hel','p without waiting' + '**1h_Shows this help without waiting' ); diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas index 4ce726b7c3..00a3de6df5 100644 --- a/compiler/x86/aasmcpu.pas +++ b/compiler/x86/aasmcpu.pas @@ -2626,6 +2626,10 @@ implementation const b66: Byte=$66; begin +{$ifdef i8086} + if current_settings.cputype