コード例 #1
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoF(b uint64) int {
	b &= 0xfffc0000
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) - 16 + arm.REG_F0
}
コード例 #2
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoF(b uint64) int {
	b >>= 32
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + mips.REG_F0
}
コード例 #3
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoR(b uint64) int {
	b &= 0xffffffff
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + mips.REG_R0
}
コード例 #4
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoR(b uint64) int {
	b &= 0xff
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + x86.REG_AX
}
コード例 #5
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoF(b uint64) int {
	b &= 0xFF00
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) - 8 + x86.REG_X0
}
コード例 #6
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoF(b uint64) int {
	b >>= 16
	b &= 0xffff
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + s390x.REG_F0
}
コード例 #7
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoR(b uint64) int {
	// TODO Allow R0 and R1, but be careful with a 0 return
	// TODO Allow R9. Only R10 is reserved now (just g, not m).
	b &= 0x11fc // excluded R9 and R10 for m and g, but not R12
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + arm.REG_R0
}
コード例 #8
0
ファイル: reg.go プロジェクト: glycerine/zygomys
func BtoR(b uint64) int {
	b &= 0xffff
	if gc.Nacl {
		b &^= (1<<(x86.REG_BP-x86.REG_AX) | 1<<(x86.REG_R15-x86.REG_AX))
	} else if gc.Ctxt.Framepointer_enabled {
		// BP is part of the calling convention if framepointer_enabled.
		b &^= (1 << (x86.REG_BP - x86.REG_AX))
	}
	if b == 0 {
		return 0
	}
	return gc.Bitno(b) + x86.REG_AX
}