From 7b62a180c6985b59ee7df38d3e7358ba574ad7c8 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 5 Mar 2014 17:57:03 -0800 Subject: emscripten_debugger() intrinsic --- lib/Target/JSBackend/JSBackend.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/Target/JSBackend/JSBackend.cpp') diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp index 5efd4c5684..eb3a6d1929 100644 --- a/lib/Target/JSBackend/JSBackend.cpp +++ b/lib/Target/JSBackend/JSBackend.cpp @@ -129,6 +129,7 @@ namespace { std::vector Exports; // additional exports BlockAddressMap BlockAddresses; + bool CanValidate; bool UsesSIMD; int InvokeState; // cycles between 0, 1 after preInvoke, 2 after call, 0 again after postInvoke. hackish, no argument there. CodeGenOpt::Level OptLevel; @@ -139,7 +140,7 @@ namespace { public: static char ID; JSWriter(formatted_raw_ostream &o, CodeGenOpt::Level OptLevel) - : ModulePass(ID), Out(o), UniqueNum(0), UsesSIMD(false), InvokeState(0), + : ModulePass(ID), Out(o), UniqueNum(0), CanValidate(true), UsesSIMD(false), InvokeState(0), OptLevel(OptLevel) {} virtual const char *getPassName() const { return "JavaScript backend"; } @@ -355,6 +356,7 @@ namespace { assert(VT->getElementType()->getPrimitiveSizeInBits() == 32); assert(VT->getNumElements() == 4); UsesSIMD = true; + CanValidate = false; } std::string getPtrLoad(const Value* Ptr); @@ -2035,6 +2037,10 @@ void JSWriter::printModuleBody() { } Out << "],"; + Out << "\"canValidate\": "; + Out << (CanValidate ? "1" : "0"); + Out << ","; + Out << "\"simd\": "; Out << (UsesSIMD ? "1" : "0"); Out << ","; -- cgit v1.2.3-18-g5258