Merge of rev21557 by Foxsen

Make macro MIPS/CPUMIPS/MIPS32 common for big endian and little endian mips processors
use MIPSEL* for little endian systems
use MIPSEB* for big endian systems

git-svn-id: trunk@21599 -
This commit is contained in:
pierre 2012-06-13 22:25:38 +00:00
parent 90fd8d8962
commit 600dd162af
14 changed files with 55 additions and 51 deletions

View File

@ -1177,7 +1177,7 @@ implementation
else else
AsmWriteln(tai_symbol(hp).sym.name); AsmWriteln(tai_symbol(hp).sym.name);
end; end;
if target_info.system in [system_mipsel_linux,system_mips_linux] then if target_info.system in [system_mipsel_linux,system_mipseb_linux] then
begin begin
AsmWrite(#9'.ent'#9); AsmWrite(#9'.ent'#9);
if replaceforbidden then if replaceforbidden then

View File

@ -171,6 +171,9 @@
{$ifdef mipsel} {$ifdef mipsel}
{$define mips} {$define mips}
{$endif mipsel} {$endif mipsel}
{$ifdef mipseb}
{$define mips}
{$endif mipseb}
{$ifdef mips} {$ifdef mips}
{$define cpu32bit} {$define cpu32bit}

View File

@ -296,7 +296,7 @@ unit cpugas;
idtxt: 'AS'; idtxt: 'AS';
asmbin: 'as'; asmbin: 'as';
asmcmd: '-mips2 -W -EB -o $OBJ $ASM'; asmcmd: '-mips2 -W -EB -o $OBJ $ASM';
supported_targets: [system_mips_linux]; supported_targets: [system_mipseb_linux];
flags: [af_allowdirect, af_needar, af_smartlink_sections]; flags: [af_allowdirect, af_needar, af_smartlink_sections];
labelprefix: '.L'; labelprefix: '.L';
comment: '# '; comment: '# ';
@ -307,6 +307,6 @@ begin
{$ifdef MIPSEL} {$ifdef MIPSEL}
RegisterAssembler(as_MIPSEL_as_info, TMIPSGNUAssembler); RegisterAssembler(as_MIPSEL_as_info, TMIPSGNUAssembler);
{$else MIPSEL} {$else MIPSEL}
RegisterAssembler(as_MIPS_as_info, TMIPSGNUAssembler); RegisterAssembler(as_MIPSEB_as_info, TMIPSGNUAssembler);
{$endif MIPSEL} {$endif MIPSEL}
end. end.

View File

@ -2765,7 +2765,7 @@ begin
{ these cpus have an inline sar implementaion } { these cpus have an inline sar implementaion }
{ currently, all supported CPUs have an internal sar implementation } { currently, all supported CPUs have an internal sar implementation }
{ $if defined(x86) or defined(arm) or defined(powerpc) or defined(powerpc64) or defined(sparc) or defined(mips) or defined(mipsel)} { $if defined(x86) or defined(arm) or defined(powerpc) or defined(powerpc64) or defined(sparc) or defined(mips)}
def_system_macro('FPC_HAS_INTERNAL_SAR'); def_system_macro('FPC_HAS_INTERNAL_SAR');
{ $endif} { $endif}
@ -2882,33 +2882,31 @@ begin
{$endif jvm} {$endif jvm}
{$ifdef mipsel} {$ifdef mipsel}
def_system_macro('CPUMIPS');
// HIGHLY TENTATIVE, from David Zhang's options.pas. MarkMLl. def_system_macro('CPUMIPS32');
//def_system_macro('CPUMIPS');
//def_system_macro('CPUMIPS32');
def_system_macro('CPUMIPSEL'); def_system_macro('CPUMIPSEL');
def_system_macro('CPUMIPSEL32'); def_system_macro('CPUMIPSEL32');
def_system_macro('CPU32'); def_system_macro('CPU32');
// def_system_macro('FPC_HAS_TYPE_DOUBLE'); def_system_macro('FPC_HAS_TYPE_DOUBLE');
// def_system_macro('FPC_HAS_TYPE_SINGLE'); def_system_macro('FPC_HAS_TYPE_SINGLE');
// def_system_macro('FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE'); def_system_macro('FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE');
def_system_macro('FPC_CURRENCY_IS_INT64'); def_system_macro('FPC_CURRENCY_IS_INT64');
def_system_macro('FPC_COMP_IS_INT64'); def_system_macro('FPC_COMP_IS_INT64');
// def_system_macro('FPC_REQUIRES_PROPER_ALIGNMENT'); def_system_macro('FPC_REQUIRES_PROPER_ALIGNMENT');
{$else not mipsel} {$endif mipsel}
{$ifdef mips}
// HIGHLY TENTATIVE, from David Zhang's options.pas. MarkMLl. {$ifdef mipseb}
def_system_macro('CPUMIPS'); def_system_macro('CPUMIPS');
def_system_macro('CPUMIPS32'); def_system_macro('CPUMIPS32');
def_system_macro('CPUMIPSEB');
def_system_macro('CPUMIPSEB32');
def_system_macro('CPU32'); def_system_macro('CPU32');
// def_system_macro('FPC_HAS_TYPE_DOUBLE'); def_system_macro('FPC_HAS_TYPE_DOUBLE');
// def_system_macro('FPC_HAS_TYPE_SINGLE'); def_system_macro('FPC_HAS_TYPE_SINGLE');
// def_system_macro('FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE'); def_system_macro('FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE');
def_system_macro('FPC_CURRENCY_IS_INT64'); def_system_macro('FPC_CURRENCY_IS_INT64');
def_system_macro('FPC_COMP_IS_INT64'); def_system_macro('FPC_COMP_IS_INT64');
// def_system_macro('FPC_REQUIRES_PROPER_ALIGNMENT'); def_system_macro('FPC_REQUIRES_PROPER_ALIGNMENT');
{$endif}
{$endif} {$endif}
{ read configuration file } { read configuration file }

View File

@ -178,7 +178,7 @@ const
{ 6 } 32 {'vis'}, { 6 } 32 {'vis'},
{ 7 } 64 {'ia64'}, { 7 } 64 {'ia64'},
{ 8 } 64 {'x86_64'}, { 8 } 64 {'x86_64'},
{ 9 } 32 {'mips'}, { 9 } 32 {'mipseb'},
{ 10 } 32 {'arm'}, { 10 } 32 {'arm'},
{ 11 } 64 {'powerpc64'}, { 11 } 64 {'powerpc64'},
{ 12 } 16 {'avr'}, { 12 } 16 {'avr'},
@ -196,7 +196,7 @@ const
{ 6 } 32 {'vis'}, { 6 } 32 {'vis'},
{ 7 } 64 {'ia64'}, { 7 } 64 {'ia64'},
{ 8 } 64 {'x86_64'}, { 8 } 64 {'x86_64'},
{ 9 } 32 {'mips'}, { 9 } 32 {'mipseb'},
{ 10 } 32 {'arm'}, { 10 } 32 {'arm'},
{ 11 } 64 {'powerpc64'}, { 11 } 64 {'powerpc64'},
{ 12 } 8 {'avr'}, { 12 } 8 {'avr'},

View File

@ -1364,7 +1364,7 @@ implementation
include(current_procinfo.flags,pi_is_assembler); include(current_procinfo.flags,pi_is_assembler);
p:=_asm_statement; p:=_asm_statement;
{$if not(defined(sparc)) and not(defined(arm)) and not(defined(avr)) and not(defined(mips)) and not(defined(mipsel))} {$if not(defined(sparc)) and not(defined(arm)) and not(defined(avr)) and not(defined(mips))}
if (po_assembler in current_procinfo.procdef.procoptions) then if (po_assembler in current_procinfo.procdef.procoptions) then
begin begin
{ set the framepointer to esp for assembler functions when the { set the framepointer to esp for assembler functions when the

View File

@ -43,7 +43,7 @@
cpu_vm, { 6 } cpu_vm, { 6 }
cpu_iA64, { 7 } cpu_iA64, { 7 }
cpu_x86_64, { 8 } cpu_x86_64, { 8 }
cpu_mips, { 9 } cpu_mipseb, { 9 }
cpu_arm, { 10 } cpu_arm, { 10 }
cpu_powerpc64, { 11 } cpu_powerpc64, { 11 }
cpu_avr, { 12 } cpu_avr, { 12 }
@ -143,7 +143,7 @@
system_i386_haiku, { 63 } system_i386_haiku, { 63 }
system_arm_darwin, { 64 } system_arm_darwin, { 64 }
system_x86_64_solaris, { 65 } system_x86_64_solaris, { 65 }
system_mips_linux, { 66 } system_mipseb_linux, { 66 }
system_mipsel_linux, { 67 } system_mipsel_linux, { 67 }
system_i386_nativent, { 68 } system_i386_nativent, { 68 }
system_i386_iphonesim, { 69 } system_i386_iphonesim, { 69 }

View File

@ -217,7 +217,7 @@ interface
systems_wince = [system_arm_wince,system_i386_wince]; systems_wince = [system_arm_wince,system_i386_wince];
systems_linux = [system_i386_linux,system_x86_64_linux,system_powerpc_linux,system_powerpc64_linux, systems_linux = [system_i386_linux,system_x86_64_linux,system_powerpc_linux,system_powerpc64_linux,
system_arm_linux,system_sparc_linux,system_alpha_linux,system_m68k_linux, system_arm_linux,system_sparc_linux,system_alpha_linux,system_m68k_linux,
system_x86_6432_linux,system_mips_linux,system_mipsel_linux]; system_x86_6432_linux,system_mipseb_linux,system_mipsel_linux];
systems_freebsd = [system_i386_freebsd, systems_freebsd = [system_i386_freebsd,
system_x86_64_freebsd]; system_x86_64_freebsd];
systems_netbsd = [system_i386_netbsd, systems_netbsd = [system_i386_netbsd,
@ -357,7 +357,7 @@ interface
cpu2str : array[TSystemCpu] of string[10] = cpu2str : array[TSystemCpu] of string[10] =
('','i386','m68k','alpha','powerpc','sparc','vm','ia64','x86_64', ('','i386','m68k','alpha','powerpc','sparc','vm','ia64','x86_64',
'mips','arm', 'powerpc64', 'avr', 'mipsel','jvm'); 'mipseb','arm', 'powerpc64', 'avr', 'mipsel','jvm');
abi2str : array[tabi] of string[10] = abi2str : array[tabi] of string[10] =
('DEFAULT','SYSV','AIX','EABI','ARMEB','EABIHF'); ('DEFAULT','SYSV','AIX','EABI','ARMEB','EABIHF');
@ -921,7 +921,7 @@ begin
{$ifdef mipsel} {$ifdef mipsel}
default_target(system_mipsel_linux); default_target(system_mipsel_linux);
{$else mipsel} {$else mipsel}
default_target(system_mips_linux); default_target(system_mipseb_linux);
{$endif mipsel} {$endif mipsel}
{$endif mips} {$endif mips}

View File

@ -792,15 +792,15 @@ unit i_linux;
{$endif FPC_ARMEL} {$endif FPC_ARMEL}
{$endif FPC_ARMHF} {$endif FPC_ARMHF}
system_mips_linux_info : tsysteminfo = system_mipseb_linux_info : tsysteminfo =
( (
system : system_mips_LINUX; system : system_mipseb_LINUX;
name : 'Linux for MIPS'; name : 'Linux for MIPSEB';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,
tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources]; tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
cpu : cpu_mips; cpu : cpu_mipseb;
unit_env : 'LINUXUNITS'; unit_env : 'LINUXUNITS';
extradefines : 'UNIX;HASUNIX;CPUMIPS32'; extradefines : 'UNIX;HASUNIX;CPUMIPS32';
exeext : ''; exeext : '';
@ -968,7 +968,7 @@ initialization
{$endif CPUARM} {$endif CPUARM}
{$ifdef CPUMIPS} {$ifdef CPUMIPS}
{$ifdef linux} {$ifdef linux}
set_source_info(system_mips_linux_info); set_source_info(system_mipseb_linux_info);
{$endif linux} {$endif linux}
{$endif CPUMIPS} {$endif CPUMIPS}
{$ifdef CPUMIPSEL} {$ifdef CPUMIPSEL}

View File

@ -138,8 +138,11 @@ const
{$ifdef arm} platform_select='';{$endif} {unknown :( } {$ifdef arm} platform_select='';{$endif} {unknown :( }
{$ifdef m68k} platform_select='';{$endif} {unknown :( } {$ifdef m68k} platform_select='';{$endif} {unknown :( }
{$ifdef mips} {$ifdef mips}
{$ifdef mipsel} platform_select='-EL';{$else} {$ifdef mipsel}
platform_select='-EB';{$endif} platform_select='-EL';
{$else}
platform_select='-EB';
{$endif}
{$endif} {$endif}
@ -1182,10 +1185,10 @@ initialization
RegisterExport(system_mipsel_linux,texportliblinux); RegisterExport(system_mipsel_linux,texportliblinux);
RegisterTarget(system_mipsel_linux_info); RegisterTarget(system_mipsel_linux_info);
{$else MIPS} {$else MIPS}
RegisterExternalLinker(system_mips_linux_info,TLinkerLinux); RegisterExternalLinker(system_mipseb_linux_info,TLinkerLinux);
RegisterImport(system_mips_linux,timportliblinux); RegisterImport(system_mipseb_linux,timportliblinux);
RegisterExport(system_mips_linux,texportliblinux); RegisterExport(system_mipseb_linux,texportliblinux);
RegisterTarget(system_mips_linux_info); RegisterTarget(system_mipseb_linux_info);
{$endif MIPSEL} {$endif MIPSEL}
{$endif MIPS} {$endif MIPS}
RegisterRes(res_elf_info,TWinLikeResourceFile); RegisterRes(res_elf_info,TWinLikeResourceFile);

View File

@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25] # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
# #
default: all default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mipseb-linux mipsel-linux jvm-java jvm-android
BSDs = freebsd netbsd openbsd darwin BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx haiku aix UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom LIMIT83fs = go32v2 os2 emx watcom
@ -492,7 +492,7 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mipseb-linux)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)
@ -702,7 +702,7 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
override CLEAN_UNITS+=ppu crc usubst override CLEAN_UNITS+=ppu crc usubst
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mipseb-linux)
override CLEAN_UNITS+=ppu crc usubst override CLEAN_UNITS+=ppu crc usubst
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)
@ -913,7 +913,7 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_UNITDIR+=.. override COMPILER_UNITDIR+=..
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mipseb-linux)
override COMPILER_UNITDIR+=.. override COMPILER_UNITDIR+=..
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)
@ -1123,7 +1123,7 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_SOURCEDIR+=.. override COMPILER_SOURCEDIR+=..
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mipseb-linux)
override COMPILER_SOURCEDIR+=.. override COMPILER_SOURCEDIR+=..
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)
@ -1946,7 +1946,7 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_RTL=1
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mipseb-linux)
REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_RTL=1
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)

