blob: ac938d6d67d9147d9ae36a54fbf8009f843b984a [file] [log] [blame]
Ben Murdochda12d292016-06-02 14:46:10 +01001// Copyright 2016 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Murdochc5610432016-08-08 18:44:38 +01005#include <stdint.h>
6
Ben Murdochda12d292016-06-02 14:46:10 +01007#ifndef WASM_EXTERNAL_REFS_H
8#define WASM_EXTERNAL_REFS_H
9
10namespace v8 {
11namespace internal {
12namespace wasm {
13
Ben Murdochc5610432016-08-08 18:44:38 +010014void f32_trunc_wrapper(float* param);
Ben Murdochda12d292016-06-02 14:46:10 +010015
Ben Murdochc5610432016-08-08 18:44:38 +010016void f32_floor_wrapper(float* param);
Ben Murdochda12d292016-06-02 14:46:10 +010017
Ben Murdochc5610432016-08-08 18:44:38 +010018void f32_ceil_wrapper(float* param);
Ben Murdochda12d292016-06-02 14:46:10 +010019
Ben Murdochc5610432016-08-08 18:44:38 +010020void f32_nearest_int_wrapper(float* param);
Ben Murdochda12d292016-06-02 14:46:10 +010021
Ben Murdochc5610432016-08-08 18:44:38 +010022void f64_trunc_wrapper(double* param);
Ben Murdochda12d292016-06-02 14:46:10 +010023
Ben Murdochc5610432016-08-08 18:44:38 +010024void f64_floor_wrapper(double* param);
Ben Murdochda12d292016-06-02 14:46:10 +010025
Ben Murdochc5610432016-08-08 18:44:38 +010026void f64_ceil_wrapper(double* param);
Ben Murdochda12d292016-06-02 14:46:10 +010027
Ben Murdochc5610432016-08-08 18:44:38 +010028void f64_nearest_int_wrapper(double* param);
Ben Murdochda12d292016-06-02 14:46:10 +010029
Ben Murdochc5610432016-08-08 18:44:38 +010030void int64_to_float32_wrapper(int64_t* input, float* output);
Ben Murdochda12d292016-06-02 14:46:10 +010031
Ben Murdochc5610432016-08-08 18:44:38 +010032void uint64_to_float32_wrapper(uint64_t* input, float* output);
Ben Murdochda12d292016-06-02 14:46:10 +010033
Ben Murdochc5610432016-08-08 18:44:38 +010034void int64_to_float64_wrapper(int64_t* input, double* output);
Ben Murdochda12d292016-06-02 14:46:10 +010035
Ben Murdochc5610432016-08-08 18:44:38 +010036void uint64_to_float64_wrapper(uint64_t* input, double* output);
Ben Murdochda12d292016-06-02 14:46:10 +010037
Ben Murdochc5610432016-08-08 18:44:38 +010038int32_t float32_to_int64_wrapper(float* input, int64_t* output);
Ben Murdochda12d292016-06-02 14:46:10 +010039
Ben Murdochc5610432016-08-08 18:44:38 +010040int32_t float32_to_uint64_wrapper(float* input, uint64_t* output);
Ben Murdochda12d292016-06-02 14:46:10 +010041
Ben Murdochc5610432016-08-08 18:44:38 +010042int32_t float64_to_int64_wrapper(double* input, int64_t* output);
Ben Murdochda12d292016-06-02 14:46:10 +010043
Ben Murdochc5610432016-08-08 18:44:38 +010044int32_t float64_to_uint64_wrapper(double* input, uint64_t* output);
Ben Murdochda12d292016-06-02 14:46:10 +010045
Ben Murdochc5610432016-08-08 18:44:38 +010046int32_t int64_div_wrapper(int64_t* dst, int64_t* src);
Ben Murdochda12d292016-06-02 14:46:10 +010047
Ben Murdochc5610432016-08-08 18:44:38 +010048int32_t int64_mod_wrapper(int64_t* dst, int64_t* src);
Ben Murdochda12d292016-06-02 14:46:10 +010049
Ben Murdochc5610432016-08-08 18:44:38 +010050int32_t uint64_div_wrapper(uint64_t* dst, uint64_t* src);
Ben Murdochda12d292016-06-02 14:46:10 +010051
Ben Murdochc5610432016-08-08 18:44:38 +010052int32_t uint64_mod_wrapper(uint64_t* dst, uint64_t* src);
Ben Murdochda12d292016-06-02 14:46:10 +010053
Ben Murdochc5610432016-08-08 18:44:38 +010054uint32_t word32_ctz_wrapper(uint32_t* input);
Ben Murdochda12d292016-06-02 14:46:10 +010055
Ben Murdochc5610432016-08-08 18:44:38 +010056uint32_t word64_ctz_wrapper(uint64_t* input);
Ben Murdochda12d292016-06-02 14:46:10 +010057
Ben Murdochc5610432016-08-08 18:44:38 +010058uint32_t word32_popcnt_wrapper(uint32_t* input);
Ben Murdochda12d292016-06-02 14:46:10 +010059
Ben Murdochc5610432016-08-08 18:44:38 +010060uint32_t word64_popcnt_wrapper(uint64_t* input);
Ben Murdochda12d292016-06-02 14:46:10 +010061} // namespace wasm
62} // namespace internal
63} // namespace v8
Ben Murdochda12d292016-06-02 14:46:10 +010064#endif