vak: (Знайка)
[personal profile] vak
Сам я горячий поклонник RISC-V и считаю, что это лучшая компьютерная архитектура, придуманная человечеством. Но для программиста, насколько революционные изменения привнёс RISC-V по сравнению с предшественниками? Давайте сравним хотя бы с тем же PowerPC. Тоже ведь неплохая была архитектура. Возьмём простую программу на Си, скажем суммирование массива.
int sum(int *arr, int n) {
    int s = 0;
    for (int i = 0; i < n; i++) {
        s += arr[i];
    }
    return s;
}
Перепишем эту программу на ассемблеры RISC-V и PowerPC, и сравним.
# a0 = arr
# a1 = n
# return value in a0

sum:
    li      t0, 0          # s = 0
    li      t1, 0          # i = 0

loop:
    bge     t1, a1, done   # if i >= n, exit

    slli    t2, t1, 2      # offset = i * 4
    add     t3, a0, t2     # addr = arr + offset
    lw      t4, 0(t3)      # load arr[i]

    add     t0, t0, t4     # s += arr[i]
    addi    t1, t1, 1      # i++

    j       loop

done:
    mv      a0, t0         # return s
    ret
# r3 = arr
# r4 = n
# return value in r3

sum:
    li      r5, 0          # s = 0
    li      r6, 0          # i = 0

loop:
    cmpw    r6, r4         # compare i, n
    bge     done           # if i >= n, exit

    slwi    r7, r6, 2      # offset = i * 4
    add     r8, r3, r7     # addr = arr + offset
    lwz     r9, 0(r8)      # load arr[i]

    add     r5, r5, r9     # s += arr[i]
    addi    r6, r6, 1      # i++

    b       loop

done:
    mr      r3, r5         # return s
    blr                    # return
Не то чтобы много различий можно углядеть. Условный переход делается в одну команду вместо двух. Остальное чисто разница мнемоник. Выходит, не такой уж оригинальный этот RISC-V как его превозносят.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org