From: RomikB <ro...@ma...> - 2003-10-19 08:09:47
|
Hello mingw-users, I write this code: /*******************************************************************************/ register unsigned long *psxregs __asm__("esi"); static long ___LoadHeader( long hfile , struct EXEC *exec)//bfc03c90 { char buf[0x800]; if( hleread( hfile , buf , 0x00000800 ) < 0x00000800 ) return 0; memcpy( exec , buf + 0x10 , 0x0000003c );//at bfc02b50 return 1; } void foo(void) { psxregs = something;//or//something = psxregs; ... } /*******************************************************************************/ And get this error. /*******************************************************************************/ ../plugin_libapi.c: In function `___LoadHeader': ../plugin_libapi.c:432: error: unable to find a register to spill in class `SIREG' ../plugin_libapi.c:432: error: this is the insn: (insn:HI 33 31 37 2 01621810 (parallel [ (set (reg:SI 2 ecx [67]) (const_int 0 [0x0])) (set (reg/f:SI 5 edi [64]) (plus:SI (ashift:SI (reg:SI 2 ecx [66]) (const_int 2 [0x2])) (reg/v/f:SI 60))) (set (reg/f:SI 0 eax [65]) (plus:SI (ashift:SI (reg:SI 2 ecx [66]) (const_int 2 [0x2])) (reg/f:SI 0 eax [65]))) (set (mem:BLK (reg/v/f:SI 60) [0 S60 A32]) (mem:BLK (reg/f:SI 0 eax [65]) [0 S60 A128])) (use (reg:SI 2 ecx [66])) (use (reg:SI 19 dirflag)) ]) 451 {rep_movsi} (insn_list 29 (insn_list 30 (insn_list 31 (nil)))) (expr_list:REG_DEAD (reg:SI 19 dirflag) (expr_list:REG_DEAD (reg:SI 2 ecx [66]) (expr_list:REG_DEAD (reg/v/f:SI 60) (expr_list:REG_UNUSED (reg:SI 2 ecx [67]) (expr_list:REG_UNUSED (reg/f:SI 5 edi [64]) /*******************************************************************************/ This Error depend from 3 strings: 1)register unsigned long *psxregs __asm__("esi"); 2)memcpy( exec , buf + 0x10 , 0x0000003c );//at bfc02b50 3)psxregs = something;//or//something = psxregs; it because of bad implementation of "memcpy" function, can you fix it PS: It's very old error... -- Best regards, RomikB mailto:ro...@ma... |