Skip to content

Commit ad16d26

Browse files
committed
all: use unsafe.Add() where appropriate
1 parent 4204f3d commit ad16d26

13 files changed

Lines changed: 16 additions & 16 deletions

src/machine/machine_atsamd21.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,15 +299,15 @@ func InitADC() {
299299
// #define ADC_FUSES_LINEARITY_1_Msk (0x7u << ADC_FUSES_LINEARITY_1_Pos)
300300
// #define ADC_FUSES_LINEARITY_1(value) ((ADC_FUSES_LINEARITY_1_Msk & ((value) << ADC_FUSES_LINEARITY_1_Pos)))
301301

302-
biasFuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
302+
biasFuse := *(*uint32)(unsafe.Add(0x00806020, 4))
303303
bias := uint16(biasFuse>>3) & uint16(0x7)
304304

305305
// ADC Linearity bits 4:0
306306
linearity0Fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020)))
307307
linearity := uint16(linearity0Fuse>>27) & uint16(0x1f)
308308

309309
// ADC Linearity bits 7:5
310-
linearity1Fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
310+
linearity1Fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
311311
linearity |= uint16(linearity1Fuse) & uint16(0x7) << 5
312312

313313
// set calibration
@@ -1923,7 +1923,7 @@ func (f flashBlockDevice) WriteAt(p []byte, off int64) (n int, err error) {
19231923
for j := 0; j < len(padded); j += int(f.WriteBlockSize()) {
19241924
// page buffer is 64 bytes long, but only 4 bytes can be written at once
19251925
for k := 0; k < int(f.WriteBlockSize()); k += 4 {
1926-
*(*uint32)(unsafe.Pointer(address + uintptr(k))) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
1926+
*(*uint32)(unsafe.Add(address, k)) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
19271927
}
19281928

19291929
sam.NVMCTRL.SetADDR(uint32(address >> 1))

src/machine/machine_atsamd21_usb.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func handlePadCalibration() {
103103
// #define USB_FUSES_TRIM_Msk (0x7u << USB_FUSES_TRIM_Pos)
104104
// #define USB_FUSES_TRIM(value) ((USB_FUSES_TRIM_Msk & ((value) << USB_FUSES_TRIM_Pos)))
105105
//
106-
fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
106+
fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
107107
calibTransN := uint16(fuse>>13) & uint16(0x1f)
108108
calibTransP := uint16(fuse>>18) & uint16(0x1f)
109109
calibTrim := uint16(fuse>>23) & uint16(0x7)

src/machine/machine_atsamd51.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2188,7 +2188,7 @@ func (f flashBlockDevice) WriteAt(p []byte, off int64) (n int, err error) {
21882188
for j := 0; j < len(padded); j += int(f.WriteBlockSize()) {
21892189
// page buffer is 512 bytes long, but only 4 bytes can be written at once
21902190
for k := 0; k < int(f.WriteBlockSize()); k += 4 {
2191-
*(*uint32)(unsafe.Pointer(address + uintptr(k))) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
2191+
*(*uint32)(unsafe.Add(address, k)) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
21922192
}
21932193

21942194
sam.NVMCTRL.SetADDR(uint32(address))

src/machine/machine_atsamd51_usb.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func handlePadCalibration() {
106106
// #define USB_FUSES_TRIM_Msk (0x7u << USB_FUSES_TRIM_Pos)
107107
// #define USB_FUSES_TRIM(value) ((USB_FUSES_TRIM_Msk & ((value) << USB_FUSES_TRIM_Pos)))
108108
//
109-
fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
109+
fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
110110
calibTransN := uint16(fuse>>13) & uint16(0x1f)
111111
calibTransP := uint16(fuse>>18) & uint16(0x1f)
112112
calibTrim := uint16(fuse>>23) & uint16(0x7)

src/machine/machine_esp32_i2c.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ func (i2c *I2C) SetBaudRate(br uint32) error {
389389
}
390390

391391
func (p Pin) pinReg() *volatile.Register32 {
392-
return (*volatile.Register32)(unsafe.Pointer((uintptr(unsafe.Pointer(&esp.GPIO.PIN0)) + uintptr(p)*4)))
392+
return (*volatile.Register32)(unsafe.Add(unsafe.Pointer(&esp.GPIO.PIN0), uintptr(p)*4))
393393
}
394394

395395
func nextAddress(reg *volatile.Register32) *volatile.Register32 {

src/machine/machine_esp32c3.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func (p Pin) outFunc() *volatile.Register32 {
142142
}
143143

144144
func (p Pin) pinReg() *volatile.Register32 {
145-
return (*volatile.Register32)(unsafe.Pointer((uintptr(unsafe.Pointer(&esp.GPIO.PIN0)) + uintptr(p)*4)))
145+
return (*volatile.Register32)(unsafe.Add(unsafe.Pointer(&esp.GPIO.PIN0), uintptr(p)*4))
146146
}
147147

148148
// inFunc returns the FUNCy_IN_SEL_CFG register used for configuring the input

src/machine/machine_nrf.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
371371
return 0, errFlashCannotReadPastEOF
372372
}
373373

374-
data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
374+
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
375375
copy(p, data)
376376

377377
return len(p), nil

src/machine/machine_stm32_flash.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
2525
return 0, errFlashCannotReadPastEOF
2626
}
2727

28-
data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
28+
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
2929
copy(p, data)
3030

3131
return len(p), nil

src/machine/machine_stm32l0_flash.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
2828
return 0, errFlashCannotReadPastEOF
2929
}
3030

31-
data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
31+
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
3232
copy(p, data)
3333

3434
return len(p), nil

src/runtime/dynamic_arm64.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func dynamicLoader(base uintptr, dyn *dyn64) {
3838
for dyn.Tag != dtNULL {
3939
switch dyn.Tag {
4040
case dtRELA:
41-
rela = (*rela64)(unsafe.Pointer(base + uintptr(dyn.Val)))
41+
rela = (*rela64)(unsafe.Add(base, dyn.Val))
4242
case dtRELASZ:
4343
relasz = uint64(dyn.Val) / uint64(unsafe.Sizeof(rela64{}))
4444
}
@@ -62,7 +62,7 @@ func dynamicLoader(base uintptr, dyn *dyn64) {
6262
if debugLoader {
6363
println("relocating ", uintptr(rela.Addend), " to ", base+uintptr(rela.Addend))
6464
}
65-
ptr := (*uint64)(unsafe.Pointer(base + uintptr(rela.Off)))
65+
ptr := (*uint64)(unsafe.Add(base, rela.Off))
6666
*ptr = uint64(base + uintptr(rela.Addend))
6767
default:
6868
if debugLoader {

0 commit comments

Comments
 (0)