aboutsummaryrefslogtreecommitdiffstats
path: root/prog/encodingexec.go
diff options
context:
space:
mode:
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())