RISC-V assembler

mhi

  • *****
  • 500
    • Zobrazit profil
RISC-V assembler
« kdy: 25. 02. 2023, 23:14:41 »
Hezky vecer,

mel bych  par otazek na mistni znalce RISC-V.

1) proc jsou v nekterych instrukcich tak krypticky prehazovane bity ruznych imm/rel konstant? Napriklad JAL [RV32I] instrukce. Tam je bitove souvisly usek imm skladan jako imm[20] imm[10:1] imm[11] imm[19:12]; Kde se pripadne muzu docist na tema podobnych otazek navrhu R-V ISA, mam jich vic?

2) Jak v gnu as zapisu horni bity nejake adresy pro ucely auipc/lui (nejde mi primo o call). ELF relokace R_RISCV_HI20

3) to same pro dolni - ELF relokace R_RISCV_LO12_I apod.

4) Netyka se asi uplne Risc-V Tusite jak linker (gnu LD) resi RELAX relokaci, jak probehne to vyhozeni instrukce bez toho, aby musel prochazet cely kod a prehazovat vsechny relativni skoky/volani?

Dekuji.



mhi

  • *****
  • 500
    • Zobrazit profil
Re:RISC-V assembler
« Odpověď #2 kdy: 26. 02. 2023, 14:16:17 »
Dekuji za odkaz. Puvodne jsem v tom hledal, ze bud budou nejake bity napric formaty instkci spolecne, nebo podobny figl, a on tam je. Asi mne zmatla pro mne graficky celkem silene vyvedena dokumentace, nebo lui format, kde je zase posun.

Mel bych doplnujici otazky,

5) jak donutim gnu as, aby mi v pripade procesoru s "C"ompressed sadou vygeneroval 32bit instrukci, ktera ma ekvivalent v "I"nteger sade?

6) dale povedlo se vam pouzit Ubunti riscv64-gcc-(linux|unknown)-elf ke generovani kodu pro embedded rv32imc ? Jakou verzi a jake mate -march a -mabi ?

mhi

  • *****
  • 500
    • Zobrazit profil
Re:RISC-V assembler
« Odpověď #3 kdy: 28. 02. 2023, 18:28:55 »
Eh ... tolik reci o RISC-V a jen jedna odpoved (za ni presto dekuji).

aktualne nevim uz asi jen 5), zbytek jsem si prubezne zjistil, tak kdyby to resil nekdo dalsi, kdo opravdu realne R-V pouziva a ne jen o nem mluvi :) ...

Prekladacem si nejsem jist zda vygeneruje vzdy spravny kod, ale zda se funguje " riscv64-linux-gnu-gcc -c -march=rv32imc -mabi=ilp32 test.c  -fno-plt -fno-pie -fno-pic", chci-li kod pro 32bit mikrokontroller  (rv23imc apod.)

No a nakonec %hi(X) a %lo(X) resi ty offsety pro lui/auipc a jejich protejsky lw/jalr v GNU as.