Recent

Author Topic: someone guide me to continue work on mips64el  (Read 1231 times)

cai

  • New Member
  • *
  • Posts: 46
someone guide me to continue work on mips64el
« on: May 04, 2023, 12:25:32 pm »
I use FPC Trunk & binutils 2.40 to build ppcross compiler, I know it is incompleted.
for now,  build rtl error info:
-----------------------------------------------------
H:/fpcupdeluxe/fpc/bin/i386-win32/ppcrossmips64el.exe -Ur -Tlinux -Pmips64el -XPmips64el-linux- -Ur -Xs -O2 -n -Fi../inc -Fi../mips64el -Fi../unix -Fimips64el -FDH:\fpcupdeluxe\cross\bin\mips64el-linux -FE. -FUH:/fpcupdeluxe/fpcsrc/rtl/units/mips64el-linux -Cg -vw-n-h-l-d-u-t-p-c- -dmips64el -dRELEASE -XPmips64el-linux- -Xd -FlH:\fpcupdeluxe\cross\lib\mips64el-linux  -Us -Sg system.pp
flt_core.inc(1567,1) Fatal: Internal error 2002122100
Fatal: Compilation aborted
=====================================
1. error 2002122100 related-code
------------------------------
Code: Pascal  [Select][+][-]
  1. procedure TCGMIPS.a_load_reg_ref(list: tasmlist; FromSize, ToSize: TCGSize; reg: tregister; const Ref: TReference);
  2. var
  3.   op: tasmop;
  4.   href: treference;
  5. begin
  6.   if (TCGSize2Size[fromsize] < TCGSize2Size[tosize]) then
  7.     a_load_reg_reg(list,fromsize,tosize,reg,reg);
  8.   if (ref.alignment<>0) and
  9.      (ref.alignment<tcgsize2size[tosize]) then
  10.     begin
  11.       a_load_reg_ref_unaligned(list,FromSize,ToSize,reg,ref);
  12.       exit;
  13.     end;
  14.   case tosize of
  15.     OS_8,
  16.     OS_S8:
  17.       Op := A_SB;
  18.     OS_16,
  19.     OS_S16:
  20.       Op := A_SH;
  21.     OS_32,
  22.     OS_S32:
  23.       Op := A_SW;
  24.     OS_64,
  25.     OS_S64:
  26.       Op := A_SD;
  27.     else
  28.       InternalError(2002122100);
  29.   end;
  30.   href:=ref;
  31.   make_simple_ref(list,href);
  32.   list.concat(taicpu.op_reg_ref(op,reg,href));
  33. end;  
  34.  

2. flt_core.inc(1567,1)
-------------------------------
Code: Pascal  [Select][+][-]
  1.     one_e: integer;
  2.     one_mask, f: dword;
  3.     buf: TAsciiDigits;
  4.  
  5. begin // line 1567
  6.  
  7.     // Limit parameters
  8.     if ( frac_digits > 216 ) then
  9.         frac_digits := 216; // Delphi compatible
  10.     if ( min_width <= C_NO_MIN_WIDTH ) then
  11.         min_width := -1 // no minimal width
  12.  


now my question is, How to proceed with the next modification work?
just a hobby in my spare time,thanks for any guide!

 

TinyPortal © 2005-2018