Просмотр исходного кода

* started to fix the mips(el) linux rtl

git-svn-id: trunk@20255 -
florian 13 лет назад
Родитель
Сommit
8b339ded7a

+ 13 - 1
.gitattributes

@@ -452,6 +452,7 @@ compiler/ppcgen/ngppccnv.pas svneol=native#text/plain
 compiler/ppcgen/ngppcinl.pas svneol=native#text/plain
 compiler/ppcgen/ngppcset.pas svneol=native#text/plain
 compiler/ppcgen/rgcpu.pas svneol=native#text/plain
+compiler/ppcmips.lpi svneol=native#text/plain
 compiler/ppcmipsel.lpi svneol=native#text/plain
 compiler/ppcppc.lpi svneol=native#text/plain
 compiler/ppcsparc.lpi svneol=native#text/plain
@@ -7540,6 +7541,9 @@ rtl/linux/m68k/syscall.inc svneol=native#text/plain
 rtl/linux/m68k/syscallh.inc svneol=native#text/plain
 rtl/linux/m68k/sysnr.inc svneol=native#text/plain
 rtl/linux/mips/bsyscall.inc svneol=native#text/plain
+rtl/linux/mips/cprt0.as svneol=native#text/plain
+rtl/linux/mips/dllprt0.as svneol=native#text/plain
+rtl/linux/mips/gprt0.as svneol=native#text/plain
 rtl/linux/mips/prt0.as svneol=native#text/plain
 rtl/linux/mips/sighnd.inc svneol=native#text/plain
 rtl/linux/mips/sighndh.inc svneol=native#text/plain
@@ -7547,7 +7551,11 @@ rtl/linux/mips/stat.inc svneol=native#text/plain
 rtl/linux/mips/syscall.inc svneol=native#text/plain
 rtl/linux/mips/syscallh.inc svneol=native#text/plain
 rtl/linux/mips/sysnr.inc svneol=native#text/plain
+rtl/linux/mipsel/cprt0.as svneol=native#text/plain
+rtl/linux/mipsel/dllprt0.as svneol=native#text/plain
+rtl/linux/mipsel/gprt0.as svneol=native#text/plain
 rtl/linux/mipsel/prt0.as svneol=native#text/plain
+rtl/linux/mipsel/stat.inc svneol=native#text/plain
 rtl/linux/oldlinux.pp svneol=native#text/plain
 rtl/linux/osdefs.inc svneol=native#text/plain
 rtl/linux/osmacro.inc svneol=native#text/plain
@@ -7656,13 +7664,17 @@ rtl/macos/sysutils.pp svneol=native#text/plain
 rtl/mips/int64p.inc svneol=native#text/plain
 rtl/mips/makefile.cpu svneol=native#text/plain
 rtl/mips/math.inc svneol=native#text/plain
-rtl/mips/mipsel.inc svneol=native#text/plain
+rtl/mips/mips.inc svneol=native#text/plain
 rtl/mips/set.inc svneol=native#text/plain
 rtl/mips/setjump.inc svneol=native#text/plain
 rtl/mips/setjumph.inc svneol=native#text/plain
 rtl/mips/strings.inc svneol=native#text/plain
 rtl/mips/stringss.inc svneol=native#text/plain
 rtl/mipsel/makefile.cpu svneol=native#text/plain
+rtl/mipsel/math.inc svneol=native#text/plain
+rtl/mipsel/mips.inc svneol=native#text/plain
+rtl/mipsel/set.inc svneol=native#text/plain
+rtl/mipsel/setjumph.inc svneol=native#text/plain
 rtl/morphos/Makefile svneol=native#text/plain
 rtl/morphos/Makefile.fpc svneol=native#text/plain
 rtl/morphos/aboxlib.pas -text svneol=unset#text/plain

+ 95 - 0
compiler/ppcmips.lpi

@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<CONFIG>
+  <ProjectOptions>
+    <PathDelim Value="\"/>
+    <Version Value="7"/>
+    <General>
+      <Flags>
+        <MainUnitHasUsesSectionForAllUnits Value="False"/>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+        <AlwaysBuild Value="False"/>
+        <LRSInOutputDirectory Value="False"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
+      <TargetFileExt Value=".exe"/>
+      <Title Value="pp"/>
+    </General>
+    <PublishOptions>
+      <Version Value="2"/>
+      <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+    </PublishOptions>
+    <RunParams>
+      <local>
+        <FormatVersion Value="1"/>
+        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
+      </local>
+    </RunParams>
+    <RequiredPackages Count="1">
+      <Item1>
+        <PackageName Value="LCL"/>
+        <MinVersion Major="1" Valid="True"/>
+      </Item1>
+    </RequiredPackages>
+    <Units Count="4">
+      <Unit0>
+        <Filename Value="pp.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="pp"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="mips\aasmcpu.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="aasmcpu"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="mips\aoptcpu.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="aoptcpu"/>
+      </Unit2>
+      <Unit3>
+        <Filename Value="aopt.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="aopt"/>
+      </Unit3>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="8"/>
+    <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="mips\pp"/>
+    </Target>
+    <SearchPaths>
+      <IncludeFiles Value="mips\"/>
+      <OtherUnitFiles Value="mips\;systems\"/>
+      <UnitOutputDirectory Value="mips\lazbuild"/>
+    </SearchPaths>
+    <Parsing>
+      <SyntaxOptions>
+        <CStyleOperator Value="False"/>
+        <AllowLabel Value="False"/>
+        <CPPInline Value="False"/>
+      </SyntaxOptions>
+    </Parsing>
+    <Linking>
+      <Debugging>
+        <GenerateDebugInfo Value="True"/>
+      </Debugging>
+    </Linking>
+    <Other>
+      <Verbosity>
+        <ShowWarn Value="False"/>
+        <ShowNotes Value="False"/>
+        <ShowHints Value="False"/>
+      </Verbosity>
+      <ConfigFile>
+        <StopAfterErrCount Value="50"/>
+      </ConfigFile>
+      <CustomOptions Value="-dmips"/>
+      <CompilerPath Value="$(CompPath)"/>
+    </Other>
+  </CompilerOptions>
+</CONFIG>

