"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/cmd/compile/internal/ssa/gen/genericOps.go" between
go1.19.src.tar.gz and go1.19.1.src.tar.gz

About: Google’s Go is a compiled, garbage-collected, concurrent programming language.
Latest stable release (1.19).

genericOps.go  (go1.19.src):genericOps.go  (go1.19.1.src)
skipping to change at line 358 skipping to change at line 358
{name: "LocalAddr", argLength: 2, aux: "Sym", symEffect: "Addr"}, // Addr ess of a variable. Arg0=SP. Arg1=mem. Aux identifies the variable. {name: "LocalAddr", argLength: 2, aux: "Sym", symEffect: "Addr"}, // Addr ess of a variable. Arg0=SP. Arg1=mem. Aux identifies the variable.
{name: "SP", zeroWidth: true}, // stack pointer {name: "SP", zeroWidth: true}, // stack pointer
{name: "SB", typ: "Uintptr", zeroWidth: true}, // static base pointer (a. k.a. globals pointer) {name: "SB", typ: "Uintptr", zeroWidth: true}, // static base pointer (a. k.a. globals pointer)
{name: "Invalid"}, // unused value {name: "Invalid"}, // unused value
// Memory operations // Memory operations
{name: "Load", argLength: 2}, // Load from arg0. arg1=memory {name: "Load", argLength: 2}, // Load from arg0. arg1=memory
{name: "Dereference", argLength: 2}, // Load from arg0. arg1=memory. Helper op for arg/result passing, result is an otherwise not-SSA -able "value". {name: "Dereference", argLength: 2}, // Load from arg0. arg1=memory. Helper op for arg/result passing, result is an otherwise not-SSA -able "value".
{name: "Store", argLength: 3, typ: "Mem", aux: "Typ"}, // Store arg1 to a rg0. arg2=memory, aux=type. Returns memory. {name: "Store", argLength: 3, typ: "Mem", aux: "Typ"}, // Store arg1 to a rg0. arg2=memory, aux=type. Returns memory.
// The source and destination of Move may overlap in some cases. See e.g. // Normally we require that the source and destination of Move do not ove
rlap.
// There is an exception when we know all the loads will happen before al
l
// the stores. In that case, overlap is ok. See
// memmove inlining in generic.rules. When inlineablememmovesize (in ../r ewrite.go) // memmove inlining in generic.rules. When inlineablememmovesize (in ../r ewrite.go)
// returns true, we must do all loads before all stores, when lowering Mo ve. // returns true, we must do all loads before all stores, when lowering Mo ve.
// The type of Move is used for the write barrier pass to insert write ba rriers // The type of Move is used for the write barrier pass to insert write ba rriers
// and for alignment on some architectures. // and for alignment on some architectures.
// For pointerless types, it is possible for the type to be inaccurate. // For pointerless types, it is possible for the type to be inaccurate.
// For type alignment and pointer information, use the type in Aux; // For type alignment and pointer information, use the type in Aux;
// for type size, use the size in AuxInt. // for type size, use the size in AuxInt.
// The "inline runtime.memmove" rewrite rule generates Moves with inaccur ate types, // The "inline runtime.memmove" rewrite rule generates Moves with inaccur ate types,
// such as type byte instead of the more accurate type [8]byte. // such as type byte instead of the more accurate type [8]byte.
{name: "Move", argLength: 3, typ: "Mem", aux: "TypSize"}, // arg0=destptr , arg1=srcptr, arg2=mem, auxint=size, aux=type. Returns memory. {name: "Move", argLength: 3, typ: "Mem", aux: "TypSize"}, // arg0=destptr , arg1=srcptr, arg2=mem, auxint=size, aux=type. Returns memory.
 End of changes. 1 change blocks. 
1 lines changed or deleted 5 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)