Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
August 10, 2013 Inline assembly registers | ||||
---|---|---|---|---|
| ||||
Hello for all! Which registers in IASM i must preserve? http://dlang.org/iasm.html says nothing. Regards. |
August 10, 2013 Re: Inline assembly registers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | Temtaime:
> Which registers in IASM i must preserve?
> http://dlang.org/iasm.html says nothing.
D is a system language, and registers are there to be used. What do you want to keep safe?
Take a look at the docs page about the D ABI.
Bye,
bearophile
|
August 10, 2013 Re: Inline assembly registers | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | I'm writing some ASM code in my function. Does it mean that DMD saves "his" registers before my asm code and restores after? So i can use all registers without interaction with code that DMD backend produces? |
August 10, 2013 Re: Inline assembly registers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | Temtaime:
> I'm writing some ASM code in my function.
>
> Does it mean that DMD saves "his" registers before my asm code and restores after? So i can use all registers without interaction with code that DMD backend produces?
dmd saves some registers before the asm code, and then restores them after your asm. If you don't want that behavour then you have to use the "naked" attribute.
For details of what registers can be used take a look at the docs. And also take a look at the disassembly of your function that contains an empty asm statement, to see exactly what's saved.
Bye,
bearophile
|
August 10, 2013 Re: Inline assembly registers | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | Now it's clear. Thanks very much! |
Copyright © 1999-2021 by the D Language Foundation