aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam NAILI2018-06-06 01:23:12 +0200
committerAdam NAILI2018-06-06 01:23:12 +0200
commit8b58c6409f4217ceaf64d6195b383f03b8acf584 (patch)
treee8114323c7721a01eb3c65497bca41dbe8317b86
parentaa16ecbb7e3a3dbd9ecc5c3d5e12f7c96a41974f (diff)
parent9c2f38eab053a48a7c46ed267379764177cecdd8 (diff)
downloadtpc-compiler-8b58c6409f4217ceaf64d6195b383f03b8acf584.tar.gz
Merge branch 'master' of https://github.com/pacien/upem-compil-tpc
-rw-r--r--doc/rapport.md7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/rapport.md b/doc/rapport.md
index 17a5719..b5bfad8 100644
--- a/doc/rapport.md
+++ b/doc/rapport.md
@@ -95,8 +95,15 @@ Pour des raisons de simplicité, il a été choisi de travailler principalement
95 95
96## Fonctions 96## Fonctions
97 97
98## Passage de paramètres
99
98Il a été choisi d'effectuer le passage des paramamètres simples (de types `entier` et `caractere`) par copie pour des raisons de simplicité et de sécurité, pour permettre une certaine isolation des contextes lors de l'entrée dans une fonction. 100Il a été choisi d'effectuer le passage des paramamètres simples (de types `entier` et `caractere`) par copie pour des raisons de simplicité et de sécurité, pour permettre une certaine isolation des contextes lors de l'entrée dans une fonction.
99 101
102Tous les paramètres sont implicitement convertis en type `entier`, la vérification du typage des paramètres s'avérant difficile. De plus, il n'est pas possible de passer un tableau en paramètre par référence.
103
104
105## Retour de valeur
106
100Les fonction valuées retournent leur valeur en suivant les conventions d'appel des fonctions C, c'est-à-dire en la plaçant dans le registre `rax`. L'appelant récupère ensuite cette valeur pour pouvoir la stocker dans la pile. 107Les fonction valuées retournent leur valeur en suivant les conventions d'appel des fonctions C, c'est-à-dire en la plaçant dans le registre `rax`. L'appelant récupère ensuite cette valeur pour pouvoir la stocker dans la pile.
101 108
102L'analyse statique des branchements étant un problème relativement complexe, il a été choisi de retourner une valeur par défaut (`-1`) en cas d'absence d'instruction de retour dans une fonction valuée. 109L'analyse statique des branchements étant un problème relativement complexe, il a été choisi de retourner une valeur par défaut (`-1`) en cas d'absence d'instruction de retour dans une fonction valuée.