Search Options

Results per page
Sort
Preferred Languages
Advance

Results 31 - 40 of 47 for DUFFCOPY (0.18 sec)

  1. src/cmd/compile/internal/ssa/_gen/LOONG64.rules

    // medium move uses a duff device
    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s)  =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    // 16 and 128 are magic constants.  16 is the number of bytes to encode:
    //	MOVV	(R1), R23
    //	ADDV	$8, R1
    //	MOVV	R23, (R2)
    //	ADDV	$8, R2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:26:25 UTC 2023
    - 31.8K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/_gen/RISCV64.rules

    // 16 and 128 are magic constants, see runtime/mkduff.go
    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s) =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    
    // Generic move uses a loop
    (Move [s] {t} dst src mem) && (s <= 16 || logLargeCopy(v, s)) =>
    	(LoweredMove [t.Alignment()]
    		dst
    		src
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Mar 07 14:57:07 UTC 2024
    - 40.3K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/_gen/MIPS64.rules

    // medium move uses a duff device
    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s)  =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    // 16 and 128 are magic constants.  16 is the number of bytes to encode:
    //	MOVV	(R1), R23
    //	ADDV	$8, R1
    //	MOVV	R23, (R2)
    //	ADDV	$8, R2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jul 31 03:59:48 UTC 2023
    - 41.9K bytes
    - Viewed (0)
  4. src/cmd/internal/obj/x86/asm6.go

    				}
    
    				if yt.zcase == Zcallduff && ctxt.Arch.Family == sys.AMD64 {
    					// Maintain BP around call, since duffcopy/duffzero can't do it
    					// (the call jumps into the middle of the function).
    					// This makes it possible to see call sites for duffcopy/duffzero in
    					// BP-based profiling tools like Linux perf (which is the
    					// whole point of maintaining frame pointers in Go).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 146.9K bytes
    - Viewed (0)
  5. src/cmd/link/internal/ppc64/asm.go

    		// local call offsets for externally generated objects are accounted for when converting into golang relocs.
    		if !hasPCrel && !ldr.AttrExternal(rs) && ldr.AttrShared(rs) && tgtName != "runtime.duffzero" && tgtName != "runtime.duffcopy" {
    			// Furthermore, only apply the offset if the target looks like the start of a function call.
    			if r.Add() == 0 && ldr.SymType(rs) == sym.STEXT {
    				t += 8
    			}
    		}
    
    		if t&3 != 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Mar 19 20:54:08 UTC 2024
    - 63.7K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/_gen/ARM.rules

    // 8 and 128 are magic constants, see runtime/mkduff.go
    (Move [s] {t} dst src mem)
    	&& s%4 == 0 && s > 4 && s <= 512
    	&& t.Alignment()%4 == 0 && !config.noDuffDevice && logLargeCopy(v, s) =>
    	(DUFFCOPY [8 * (128 - s/4)] dst src mem)
    
    // Large move uses a loop
    (Move [s] {t} dst src mem)
    	&& ((s > 512 || config.noDuffDevice) || t.Alignment()%4 != 0) && logLargeCopy(v, s) =>
    	(LoweredMove [t.Alignment()]
    		dst
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 17:19:36 UTC 2023
    - 90.1K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/_gen/AMD64.rules

    			(MOVQstore dst (MOVQload src mem) mem)))
    
    // Medium copying uses a duff device.
    (Move [s] dst src mem)
    	&& s > 64 && s <= 16*64 && s%16 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s) =>
    	(DUFFCOPY [s] dst src mem)
    
    // Large copying uses REP MOVSQ.
    (Move [s] dst src mem) && (s > 16*64 || config.noDuffDevice) && s%8 == 0 && logLargeCopy(v, s) =>
    	(REPMOVSQ dst src (MOVQconst [s/8]) mem)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Mar 12 19:38:41 UTC 2024
    - 93.9K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/_gen/ARM64.rules

    		(Move [s-s%16] dst src mem))
    
    // medium move uses a duff device
    (Move [s] dst src mem)
    	&& s > 64 && s <= 16*64 && s%16 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s) =>
    	(DUFFCOPY [8 * (64 - s/16)] dst src mem)
    // 8 is the number of bytes to encode:
    //
    // LDP.P   16(R16), (R26, R27)
    // STP.P   (R26, R27), 16(R17)
    //
    // 64 is number of these blocks. See runtime/duff_arm64.s:duffcopy
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 15:49:20 UTC 2024
    - 113.1K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssagen/ssa.go

    	ir.Syms.DeferprocStack = typecheck.LookupRuntimeFunc("deferprocStack")
    	ir.Syms.Deferreturn = typecheck.LookupRuntimeFunc("deferreturn")
    	ir.Syms.Duffcopy = typecheck.LookupRuntimeFunc("duffcopy")
    	ir.Syms.Duffzero = typecheck.LookupRuntimeFunc("duffzero")
    	ir.Syms.GCWriteBarrier[0] = typecheck.LookupRuntimeFunc("gcWriteBarrier1")
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/opGen.go

    		reg: regInfo{
    			inputs: []inputInfo{
    				{0, 239}, // AX CX DX BX BP SI DI
    			},
    			clobbers: 65519, // AX CX DX BX BP SI DI X0 X1 X2 X3 X4 X5 X6 X7
    		},
    	},
    	{
    		name:           "DUFFCOPY",
    		auxType:        auxInt64,
    		argLen:         3,
    		clobberFlags:   true,
    		faultOnNilArg0: true,
    		faultOnNilArg1: true,
    		reg: regInfo{
    			inputs: []inputInfo{
    				{0, 128}, // DI
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 15:49:20 UTC 2024
    - 1M bytes
    - Viewed (0)
Back to top