ref: 8be7f27b758ef9ef818f68db0d8bcb7b038eae0e
dir: /sys/src/9/mtx/inb.s/
#include "mem.h" #define BDNZ BC 16,0, #define BDNE BC 0,2, TEXT inb(SB), $0 OR $IOMEM, R3 MOVBZ (R3), R3 RETURN TEXT insb(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $1, R4 insb1: MOVBZ (R3), R7 MOVBU R7, 1(R4) BDNZ insb1 RETURN TEXT outb(SB), $0 MOVW v+4(FP), R4 OR $IOMEM, R3 EIEIO MOVB R4, (R3) RETURN TEXT outsb(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $1, R4 outsb1: EIEIO MOVBZU 1(R4), R7 MOVB R7, (R3) BDNZ outsb1 RETURN TEXT ins(SB), $0 OR $IOMEM, R3 EIEIO MOVHBR (R3), R3 RETURN TEXT inss(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $2, R4 inss1: EIEIO MOVHZ (R3), R7 MOVHU R7, 2(R4) BDNZ inss1 RETURN TEXT outs(SB), $0 MOVW v+4(FP), R4 OR $IOMEM, R3 EIEIO MOVHBR R4, (R3) RETURN TEXT outss(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $2, R4 outss1: EIEIO MOVHZU 2(R4), R7 MOVH R7, (R3) BDNZ outss1 RETURN TEXT inl(SB), $0 OR $IOMEM, R3 EIEIO MOVWBR (R3), R3 RETURN TEXT insl(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $4, R4 insl1: EIEIO MOVW (R3), R7 MOVWU R7, 4(R4) BDNZ insl1 RETURN TEXT outl(SB), $0 MOVW v+4(FP), R4 OR $IOMEM, R3 EIEIO MOVWBR R4, (R3) RETURN TEXT outsl(SB), $0 MOVW v+4(FP), R4 MOVW n+8(FP), R5 MOVW R5, CTR OR $IOMEM, R3 SUB $4, R4 outsl1: EIEIO MOVWU 4(R4), R7 MOVW R7, (R3) BDNZ outsl1 RETURN