View File

@ -201,8 +201,8 @@ program fpc;
cpusuffix:='386' cpusuffix:='386'
else if processorstr='m68k' then else if processorstr='m68k' then
cpusuffix:='68k' cpusuffix:='68k'
else if processorstr='mips' then else if processorstr='mipseb' then
cpusuffix:='mips' cpusuffix:='mipseb'
else if processorstr='mipsel' then else if processorstr='mipsel' then
cpusuffix:='mipsel' cpusuffix:='mipsel'
else if processorstr='powerpc' then else if processorstr='powerpc' then

View File

@ -67,7 +67,7 @@ const
{ 6 } 'vis', { 6 } 'vis',
{ 7 } 'ia64', { 7 } 'ia64',
{ 8 } 'x86_64', { 8 } 'x86_64',
{ 9 } 'mips', { 9 } 'mipseb',
{ 10 } 'arm', { 10 } 'arm',
{ 11 } 'powerpc64', { 11 } 'powerpc64',
{ 12 } 'avr', { 12 } 'avr',

View File

@ -71,9 +71,9 @@ interface
{$ifdef cpuarm} {$ifdef cpuarm}
source_cpu_string = 'arm'; source_cpu_string = 'arm';
{$endif cpuarm} {$endif cpuarm}
{$ifdef cpumips} {$ifdef cpumipseb}
source_cpu_string = 'mips'; source_cpu_string = 'mipseb';
{$endif cpumips} {$endif cpumipseb}
{$ifdef cpumipsel} {$ifdef cpumipsel}
source_cpu_string = 'mipsel'; source_cpu_string = 'mipsel';
{$endif cpumipsel} {$endif cpumipsel}