diff options
Diffstat (limited to 'lib/Target/JSBackend/CallHandlers.h')
-rw-r--r-- | lib/Target/JSBackend/CallHandlers.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/JSBackend/CallHandlers.h b/lib/Target/JSBackend/CallHandlers.h index 219527429a..653c77f161 100644 --- a/lib/Target/JSBackend/CallHandlers.h +++ b/lib/Target/JSBackend/CallHandlers.h @@ -146,7 +146,8 @@ DEF_CALL_HANDLER(emscripten_check_longjmp, { return "checkyourself"; }) DEF_CALL_HANDLER(emscripten_get_longjmp_result, { - return "getyourresult"; + std::string Threw = getValueAsStr(CI->getOperand(0)); + return getAssign(getJSName(CI), CI->getType()) + "((" + Threw + ") & ((threwValue|0) != 0)) ? " + "_testSetjmp(HEAP32[" + Threw + ">>2]|0, setjmpTable)|0" + " : -1"; }) // i64 support |