aboutsummaryrefslogtreecommitdiffstats
path: root/prog/encodingexec.go
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@gmail.com>2017-08-01 18:55:46 +0200
committerGitHub <noreply@github.com>2017-08-01 18:55:46 +0200
commit890882a0cf6eeecb32ec0d79cff56660f573b8c9 (patch)
tree250340bf3fd2fb02b203e5d3744bfe768aa7d8fe /prog/encodingexec.go
parent954d506c30317669bbe449fac7e875d71895c67c (diff)
parent1172db0ccf077bbfef7ddd176ced61c7140cb698 (diff)
Merge pull request #317 from xairy/up-fix-result-enc
prog: fix encoding for exec of result args
Diffstat (limited to 'prog/encodingexec.go')
-rw-r--r--prog/encodingexec.go18
1 files changed, 13 insertions, 5 deletions
diff --git a/prog/encodingexec.go b/prog/encodingexec.go
index ba2efcd37..403b09f88 100644
--- a/prog/encodingexec.go
+++ b/prog/encodingexec.go
@@ -253,11 +253,19 @@ func (w *execContext) writeArg(arg Arg, pid int, csumMap map[Arg]CsumInfo) {
w.write(a.Type().BitfieldOffset())
w.write(a.Type().BitfieldLength())
case *ResultArg:
- w.write(ExecArgResult)
- w.write(a.Size())
- w.write(w.args[a.Res].Idx)
- w.write(a.OpDiv)
- w.write(a.OpAdd)
+ if a.Res == nil {
+ w.write(ExecArgConst)
+ w.write(a.Size())
+ w.write(a.Val)
+ w.write(0) // bit field offset
+ w.write(0) // bit field length
+ } else {
+ w.write(ExecArgResult)
+ w.write(a.Size())
+ w.write(w.args[a.Res].Idx)
+ w.write(a.OpDiv)
+ w.write(a.OpAdd)
+ }
case *PointerArg:
w.write(ExecArgConst)
w.write(a.Size())