From: Philipp K. <pk...@sp...> - 2003-07-14 20:30:49
|
Kieren Johnstone wrote: > Hi there > > [SDCC : mcs51/gbz80/z80/avr/ds390/pic14/TININative/xa51 2.3.5 (Apr 21 > 2003) (MINGW32)] > >> From my few weeks with the SDCC Z80 port... > > > * There is no "real" support for IN, OUT (I/O port) instructions -- > preferably, inlining of the OUT/IN commands would be preferred (rather > than a call!) This is a problem for me, too, but funtions would be OK for me. The attached files contain the solution I was about to propose. > > * This code: some_byte_buffer[(unsigned short)offset] |= 8; ... > doesn't actually use an OR instruction, but something else.. I'm not > sure this is extremely efficient. Of course, this is not a vital issue! Though I didn't yet compile it to see what the compiler really does, maybe it uses the SET instruction, since |= 8 is equivalent to setting one bit. The SET instruction is slower than the OR instruction, but for the OR you would have to copy the data to register A first, so in some cases SET will be faster. Philipp Krause |