Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: emscripten-core/emscripten-fastcomp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.36.14
Choose a base ref
...
head repository: emscripten-core/emscripten-fastcomp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1.37.0
Choose a head ref
  • 4 commits
  • 3 files changed
  • 2 contributors

Commits on Nov 7, 2016

  1. Copy the full SHA
    41b988f View commit details

Commits on Nov 11, 2016

  1. Copy the full SHA
    dfcb07a View commit details

Commits on Nov 28, 2016

  1. Copy the full SHA
    f3dfdd1 View commit details

Commits on Dec 23, 2016

  1. 1.37.0

    kripken committed Dec 23, 2016
    Copy the full SHA
    881bd35 View commit details
Showing with 15 additions and 1 deletion.
  1. +1 −1 emscripten-version.txt
  2. +10 −0 lib/Target/JSBackend/CallHandlers.h
  3. +4 −0 lib/Target/JSBackend/NaCl/ExpandI64.cpp
2 changes: 1 addition & 1 deletion emscripten-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"1.36.14"
"1.37.0"
10 changes: 10 additions & 0 deletions lib/Target/JSBackend/CallHandlers.h
Original file line number Diff line number Diff line change
@@ -227,6 +227,8 @@ DEF_CALL_HANDLER(emscripten_check_longjmp, {
std::string Threw = getValueAsStr(CI->getOperand(0));
std::string Target = getJSName(CI);
std::string Assign = getAssign(CI);
Declares.insert("testSetjmp");
Declares.insert("longjmp");
return "if (((" + Threw + "|0) != 0) & ((threwValue|0) != 0)) { " +
Assign + "_testSetjmp(HEAP32[" + Threw + ">>2]|0, _setjmpTable|0, _setjmpTableSize|0)|0; " +
"if ((" + Target + "|0) == 0) { _longjmp(" + Threw + "|0, threwValue|0); } " + // rethrow
@@ -903,10 +905,12 @@ DEF_BUILTIN_HANDLER(llvm_fabs_f64, Math_abs);
DEF_BUILTIN_HANDLER(ceil, Math_ceil);
DEF_BUILTIN_HANDLER(ceilf, Math_ceil);
DEF_BUILTIN_HANDLER(ceill, Math_ceil);
DEF_BUILTIN_HANDLER(llvm_ceil_f32, Math_ceil);
DEF_BUILTIN_HANDLER(llvm_ceil_f64, Math_ceil);
DEF_BUILTIN_HANDLER(floor, Math_floor);
DEF_BUILTIN_HANDLER(floorf, Math_floor);
DEF_BUILTIN_HANDLER(floorl, Math_floor);
DEF_BUILTIN_HANDLER(llvm_floor_f32, Math_floor);
DEF_BUILTIN_HANDLER(llvm_floor_f64, Math_floor);
DEF_MAYBE_BUILTIN_HANDLER(pow, Math_pow);
DEF_MAYBE_BUILTIN_HANDLER(powf, Math_pow);
@@ -915,6 +919,8 @@ DEF_BUILTIN_HANDLER(llvm_sqrt_f32, Math_sqrt);
DEF_BUILTIN_HANDLER(llvm_sqrt_f64, Math_sqrt);
DEF_BUILTIN_HANDLER(llvm_pow_f32, Math_pow); // XXX these will be slow in wasm, but need to link in libc before getting here, or stop
DEF_BUILTIN_HANDLER(llvm_pow_f64, Math_pow); // LLVM from creating these intrinsics
DEF_MAYBE_BUILTIN_HANDLER(llvm_cos_f32, Math_cos);
DEF_MAYBE_BUILTIN_HANDLER(llvm_cos_f64, Math_cos);
DEF_MAYBE_BUILTIN_HANDLER(llvm_sin_f32, Math_sin);
DEF_MAYBE_BUILTIN_HANDLER(llvm_sin_f64, Math_sin);

@@ -2148,10 +2154,12 @@ void setupCallHandlers() {
SETUP_CALL_HANDLER(ceil);
SETUP_CALL_HANDLER(ceilf);
SETUP_CALL_HANDLER(ceill);
SETUP_CALL_HANDLER(llvm_ceil_f32);
SETUP_CALL_HANDLER(llvm_ceil_f64);
SETUP_CALL_HANDLER(floor);
SETUP_CALL_HANDLER(floorf);
SETUP_CALL_HANDLER(floorl);
SETUP_CALL_HANDLER(llvm_floor_f32);
SETUP_CALL_HANDLER(llvm_floor_f64);
SETUP_CALL_HANDLER(pow);
SETUP_CALL_HANDLER(powf);
@@ -2166,6 +2174,8 @@ void setupCallHandlers() {
SETUP_CALL_HANDLER(llvm_log_f64);
SETUP_CALL_HANDLER(llvm_exp_f32);
SETUP_CALL_HANDLER(llvm_exp_f64);
SETUP_CALL_HANDLER(llvm_cos_f32);
SETUP_CALL_HANDLER(llvm_cos_f64);
SETUP_CALL_HANDLER(llvm_sin_f32);
SETUP_CALL_HANDLER(llvm_sin_f64);
}
4 changes: 4 additions & 0 deletions lib/Target/JSBackend/NaCl/ExpandI64.cpp
Original file line number Diff line number Diff line change
@@ -733,6 +733,10 @@ bool ExpandI64::splitInst(Instruction *I) {
CallInst *CI = cast<CallInst>(I);
Function *F = CI->getCalledFunction();
if (F) {
// EM_ASMs should not have i64s as arguments
if (F->getName().startswith("emscripten_asm_const")) {
report_fatal_error("EM_ASM should not receive i64s as inputs, they are not valid in JS");
}
assert(okToRemainIllegal(F));
return false;
}