From: Andrey B. <ro...@ya...> - 2003-07-02 00:52:39
|
R> Hello mingw-users, R> this type defenition: R> typedef long (*functype)(long,long) __attribute__((regparm(2))); R> don't working correctly, because R> ((functype)func)(10,20); R> transfer parameters in stack. R> How can i execute a function that get parameters from registers? R> (function is in another module) 1. You must have function (not pointers) with attribute regparm. 2. You must declare pointer type for this function. 3. You can use this pointers to functions without type conversion. If your functions hasn't attribute regparm, type conversion will be ignored by compiler (or you got error message). example: typedef long function_t (long, long) __attribute__ ((regparm(2))); typedef function_t *pointer_t; function_t function_1, function_2; pointer_t pfn; pfn= function_1; pfn (10, 20); pfn= function_1; pfn (10, 20); See attachments. -- Best regards, Andrey ro...@ya... |