@@ -636,6 +636,9 @@ DEF_CALL_HANDLER(llvm_ctlz_i32, {
636
636
})
637
637
638
638
DEF_CALL_HANDLER(llvm_cttz_i32, {
639
+ if (OnlyWebAssembly) {
640
+ return CH___default__ (CI, " i32_cttz" , 1 );
641
+ }
639
642
Declares.insert (" llvm_cttz_i32" );
640
643
return CH___default__ (CI, " _llvm_cttz_i32" , 1 );
641
644
})
@@ -656,6 +659,22 @@ DEF_CALL_HANDLER(llvm_cttz_i64, {
656
659
return CH___default__ (CI, " _llvm_cttz_i64" );
657
660
})
658
661
662
+ DEF_CALL_HANDLER(llvm_ctpop_i32, {
663
+ if (OnlyWebAssembly) {
664
+ return CH___default__ (CI, " i32_ctpop" , 1 );
665
+ }
666
+ Declares.insert (" llvm_ctpop_i32" );
667
+ return CH___default__ (CI, " _llvm_ctpop_i32" );
668
+ })
669
+
670
+ DEF_CALL_HANDLER(llvm_ctpop_i64, {
671
+ if (OnlyWebAssembly) {
672
+ return CH___default__ (CI, " i64_ctpop" , 1 );
673
+ }
674
+ Declares.insert (" llvm_ctpop_i64" );
675
+ return CH___default__ (CI, " _llvm_ctpop_i64" );
676
+ })
677
+
659
678
DEF_CALL_HANDLER(llvm_maxnum_f32, {
660
679
return CH___default__ (CI, " Math_max" , 2 );
661
680
})
@@ -665,11 +684,17 @@ DEF_CALL_HANDLER(llvm_maxnum_f64, {
665
684
})
666
685
667
686
DEF_CALL_HANDLER(llvm_copysign_f32, {
687
+ if (OnlyWebAssembly) {
688
+ return CH___default__ (CI, " f32_copysign" , 2 );
689
+ }
668
690
Declares.insert (" llvm_copysign_f32" );
669
691
return CH___default__ (CI, " _llvm_copysign_f32" , 2 );
670
692
})
671
693
672
694
DEF_CALL_HANDLER(llvm_copysign_f64, {
695
+ if (OnlyWebAssembly) {
696
+ return CH___default__ (CI, " (f64_copysign)" , 2 ); // XXX add parens as this will be +f64_copysign(...), which triggers +f64 => f64.0. TODO fix regex in emscripten.py
697
+ }
673
698
Declares.insert (" llvm_copysign_f64" );
674
699
return CH___default__ (CI, " _llvm_copysign_f64" , 2 );
675
700
})
@@ -1603,6 +1628,8 @@ void setupCallHandlers() {
1603
1628
SETUP_CALL_HANDLER (llvm_cttz_i32);
1604
1629
SETUP_CALL_HANDLER (llvm_ctlz_i64);
1605
1630
SETUP_CALL_HANDLER (llvm_cttz_i64);
1631
+ SETUP_CALL_HANDLER (llvm_ctpop_i32);
1632
+ SETUP_CALL_HANDLER (llvm_ctpop_i64);
1606
1633
SETUP_CALL_HANDLER (llvm_maxnum_f32);
1607
1634
SETUP_CALL_HANDLER (llvm_maxnum_f64);
1608
1635
SETUP_CALL_HANDLER (llvm_copysign_f32);
0 commit comments