?? Un handler d'interruption ne doit modifier aucun registre, y compris SR.
J'ai fait le calcul et je sais que c'est négligeable, même en inlinant les sous-fonctions éventuelles du handler d'INT1.
Link Le 19/06/2005 à 14:47 Donc, en fait, INT_HANDLER est défini comme les DECLARE_HANDLE( xxxx ) de Windows:
typedef struct HBITMAP__ { int unused; } *HBITMAP;
et donc, une fonction handler d'interruption n'est même pas définie comme une fonction ayant des __attribute__ spéciaux, si j'ai bien compris la doc?

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Ben, regarde intr.h... Je ne suis pas sûr que Kevin ait déjà modifié les définitions pour utiliser __attribute__((__interrupt_handler__)).
Mail de Kevin reçu ce matin:
Je te signale que oui, DEFINE_INT_HANDLER utilise
__attribute__((interrupt_handler)), et qu'il est fortement déconseillé
d'utiliser l'attribut directement, parce que 1. ça ne marche qu'avec
GCC 4
ou plus (3.4 ou plus, mais il n'y a pas eu de GCC 3.4 pour TIGCC) et 2.
ce
n'est pas type-safe (ça donne un void (*)(void) quand ce qu'on veut est
un
INT_HANDLER).
Voilà les définitions:
typedef struct __attribute__((__may_alias__)){short
foo;}_DEREF_INT_HANDLER,*INT_HANDLER;
#define DEFINE_INT_HANDLER(name) extern _DEREF_INT_HANDLER name[];
asm(".xdef __ref_all___custom_int_handlers;.text;.even;"#name":move.w
#0x2700,%sr;movem.l %d0-%d7/%a0-%a6,-(%sp);move.l 0xC8,%a5;jbsr
__"#name"_body__;movem.l (%sp)+,%d0-%d7/%a0-%a6;rte"); void
__##name##_body__(void)
#if __GNUC__>=4
#undef DEFINE_INT_HANDLER
#define DEFINE_INT_HANDLER(name) extern _DEREF_INT_HANDLER name[];
asm(".xdef __ref_all___custom_int_handlers;"); void __##name##_body__
(void)
asm( #name ); __attribute__((__interrupt_handler__)) void
__##name##_body__
(void)
#endif
(D'ailleurs, je vais complètement virer la définition GCC 3 bientôt,
utiliser GCC 3 avec un TIGCC livré avec GCC 4 n'est pas supporté.)

Mais qu'est-ce que GCC est user friendly, ya vraiment pas d'autre chose a dire...

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Si ils voulaient se mettre enfin au #pragma .....

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Même si ça s'est arrangé par rapport à une époque, les #pragmas sont mal faits en C. Ils ne veulent pas utiliser le #pragma GCC qui leur est pourtant réservé, et préfèrent ce système d'attributes...