[so] Optiuni compilare g++

Alin Popescu alinpopescu at live.com
Fri Apr 3 15:36:20 EEST 2009


Salut

Ma confrunt cu o problema si nu reusesc sa o rezolv. Vreau sa specific compilatorului g++ ca stiva creste de la adrese mari la adrese mici, sa-mi puna parametrii pe stiva in ordinea in care apar in antetul functiei, iar in momentul cand imi cedeaza lucrul (cand sunt in functie) esp/rsp sa fie actualizat sa faca referire la ultima variabila din declaratie.
Am vazut ca gcc e mai rau (pentru ca in std C/C++ nu se specifica nici macar sa transmita parametrii prin stiva si multe alte probleme):
_Z7funcPvS_S_x:
.LFB2:
    push    %rbp
.LCFI0:
    mov %rbp, %rsp
.LCFI1:
    mov QWORD PTR [%rbp-8], %rdi
    mov QWORD PTR [%rbp-16], %rsi
    mov QWORD PTR [%rbp-24], %rdx
    mov QWORD PTR [%rbp-32], %rcx
    cmp QWORD PTR [%rbp-32], 0
    jne .L2
    jmp .L1
.L2:
#APP
    .intel_syntax noprefix
        sub     rsp,        32
        push    rbp
Pe penultima linie trebuie sa fac eu explicit sub rsp, 32 pentru ca g++ nu e nici macar atat de dragut. Poate e si din cauza ca eu am invatat assembly din cartea
lui Lungu, iar acolo se spunea ca parametrii se transmit prin stiva, in ordinea inversa a aparitiei lor, etc.
Alin Popescu,
332 CB



_________________________________________________________________
Drag n’ drop—Get easy photo sharing with Windows Live™ Photos.

http://www.microsoft.com/windows/windowslive/products/photos.aspx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20090403/ee8a13e9/attachment.htm>


More information about the so mailing list