aboutsummaryrefslogtreecommitdiff
path: root/libphobos/src
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2019-04-23 22:53:12 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2019-04-23 22:53:12 +0000
commitd9392bfa032b448839abadb523aff65b8ccb3dba (patch)
tree1eaa98a40c61f1dcde726eeb560ca71882af7b82 /libphobos/src
parent1bacd25b0c2c6ce3f1f737a4a84dc9c806e9af4b (diff)
downloadgcc-d9392bfa032b448839abadb523aff65b8ccb3dba.zip
gcc-d9392bfa032b448839abadb523aff65b8ccb3dba.tar.gz
gcc-d9392bfa032b448839abadb523aff65b8ccb3dba.tar.bz2
libphobos: Add D support for RISC-V Linux
2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> * configure.tgt: Add riscv*-*-linux* as supported target. * libdruntime/gcc/sections/elf_shared.d (getDependencies): Adjust dlpi_addr on RISCV32 and RISCV64. * src/std/math.d: Add IEEE FPU control support for RISCV. From-SVN: r270522
Diffstat (limited to 'libphobos/src')
-rw-r--r--libphobos/src/std/math.d33
1 files changed, 33 insertions, 0 deletions
diff --git a/libphobos/src/std/math.d b/libphobos/src/std/math.d
index daee6ec..6dec9ce 100644
--- a/libphobos/src/std/math.d
+++ b/libphobos/src/std/math.d
@@ -4757,6 +4757,15 @@ private:
return result;
}
}
+ else version (RISCV_Any)
+ {
+ uint result = void;
+ asm pure nothrow @nogc
+ {
+ "frflags %0" : "=r" result;
+ }
+ return result;
+ }
else
assert(0, "Not yet supported");
}
@@ -4831,6 +4840,14 @@ private:
}
}
}
+ else version (RISCV_Any)
+ {
+ uint newValues = 0x0;
+ asm pure nothrow @nogc
+ {
+ "fsflags %0" : : "r" newValues;
+ }
+ }
else
assert(0, "Not yet supported");
}
@@ -5423,6 +5440,15 @@ private:
}
return cont;
}
+ else version (RISCV_Any)
+ {
+ ControlState cont;
+ asm pure nothrow @nogc
+ {
+ "frcsr %0" : "=r" cont;
+ }
+ return cont;
+ }
else
assert(0, "Not yet supported");
}
@@ -5508,6 +5534,13 @@ private:
}
}
}
+ else version (RISCV_Any)
+ {
+ asm pure nothrow @nogc
+ {
+ "fscsr %0" : : "r" (newState);
+ }
+ }
else
assert(0, "Not yet supported");
}