+ 2 - 2
compiler/systems/i_linux.pas

@@ -737,7 +737,7 @@ unit i_linux;
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_mips;
             unit_env     : 'LINUXUNITS';
-            extradefines : 'UNIX;HASUNIX';
+            extradefines : 'UNIX;HASUNIX;CPUMIPS32';
             exeext       : '';
             defext       : '.def';
             scriptext    : '.sh';
@@ -801,7 +801,7 @@ unit i_linux;
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_mipsel;
             unit_env     : 'LINUXUNITS';
-            extradefines : 'UNIX;HASUNIX;MIPSEL';
+            extradefines : 'UNIX;HASUNIX;MIPSEL;CPUMIPS32';
             exeext       : '';
             defext       : '.def';
             scriptext    : '.sh';

+ 20 - 0
rtl/inc/systemh.inc

@@ -194,6 +194,26 @@ Type
   FarPointer = Pointer;
 {$endif CPUSPARC}
 
+{$ifdef CPUMIPS32}
+  {$define DEFAULT_DOUBLE}
+
+  {$define SUPPORT_SINGLE}
+  {$define SUPPORT_DOUBLE}
+
+  {$define FPC_INCLUDE_SOFTWARE_SHIFT_INT64}
+
+  {$ifndef FPUNONE}
+    ValReal = Double;
+  {$endif}
+
+  { map comp to int64, but this doesn't mean we compile the comp support in! }
+  Comp = Int64;
+  PComp = ^Comp;
+
+  FarPointer = Pointer;
+{$endif CPUMIPS32}
+
+
 {$ifdef CPUARM}
   {$define DEFAULT_DOUBLE}
 

+ 0 - 0
rtl/linux/mips/cprt0.as


+ 0 - 0
rtl/linux/mips/dllprt0.as


+ 0 - 0
rtl/linux/mips/gprt0.as


+ 16 - 16
rtl/linux/mips/syscall.inc

@@ -55,7 +55,7 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
@@ -123,12 +123,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -189,12 +189,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -256,12 +256,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -324,12 +324,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -393,12 +393,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -447,7 +447,7 @@ asm
   move  $5,$6
   move  $6,$7
   move  $7,$8
-#  move  $8,$9
+  move  $8,$9
   subu  $29,32
   sw    $9, 16($29)
 
@@ -468,12 +468,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1
@@ -546,12 +546,12 @@ asm
   b     .LFailed
   nop
 .LThreaded:
-  sw   $2,-4($fp)#temp#sw $4
+  sw   $2,temp
   lui   $4,%hi(errno)
   addiu   $4,$4,%lo(errno)
   jal   $8
   nop
-  lw  $8,-4($fp)
+  lw  $8,temp
   sw  $8,0($2)
 .LFailed:
   li    $2,-1

+ 1 - 0
rtl/linux/mipsel/cprt0.as

@@ -0,0 +1 @@
+.include "mips/cprt0.as"

+ 1 - 0
rtl/linux/mipsel/dllprt0.as

@@ -0,0 +1 @@
+.include "mips/dllprt0.as"

+ 1 - 0
rtl/linux/mipsel/gprt0.as

@@ -0,0 +1 @@
+.include "mips/gprt0.as"

+ 1 - 0
rtl/linux/mipsel/stat.inc

@@ -0,0 +1 @@
+{$i ../mips/math.inc}

+ 0 - 0
rtl/mips/mipsel.inc → rtl/mips/mips.inc


+ 1 - 0
rtl/mipsel/math.inc

@@ -0,0 +1 @@
+{$i ../mips/math.inc}

+ 1 - 0
rtl/mipsel/mips.inc

@@ -0,0 +1 @@
+{$i ../mips/mips.inc}

+ 1 - 0
rtl/mipsel/set.inc

@@ -0,0 +1 @@
+{$ ../mips/set.inc}

+ 1 - 0
rtl/mipsel/setjumph.inc

@@ -0,0 +1 @@
+{$i ../mips/setjumph.inc}