X7ROOT File Manager
Current Path:
/opt/golang/1.19.4/src/cmd/compile/internal/ssa/gen
opt
/
golang
/
1.19.4
/
src
/
cmd
/
compile
/
internal
/
ssa
/
gen
/
📁
..
📄
386.rules
(48.83 KB)
📄
386Ops.go
(44.57 KB)
📄
386splitload.rules
(620 B)
📄
AMD64.rules
(115.41 KB)
📄
AMD64Ops.go
(102.51 KB)
📄
AMD64splitload.rules
(3.36 KB)
📄
ARM.rules
(90.11 KB)
📄
ARM64.rules
(157.38 KB)
📄
ARM64Ops.go
(57.35 KB)
📄
ARMOps.go
(41 KB)
📄
LOONG64.rules
(35.63 KB)
📄
LOONG64Ops.go
(24.16 KB)
📄
MIPS.rules
(34.6 KB)
📄
MIPS64.rules
(36.64 KB)
📄
MIPS64Ops.go
(24.44 KB)
📄
MIPSOps.go
(23.57 KB)
📄
PPC64.rules
(75.66 KB)
📄
PPC64Ops.go
(41.43 KB)
📄
README
(287 B)
📄
RISCV64.rules
(34.53 KB)
📄
RISCV64Ops.go
(27.62 KB)
📄
S390X.rules
(83.63 KB)
📄
S390XOps.go
(52.51 KB)
📄
Wasm.rules
(17.27 KB)
📄
WasmOps.go
(17.7 KB)
📄
cover.bash
(667 B)
📄
dec.rules
(2.65 KB)
📄
dec64.rules
(13.94 KB)
📄
dec64Ops.go
(401 B)
📄
decOps.go
(391 B)
📄
generic.rules
(114.75 KB)
📄
genericOps.go
(40.74 KB)
📄
main.go
(16.75 KB)
📄
rulegen.go
(48.72 KB)
Editing: dec.rules
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file contains rules to decompose builtin compound types // (complex,string,slice,interface) into their constituent // types. These rules work together with the decomposeBuiltIn // pass which handles phis of these types. // complex ops (ComplexReal (ComplexMake real _ )) => real (ComplexImag (ComplexMake _ imag )) => imag (Load <t> ptr mem) && t.IsComplex() && t.Size() == 8 => (ComplexMake (Load <typ.Float32> ptr mem) (Load <typ.Float32> (OffPtr <typ.Float32Ptr> [4] ptr) mem) ) (Store {t} dst (ComplexMake real imag) mem) && t.Size() == 8 => (Store {typ.Float32} (OffPtr <typ.Float32Ptr> [4] dst) imag (Store {typ.Float32} dst real mem)) (Load <t> ptr mem) && t.IsComplex() && t.Size() == 16 => (ComplexMake (Load <typ.Float64> ptr mem) (Load <typ.Float64> (OffPtr <typ.Float64Ptr> [8] ptr) mem) ) (Store {t} dst (ComplexMake real imag) mem) && t.Size() == 16 => (Store {typ.Float64} (OffPtr <typ.Float64Ptr> [8] dst) imag (Store {typ.Float64} dst real mem)) // string ops (StringPtr (StringMake ptr _)) => ptr (StringLen (StringMake _ len)) => len (Load <t> ptr mem) && t.IsString() => (StringMake (Load <typ.BytePtr> ptr mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [config.PtrSize] ptr) mem)) (Store dst (StringMake ptr len) mem) => (Store {typ.Int} (OffPtr <typ.IntPtr> [config.PtrSize] dst) len (Store {typ.BytePtr} dst ptr mem)) // slice ops (SlicePtr (SliceMake ptr _ _ )) => ptr (SliceLen (SliceMake _ len _)) => len (SliceCap (SliceMake _ _ cap)) => cap (SlicePtrUnchecked (SliceMake ptr _ _ )) => ptr (Load <t> ptr mem) && t.IsSlice() => (SliceMake (Load <t.Elem().PtrTo()> ptr mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [config.PtrSize] ptr) mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [2*config.PtrSize] ptr) mem)) (Store {t} dst (SliceMake ptr len cap) mem) => (Store {typ.Int} (OffPtr <typ.IntPtr> [2*config.PtrSize] dst) cap (Store {typ.Int} (OffPtr <typ.IntPtr> [config.PtrSize] dst) len (Store {t.Elem().PtrTo()} dst ptr mem))) // interface ops (ITab (IMake itab _)) => itab (IData (IMake _ data)) => data (Load <t> ptr mem) && t.IsInterface() => (IMake (Load <typ.Uintptr> ptr mem) (Load <typ.BytePtr> (OffPtr <typ.BytePtrPtr> [config.PtrSize] ptr) mem)) (Store dst (IMake itab data) mem) => (Store {typ.BytePtr} (OffPtr <typ.BytePtrPtr> [config.PtrSize] dst) data (Store {typ.Uintptr} dst itab mem))
Upload File
Create Folder