Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 6 of 6 for DUFFCOPY (0.17 sec)

  1. src/cmd/compile/internal/ssa/_gen/AMD64Ops.go

    		// returns memory
    		{
    			name:      "DUFFCOPY",
    			aux:       "Int64",
    			argLength: 3,
    			reg: regInfo{
    				inputs:   []regMask{buildReg("DI"), buildReg("SI")},
    				clobbers: buildReg("DI SI X0"), // uses X0 as a temporary
    			},
    			clobberFlags:   true,
    			faultOnNilArg0: true,
    			faultOnNilArg1: true,
    			unsafePoint:    true, // FP maintenance around DUFFCOPY can be clobbered by interrupts
    		},
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Aug 04 16:40:24 UTC 2023
    - 98K bytes
    - Viewed (1)
  2. 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)
  3. 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)
  4. src/cmd/compile/internal/ssa/rewriteLOONG64.go

    		v.AddArg3(dst, v0, v1)
    		return true
    	}
    	// match: (Move [s] {t} dst src mem)
    	// cond: s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0 && !config.noDuffDevice && logLargeCopy(v, s)
    	// result: (DUFFCOPY [16 * (128 - s/8)] dst src mem)
    	for {
    		s := auxIntToInt64(v.AuxInt)
    		t := auxToType(v.Aux)
    		dst := v_0
    		src := v_1
    		mem := v_2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:26:25 UTC 2023
    - 195.8K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/rewriteMIPS64.go

    		v.AddArg3(dst, v0, v1)
    		return true
    	}
    	// match: (Move [s] {t} dst src mem)
    	// cond: s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0 && !config.noDuffDevice && logLargeCopy(v, s)
    	// result: (DUFFCOPY [16 * (128 - s/8)] dst src mem)
    	for {
    		s := auxIntToInt64(v.AuxInt)
    		t := auxToType(v.Aux)
    		dst := v_0
    		src := v_1
    		mem := v_2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jul 31 03:59:48 UTC 2023
    - 211.6K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/rewriteRISCV64.go

    		v.AddArg3(dst, v0, v1)
    		return true
    	}
    	// match: (Move [s] {t} dst src mem)
    	// cond: s%8 == 0 && s <= 8*128 && t.Alignment()%8 == 0 && !config.noDuffDevice && logLargeCopy(v, s)
    	// result: (DUFFCOPY [16 * (128 - s/8)] dst src mem)
    	for {
    		s := auxIntToInt64(v.AuxInt)
    		t := auxToType(v.Aux)
    		dst := v_0
    		src := v_1
    		mem := v_2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Mar 07 14:57:07 UTC 2024
    - 205.1K bytes
    - Viewed (0)
Back to top