jnp Assembler
Manfred Hansen
m.hansen at kielnet.net
Tue Jun 5 09:12:08 PDT 2007
Hello,
the following programm runs with dmd but didn't with gdc .
import tango.io.Stdout;
real sin(real x)
{
asm {
fld x;
fsin;
sahf;
jnp Lret;
}
end:
return real.nan;
Lret:
;
}
void main() {
real r = sin(1);
Stdout(r);
}
hansen at hansen-lx:~/dd/tango$ rebuild fsin_gdc.d
./nmd_fsin_gdc.o: In function `_D8fsin_gdc3sinFeZe':
fsin_gdc.d:(.text+0xe): undefined reference to `.LDASM1'
collect2: ld returned 1 exit status
I think the problem is the "jnp Lret; command.
I also looked in Math.d for tangens from tango.
real tan(real x)
{
version (GNU) {
return tanl(x);
} else {
asm
{
fld x[EBP] ; // load theta
...
They make a difference between dmd and gdc Compiler.
(In Phobos not)
Is a jump outside the asm block not possible with gdc?
Manfred
More information about the D.gnu
mailing list