aboutsummaryrefslogtreecommitdiff
path: root/lib/Bytecode
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bytecode')
-rw-r--r--lib/Bytecode/Writer/ConstantWriter.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp
index 5ca0fca0d1..7e2c9307b9 100644
--- a/lib/Bytecode/Writer/ConstantWriter.cpp
+++ b/lib/Bytecode/Writer/ConstantWriter.cpp
@@ -138,10 +138,16 @@ bool BytecodeWriter::outputConstant(const ConstPoolVal *CPV) {
break;
}
- case Type::FloatTyID: // Floating point types...
- case Type::DoubleTyID:
- // TODO: Floating point type serialization
-
+ case Type::FloatTyID: { // Floating point types...
+ float Tmp = (float)((const ConstPoolFP*)CPV)->getValue();
+ output_data(&Tmp, &Tmp+1, Out);
+ break;
+ }
+ case Type::DoubleTyID: {
+ double Tmp = ((const ConstPoolFP*)CPV)->getValue();
+ output_data(&Tmp, &Tmp+1, Out);
+ break;
+ }
case Type::VoidTyID:
case Type::LabelTyID: