Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
cfc8d586
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
cfc8d586
编写于
5月 01, 2018
作者:
K
Kevin Heifner
提交者:
GitHub
5月 01, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2679 from EOSIO/yet_more_builtins
Yet more builtins
上级
61be8d4e
5484da3d
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
27 addition
and
17 deletion
+27
-17
libraries/chain/wasm_interface.cpp
libraries/chain/wasm_interface.cpp
+27
-17
未找到文件。
libraries/chain/wasm_interface.cpp
浏览文件 @
cfc8d586
...
...
@@ -1334,7 +1334,7 @@ class compiler_builtins : public context_aware_api {
ret
=
f128_div
(
a
,
b
);
}
void
__negtf2
(
float128_t
&
ret
,
uint64_t
la
,
uint64_t
ha
)
{
float128_t
a
=
{{
la
,
(
ha
^
(
1
<<
63
))
}};
float128_t
a
=
{{
la
,
(
ha
^
(
(
uint64_t
)
1
<<
63
))
}};
a
=
ret
;
}
int
___cmptf2
(
uint64_t
la
,
uint64_t
ha
,
uint64_t
lb
,
uint64_t
hb
,
int
return_value_if_nan
)
{
...
...
@@ -1393,6 +1393,14 @@ class compiler_builtins : public context_aware_api {
void
__floatunditf
(
float128_t
&
ret
,
uint64_t
a
)
{
ret
=
ui64_to_f128
(
a
);
}
double
__floattidf
(
uint64_t
l
,
uint64_t
h
)
{
auto
ret
=
i64_to_f64
(
l
);
return
*
(
double
*
)
&
ret
;
}
double
__floatuntidf
(
uint64_t
l
,
uint64_t
h
)
{
auto
ret
=
ui64_to_f64
(
l
);
return
*
(
double
*
)
&
ret
;
}
void
__extendsftf2
(
float128_t
&
ret
,
uint32_t
f
)
{
float32_t
in
=
{
f
};
ret
=
f32_to_f128
(
in
);
...
...
@@ -1401,45 +1409,45 @@ class compiler_builtins : public context_aware_api {
edump
((
"warning in flaot64..."
));
ret
=
f64_to_f128
(
float64_t
{
*
(
uint64_t
*
)
&
in
}
);
}
void
__fixtfti
(
__int128
&
ret
,
uint64_t
l
a
,
uint64_t
ha
)
{
float128_t
f
=
{{
l
a
,
ha
}};
#warning ret = f128_to_i128
( f, 0, false );
void
__fixtfti
(
__int128
&
ret
,
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
ret
=
f128_to_i64
(
f
,
0
,
false
);
}
int64_t
__fixtfdi
(
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
#warning
return f128_to_i64( f, 0, false );
return
f128_to_i64
(
f
,
0
,
false
);
}
int32_t
__fixtfsi
(
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
#warning
return f128_to_i32( f, 0, false );
return
f128_to_i32
(
f
,
0
,
false
);
}
void
__fixunstfti
(
unsigned
__int128
&
ret
,
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
#warning ret = f128_to_ui128
( f, 0, false );
ret
=
f128_to_ui64
(
f
,
0
,
false
);
}
uint64_t
__fixunstfdi
(
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
#warning
return f128_to_ui64( f, 0, false );
return
f128_to_ui64
(
f
,
0
,
false
);
}
uint32_t
__fixunstfsi
(
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
#warning
return f128_to_ui32( f, 0, false );
return
f128_to_ui32
(
f
,
0
,
false
);
}
void
__fixsfti
(
__int128
&
ret
,
float
a
)
{
#warning float32_t f = {
a};
#warning ret = f32_to_i128
( f, 0, false );
float32_t
f
=
{
*
(
uint32_t
*
)
&
a
};
ret
=
f32_to_i64
(
f
,
0
,
false
);
}
void
__fixdfti
(
__int128
&
ret
,
double
a
)
{
#warning float64_t f = {
a};
#warning ret = f64_to_i128
( f, 0, false );
float64_t
f
=
{
*
(
uint64_t
*
)
&
a
};
ret
=
f64_to_i64
(
f
,
0
,
false
);
}
void
__fixunssfti
(
unsigned
__int128
&
ret
,
float
a
)
{
#warning float32_t f = {
a};
#warning ret = f32_to_ui128
( f, 0, false );
float32_t
f
=
{
*
(
uint32_t
*
)
&
a
};
ret
=
f32_to_ui64
(
f
,
0
,
false
);
}
void
__fixunsdfti
(
unsigned
__int128
&
ret
,
double
a
)
{
#warning float64_t f = {
a};
#warning ret = f64_to_ui128
( f, 0, false );
float64_t
f
=
{
*
(
uint64_t
*
)
&
a
};
ret
=
f64_to_ui64
(
f
,
0
,
false
);
}
uint64_t
__trunctfdf2
(
uint64_t
l
,
uint64_t
h
)
{
float128_t
f
=
{{
l
,
h
}};
...
...
@@ -1582,6 +1590,8 @@ REGISTER_INTRINSICS(compiler_builtins,
(
__floatunsitf
,
void
(
int
,
int
)
)
(
__floatditf
,
void
(
int
,
int64_t
)
)
(
__floatunditf
,
void
(
int
,
int64_t
)
)
(
__floattidf
,
double
(
int64_t
,
int64_t
)
)
(
__floatuntidf
,
double
(
int64_t
,
int64_t
)
)
(
__floatsidf
,
double
(
int
)
)
(
__extendsftf2
,
void
(
int
,
int
)
)
(
__extenddftf2
,
void
(
int
,
double
)
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录