System V ABI на Windows?
От: wl. Россия  
Дата: 07.03.19 07:39
Оценка:
Не знаю, правильный ли выбрал форум...
Мне понадобилось, чтобы параметры в функцию передавались как в System V ABI:

; __int64 __fastcall test(unsigned __int64, unsigned __int64)
;public test(unsigned long, unsigned long)
    test(unsigned long, unsigned long) proc near
....
; Вызов
    mov     esi, 2          ; unsigned __int64
    mov     edi, 1          ; unsigned __int64
    call    test(ulong,ulong)


Но в компиляторах clang, gcc, visual studio для Windows параметры передаются так:

; __int64 __fastcall test(unsigned __int64, unsigned __int64)
;public test(unsigned long long, unsigned long long)
    test(unsigned long long, unsigned long long) proc near
....
; Вызов
    mov     edx, 2          ; unsigned __int64
    mov     ecx, 1          ; unsigned __int64
    call    test(ulong long,ulong long)


Можно ли как-то извратиться, настройкой компилятора, или ключевым словом, чтобы передавать параметры по-первому варианту?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.