Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
f1c62d54
wa
项目概览
wa-lang
/
wa
大约 1 年 前同步成功
通知
68
Star
655
Fork
45
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
wa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f1c62d54
编写于
10月 28, 2022
作者:
3
3dgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化结构体操作,支持非0值常量结构体
上级
cccd46c0
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
15 addition
and
7 deletion
+15
-7
internal/backends/compiler_wat/wir/value_struct.go
internal/backends/compiler_wat/wir/value_struct.go
+15
-7
未找到文件。
internal/backends/compiler_wat/wir/value_struct.go
浏览文件 @
f1c62d54
...
...
@@ -24,6 +24,7 @@ type iStruct interface {
type
Field
struct
{
name
string
typ
ValueType
const_val
Value
_start
int
}
...
...
@@ -33,6 +34,9 @@ func (i Field) Type() ValueType { return i.typ }
func
(
i
Field
)
Equal
(
u
Field
)
bool
{
return
i
.
name
==
u
.
name
&&
i
.
typ
.
Equal
(
u
.
typ
)
}
func
makeAlign
(
i
,
a
int
)
int
{
if
a
==
1
||
a
==
0
{
return
i
}
return
(
i
+
a
-
1
)
/
a
*
a
}
...
...
@@ -168,9 +172,9 @@ func (t Struct) emitLoadFromAddr(addr Value, offset int) (insts []wat.Inst) {
}
func
(
t
Struct
)
findFieldByName
(
field_name
string
)
*
Field
{
for
_
,
m
:=
range
t
.
Members
{
if
m
.
Name
()
==
field_name
{
return
&
m
for
i
:=
range
t
.
Members
{
if
t
.
Members
[
i
]
.
Name
()
==
field_name
{
return
&
t
.
Members
[
i
]
}
}
return
nil
...
...
@@ -190,9 +194,13 @@ func newValueStruct(name string, kind ValueKind, typ ValueType) *aStruct {
func
(
v
*
aStruct
)
genSubValue
(
m
Field
)
Value
{
if
v
.
Kind
()
!=
ValueKindConst
{
return
newValue
(
v
.
Name
()
+
"."
+
m
.
Name
(),
v
.
Kind
(),
m
.
Type
())
}
else
{
if
m
.
const_val
!=
nil
{
return
m
.
const_val
}
else
{
return
newValue
(
v
.
Name
(),
v
.
Kind
(),
m
.
Type
())
}
}
}
func
(
v
*
aStruct
)
raw
()
[]
wat
.
Value
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录