| // Code generated from gen/386splitload.rules; DO NOT EDIT. | |
| // generated with: cd gen; go run *.go | |
| package ssa | |
| import "fmt" | |
| import "math" | |
| import "cmd/internal/obj" | |
| import "cmd/internal/objabi" | |
| import "cmd/compile/internal/types" | |
| var _ = fmt.Println // in case not otherwise used | |
| var _ = math.MinInt8 // in case not otherwise used | |
| var _ = obj.ANOP // in case not otherwise used | |
| var _ = objabi.GOROOT // in case not otherwise used | |
| var _ = types.TypeMem // in case not otherwise used | |
| func rewriteValue386splitload(v *Value) bool { | |
| switch v.Op { | |
| case Op386CMPBconstload: | |
| return rewriteValue386splitload_Op386CMPBconstload_0(v) | |
| case Op386CMPBload: | |
| return rewriteValue386splitload_Op386CMPBload_0(v) | |
| case Op386CMPLconstload: | |
| return rewriteValue386splitload_Op386CMPLconstload_0(v) | |
| case Op386CMPLload: | |
| return rewriteValue386splitload_Op386CMPLload_0(v) | |
| case Op386CMPWconstload: | |
| return rewriteValue386splitload_Op386CMPWconstload_0(v) | |
| case Op386CMPWload: | |
| return rewriteValue386splitload_Op386CMPWload_0(v) | |
| } | |
| return false | |
| } | |
| func rewriteValue386splitload_Op386CMPBconstload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPBconstload {sym} [vo] ptr mem) | |
| // cond: | |
| // result: (CMPBconst (MOVBload {sym} [offOnly(vo)] ptr mem) [valOnly(vo)]) | |
| for { | |
| vo := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[1] | |
| ptr := v.Args[0] | |
| v.reset(Op386CMPBconst) | |
| v.AuxInt = valOnly(vo) | |
| v0 := b.NewValue0(v.Pos, Op386MOVBload, typ.UInt8) | |
| v0.AuxInt = offOnly(vo) | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| return true | |
| } | |
| } | |
| func rewriteValue386splitload_Op386CMPBload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPBload {sym} [off] ptr x mem) | |
| // cond: | |
| // result: (CMPB (MOVBload {sym} [off] ptr mem) x) | |
| for { | |
| off := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[2] | |
| ptr := v.Args[0] | |
| x := v.Args[1] | |
| v.reset(Op386CMPB) | |
| v0 := b.NewValue0(v.Pos, Op386MOVBload, typ.UInt8) | |
| v0.AuxInt = off | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| v.AddArg(x) | |
| return true | |
| } | |
| } | |
| func rewriteValue386splitload_Op386CMPLconstload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPLconstload {sym} [vo] ptr mem) | |
| // cond: | |
| // result: (CMPLconst (MOVLload {sym} [offOnly(vo)] ptr mem) [valOnly(vo)]) | |
| for { | |
| vo := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[1] | |
| ptr := v.Args[0] | |
| v.reset(Op386CMPLconst) | |
| v.AuxInt = valOnly(vo) | |
| v0 := b.NewValue0(v.Pos, Op386MOVLload, typ.UInt32) | |
| v0.AuxInt = offOnly(vo) | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| return true | |
| } | |
| } | |
| func rewriteValue386splitload_Op386CMPLload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPLload {sym} [off] ptr x mem) | |
| // cond: | |
| // result: (CMPL (MOVLload {sym} [off] ptr mem) x) | |
| for { | |
| off := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[2] | |
| ptr := v.Args[0] | |
| x := v.Args[1] | |
| v.reset(Op386CMPL) | |
| v0 := b.NewValue0(v.Pos, Op386MOVLload, typ.UInt32) | |
| v0.AuxInt = off | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| v.AddArg(x) | |
| return true | |
| } | |
| } | |
| func rewriteValue386splitload_Op386CMPWconstload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPWconstload {sym} [vo] ptr mem) | |
| // cond: | |
| // result: (CMPWconst (MOVWload {sym} [offOnly(vo)] ptr mem) [valOnly(vo)]) | |
| for { | |
| vo := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[1] | |
| ptr := v.Args[0] | |
| v.reset(Op386CMPWconst) | |
| v.AuxInt = valOnly(vo) | |
| v0 := b.NewValue0(v.Pos, Op386MOVWload, typ.UInt16) | |
| v0.AuxInt = offOnly(vo) | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| return true | |
| } | |
| } | |
| func rewriteValue386splitload_Op386CMPWload_0(v *Value) bool { | |
| b := v.Block | |
| typ := &b.Func.Config.Types | |
| // match: (CMPWload {sym} [off] ptr x mem) | |
| // cond: | |
| // result: (CMPW (MOVWload {sym} [off] ptr mem) x) | |
| for { | |
| off := v.AuxInt | |
| sym := v.Aux | |
| mem := v.Args[2] | |
| ptr := v.Args[0] | |
| x := v.Args[1] | |
| v.reset(Op386CMPW) | |
| v0 := b.NewValue0(v.Pos, Op386MOVWload, typ.UInt16) | |
| v0.AuxInt = off | |
| v0.Aux = sym | |
| v0.AddArg(ptr) | |
| v0.AddArg(mem) | |
| v.AddArg(v0) | |
| v.AddArg(x) | |
| return true | |
| } | |
| } | |
| func rewriteBlock386splitload(b *Block) bool { | |
| config := b.Func.Config | |
| typ := &config.Types | |
| _ = typ | |
| v := b.Control | |
| _ = v | |
| switch b.Kind { | |
| } | |
| return false | |
| } |