Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Feature request: implement Windows X86 thiscall

Aperta
#8 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
c
Ambito
compilers

Direzione di ricerca

Inizia individuando l’implementazione della convenzione di chiamata x86 Windows per attributes(thiscall); l’issue fornisce la dichiarazione C e la sequenza di istruzioni prevista come riferimento comportamentale. Il lavoro è completato quando il primo argomento viene inserito in ECX, gli argomenti rimanenti vengono inseriti nello stack e il callee ripulisce lo stack durante la chiamata a librerie C++.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Basically, the first argument to a function specified as a thiscall (calling convention, attributes(thiscall)) should be placed into ECX, all other arguments are pushed to the stack, the callee does stack cleanup. It is a windows stdcall with the first argument passed to ecx. This feature would allow calling into C++ libraries.

// Calling this function:
attributes(thiscall) void f(void* this, int a, int b, int c);

// e.g., using this line: f((void*) 0xBEEFBEEF, 1, 2, 3)
// Should produce this code:
push 3
push 2
push 1
mov ecx, 0xBEEFBEEF 
call f // the callee cleans up the stack
Lingua principale
C
Stelle
64
Fork
27
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.