Recent

Author Topic: Assembler error ‘illegal operands’ when compiling on RISC-V 64 computer  (Read 982 times)

yurets_z

  • Newbie
  • Posts: 2
I’m new to the topic of compiling the IDE from source and crosscompiling.
I found it interesting to try porting a couple of my Lazarus GUI projects on RISC-V 64 SBC (VisionFive 2) operating under Debian OS.

For that I used a cross compiled version of FPC 3.3.1 from trunk  (http://downloads.freepascal.org/fpc/snapshot/trunk/riscv64-linux/fpc-3.3.1.riscv64-linux.built.on.x86_64-linux.tar.gz) and Lazarus 3.4.0 source files.

When trying to build the IDE (via “make clean all” ) I get the following output and assembler error in the mid of the process:

Code: Pascal  [Select][+][-]
  1. (3104) Compiling formeditingintf.pas
  2. /home/user/Lazarus/components/ideintf/formeditingintf.pas(321,12) Note: (6058) Call to subroutine "function LeftFromDesignInfo(ADesignInfo:LongInt):System.SmallInt;" marked as inline is not inlined
  3. /home/user/Lazarus/components/ideintf/formeditingintf.pas(323,11) Note: (6058) Call to subroutine "function TopFromDesignInfo(ADesignInfo:LongInt):System.SmallInt;" marked as inline is not inlined
  4. /home/user/Lazarus/components/ideintf/formeditingintf.pas(337,26) Note: (6058) Call to subroutine "function LeftTopToDesignInfo(const ALeft:SmallInt;const ATop:SmallInt):System.LongInt;" marked as inline is not inlined
  5. /home/user/Lazarus/components/ideintf/formeditingintf.pas(150,43) Hint: (5024) Parameter "aForm" not used
  6. /home/user/Lazarus/components/ideintf/formeditingintf.pas(162,35) Hint: (5024) Parameter "AComponent" not used
  7. /home/user/Lazarus/components/ideintf/formeditingintf.pas(163,38) Hint: (5024) Parameter "Parent" not used
  8. /home/user/Lazarus/components/ideintf/formeditingintf.pas(163,63) Hint: (5024) Parameter "ChildClass" not used
  9. /home/user/Lazarus/components/ideintf/formeditingintf.pas(165,38) Hint: (5024) Parameter "AComponent" not used
  10. /home/user/Lazarus/components/ideintf/formeditingintf.pas(166,41) Hint: (5024) Parameter "AComponent" not used
  11. /home/user/Lazarus/components/ideintf/formeditingintf.pas(170,37) Hint: (5024) Parameter "aComponent" not used
  12. /home/user/Lazarus/components/ideintf/formeditingintf.pas(174,23) Hint: (5024) Parameter "Sender" not used
  13. /home/user/Lazarus/components/ideintf/formeditingintf.pas(174,50) Hint: (5024) Parameter "Key" not used
  14. /home/user/Lazarus/components/ideintf/formeditingintf.pas(174,66) Hint: (5024) Parameter "Shift" not used
  15. /home/user/Lazarus/components/ideintf/formeditingintf.pas(175,21) Hint: (5024) Parameter "Sender" not used
  16. /home/user/Lazarus/components/ideintf/formeditingintf.pas(175,48) Hint: (5024) Parameter "Key" not used
  17. /home/user/Lazarus/components/ideintf/formeditingintf.pas(175,64) Hint: (5024) Parameter "Shift" not used
  18. /home/user/Lazarus/components/ideintf/formeditingintf.pas(176,30) Hint: (5024) Parameter "Button" not used
  19. /home/user/Lazarus/components/ideintf/formeditingintf.pas(176,57) Hint: (5024) Parameter "Shift" not used
  20. /home/user/Lazarus/components/ideintf/formeditingintf.pas(176,82) Hint: (5024) Parameter "p" not used
  21. /home/user/Lazarus/components/ideintf/formeditingintf.pas(176,102) Hint: (5024) Parameter "Handled" not used
  22. /home/user/Lazarus/components/ideintf/formeditingintf.pas(177,30) Hint: (5024) Parameter "Shift" not used
  23. /home/user/Lazarus/components/ideintf/formeditingintf.pas(177,55) Hint: (5024) Parameter "p" not used
  24. /home/user/Lazarus/components/ideintf/formeditingintf.pas(177,75) Hint: (5024) Parameter "Handled" not used
  25. /home/user/Lazarus/components/ideintf/formeditingintf.pas(178,28) Hint: (5024) Parameter "Button" not used
  26. /home/user/Lazarus/components/ideintf/formeditingintf.pas(178,55) Hint: (5024) Parameter "Shift" not used
  27. /home/user/Lazarus/components/ideintf/formeditingintf.pas(178,80) Hint: (5024) Parameter "p" not used
  28. /home/user/Lazarus/components/ideintf/formeditingintf.pas(178,100) Hint: (5024) Parameter "Handled" not used
  29. /home/user/Lazarus/components/ideintf/formeditingintf.pas(179,45) Hint: (5024) Parameter "APersistent" not used
  30. /home/user/Lazarus/components/ideintf/formeditingintf.pas(179,80) Hint: (5024) Parameter "AIndex" not used
  31. (9009) Assembling formeditingintf
  32. units/riscv64-linux/nogui/formeditingintf.s: Assembler messages:
  33. units/riscv64-linux/nogui/formeditingintf.s:4040: Error: illegal operands `lui ireg32,1'
  34. units/riscv64-linux/nogui/formeditingintf.s:4041: Error: illegal operands `addiw ireg32,ireg32,-1760'
  35. units/riscv64-linux/nogui/formeditingintf.s:4042: Error: illegal operands `add ireg33,x5,ireg32'
  36. units/riscv64-linux/nogui/formeditingintf.s:4043: Error: illegal operands `ld x5,0(ireg33)'
  37. units/riscv64-linux/nogui/formeditingintf.s:4127: Error: illegal operands `lui ireg32,1'
  38. units/riscv64-linux/nogui/formeditingintf.s:4128: Error: illegal operands `addiw ireg32,ireg32,-1760'
  39. units/riscv64-linux/nogui/formeditingintf.s:4129: Error: illegal operands `add ireg33,x5,ireg32'
  40. units/riscv64-linux/nogui/formeditingintf.s:4130: Error: illegal operands `ld x5,0(ireg33)'
  41. units/riscv64-linux/nogui/formeditingintf.s:4214: Error: illegal operands `lui ireg32,1'
  42. units/riscv64-linux/nogui/formeditingintf.s:4215: Error: illegal operands `addiw ireg32,ireg32,-1760'
  43. units/riscv64-linux/nogui/formeditingintf.s:4216: Error: illegal operands `add ireg33,x5,ireg32'
  44. units/riscv64-linux/nogui/formeditingintf.s:4217: Error: illegal operands `ld x5,0(ireg33)'
  45. units/riscv64-linux/nogui/formeditingintf.s:4231: Error: illegal operands `lui ireg32,1'
  46. units/riscv64-linux/nogui/formeditingintf.s:4232: Error: illegal operands `addiw ireg32,ireg32,-1456'
  47. units/riscv64-linux/nogui/formeditingintf.s:4233: Error: illegal operands `add ireg33,x5,ireg32'
  48. units/riscv64-linux/nogui/formeditingintf.s:4234: Error: illegal operands `ld x5,0(ireg33)'
  49. /home/user/Lazarus/components/ideintf/formeditingintf.pas(847) Error: (9007) Error while assembling exitcode 1
  50. /home/user/Lazarus/components/ideintf/formeditingintf.pas(847) Fatal: (10026) There were 2 errors compiling module, stopping
  51. Fatal: (1018) Compilation aborted
  52. make[2]: *** [Makefile:3768: ideintf.ppu] Error 1
  53. make[2]: Leaving directory '/home/user/Lazarus/components/ideintf'
  54. make[1]: *** [Makefile:1912: lazbuildlclpackages] Error 2
  55. make[1]: Leaving directory '/home/user/Lazarus/components'
  56. make: *** [Makefile:3129: lazbuild] Error 2
  57.  

I guess the complain is about ireg32 and ireg33 operands. Any ideas/suggestions about the reason and how that could be fixed?


Kind regards,

Yuriy

 

TinyPortal © 2005-2018