Re: [AD] x color conversion again |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
> Heh. Does this mean, there might be other code like that? Like, the asm
> blitters and so on. But since there's no more crashes in the signals
> version, I guess not.
No, I don't think so. As I said, I didn't invent anything, I copy-pasted
Isaac's code.
> Well, the 16 was my idea, since the original code said:
>
> #define LOCAL1 -4(%esp)
> #define LOCAL2 -8(%esp)
> #define LOCAL3 -12(%esp)
> #define LOCAL4 -16(%esp)
Then it's a minor mistake ;-) The non-MMX code only declares 3 local
variables so the frame is 12-byte large, not 16-byte large.
> So I assumed adding 16 would be the way to fix it. I must admit, I'm not
> sure what you mean with 16-byte alignement. Does it mean, I can use
> something like -4(%esp) if and only if %esp is 16-byte aligned?
This means that, at any time (especially on interrupt boundaries and context
switches), the value of %esp must be a multiple of 16. So you can only
add or subtract multiples of 16 to %esp.
> SPILL_SPOT would be sort of a temp variable?
Yes, but uninitialized by the setup code.
I'll try to write something in the next few days.
--
Eric Botcazou