fix go:noinlines in volatile package

Этот коммит содержится в:
soypat 2023-05-27 14:30:45 -03:00 коммит произвёл Ron Evans
родитель b7b23ace3f
коммит bcdb3fc681
3 изменённых файлов: 8 добавлений и 8 удалений

Просмотреть файл

@ -83,7 +83,7 @@ func in_ram() uintptr {
return device.AsmFull("MOV {}, PC", nil) return device.AsmFull("MOV {}, PC", nil)
} }
// go:noinline used here to prevent function being 'inlined' into main() // 'go:noinline' used here to prevent function being 'inlined' into main()
// so it appears in objdump output. In normal use, go:inline is not // so it appears in objdump output. In normal use, go:inline is not
// required for functions running from flash (flash is the default). // required for functions running from flash (flash is the default).
// //

Просмотреть файл

@ -51,7 +51,7 @@ func (r *BitRegister) Set(v bool) {
// if R is not an AIPS or GPIO register or if N is out of range (greater than // if R is not an AIPS or GPIO register or if N is out of range (greater than
// the number of bits in a register minus one). // the number of bits in a register minus one).
// //
// go:inline //go:inline
func (r *Register8) Bit(bit uint8) *BitRegister { func (r *Register8) Bit(bit uint8) *BitRegister {
ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit) ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit)
return (*BitRegister)(unsafe.Pointer(ptr)) return (*BitRegister)(unsafe.Pointer(ptr))
@ -61,7 +61,7 @@ func (r *Register8) Bit(bit uint8) *BitRegister {
// if R is not an AIPS or GPIO register or if N is out of range (greater than // if R is not an AIPS or GPIO register or if N is out of range (greater than
// the number of bits in a register minus one). // the number of bits in a register minus one).
// //
// go:inline //go:inline
func (r *Register16) Bit(bit uint8) *BitRegister { func (r *Register16) Bit(bit uint8) *BitRegister {
ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit) ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit)
return (*BitRegister)(unsafe.Pointer(ptr)) return (*BitRegister)(unsafe.Pointer(ptr))
@ -71,7 +71,7 @@ func (r *Register16) Bit(bit uint8) *BitRegister {
// if R is not an AIPS or GPIO register or if N is out of range (greater than // if R is not an AIPS or GPIO register or if N is out of range (greater than
// the number of bits in a register minus one). // the number of bits in a register minus one).
// //
// go:inline //go:inline
func (r *Register32) Bit(bit uint8) *BitRegister { func (r *Register32) Bit(bit uint8) *BitRegister {
ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit) ptr := bitbandAddress(uintptr(unsafe.Pointer(&r.Reg)), bit)
return (*BitRegister)(unsafe.Pointer(ptr)) return (*BitRegister)(unsafe.Pointer(ptr))

Просмотреть файл

@ -62,7 +62,7 @@ func (r *Register8) HasBits(value uint8) bool {
// //
// r.Reg = (r.Reg & ^(mask << pos)) | value << pos // r.Reg = (r.Reg & ^(mask << pos)) | value << pos
// //
// go:inline //go:inline
func (r *Register8) ReplaceBits(value uint8, mask uint8, pos uint8) { func (r *Register8) ReplaceBits(value uint8, mask uint8, pos uint8) {
StoreUint8(&r.Reg, LoadUint8(&r.Reg)&^(mask<<pos)|value<<pos) StoreUint8(&r.Reg, LoadUint8(&r.Reg)&^(mask<<pos)|value<<pos)
} }
@ -124,7 +124,7 @@ func (r *Register16) HasBits(value uint16) bool {
// //
// r.Reg = (r.Reg & ^(mask << pos)) | value << pos // r.Reg = (r.Reg & ^(mask << pos)) | value << pos
// //
// go:inline //go:inline
func (r *Register16) ReplaceBits(value uint16, mask uint16, pos uint8) { func (r *Register16) ReplaceBits(value uint16, mask uint16, pos uint8) {
StoreUint16(&r.Reg, LoadUint16(&r.Reg)&^(mask<<pos)|value<<pos) StoreUint16(&r.Reg, LoadUint16(&r.Reg)&^(mask<<pos)|value<<pos)
} }
@ -186,7 +186,7 @@ func (r *Register32) HasBits(value uint32) bool {
// //
// r.Reg = (r.Reg & ^(mask << pos)) | value << pos // r.Reg = (r.Reg & ^(mask << pos)) | value << pos
// //
// go:inline //go:inline
func (r *Register32) ReplaceBits(value uint32, mask uint32, pos uint8) { func (r *Register32) ReplaceBits(value uint32, mask uint32, pos uint8) {
StoreUint32(&r.Reg, LoadUint32(&r.Reg)&^(mask<<pos)|value<<pos) StoreUint32(&r.Reg, LoadUint32(&r.Reg)&^(mask<<pos)|value<<pos)
} }
@ -248,7 +248,7 @@ func (r *Register64) HasBits(value uint64) bool {
// //
// r.Reg = (r.Reg & ^(mask << pos)) | value << pos // r.Reg = (r.Reg & ^(mask << pos)) | value << pos
// //
// go:inline //go:inline
func (r *Register64) ReplaceBits(value uint64, mask uint64, pos uint8) { func (r *Register64) ReplaceBits(value uint64, mask uint64, pos uint8) {
StoreUint64(&r.Reg, LoadUint64(&r.Reg)&^(mask<<pos)|value<<pos) StoreUint64(&r.Reg, LoadUint64(&r.Reg)&^(mask<<pos)|value<<pos)
} }