X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FModules%2FInterfaces%2FUDI%2Fudi_lib%2Fphysio%2Fpio.c;fp=KernelLand%2FModules%2FInterfaces%2FUDI%2Fudi_lib%2Fphysio%2Fpio.c;h=f0428fc7b0004c32aad0c7aebf07233151c4e7d2;hb=3bbdda25a43af7c2c97719ff7ebd9fd2187ae272;hp=635544c13feebab548d1b058991c29a6de991a75;hpb=9140f92db8e4d25a75d12b14faaf7d557f7ec994;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Interfaces/UDI/udi_lib/physio/pio.c b/KernelLand/Modules/Interfaces/UDI/udi_lib/physio/pio.c index 635544c1..f0428fc7 100644 --- a/KernelLand/Modules/Interfaces/UDI/udi_lib/physio/pio.c +++ b/KernelLand/Modules/Interfaces/UDI/udi_lib/physio/pio.c @@ -375,6 +375,7 @@ void udi_pio_trans(udi_pio_trans_call_t *callback, udi_cb_t *gcb, case UDI_PIO_IN: pio_handle->IOFunc(pio_handle->ChildID, pio_handle->RegSet, operand, tran_size, &tmpval, false); + LOG("IN %x = %i %x", operand, tran_size, tmpval.words[0]); _write_mem(gcb, buf, mem_ptr, (pio_op&0x18), tran_size, reg, &tmpval); break; case UDI_PIO_OUT: @@ -385,9 +386,11 @@ void udi_pio_trans(udi_pio_trans_call_t *callback, udi_cb_t *gcb, break; case UDI_PIO_LOAD: _read_mem(gcb, buf, mem_ptr, (pio_op&0x18), tran_size, reg, ®isters[operand]); + LOG("LOAD R%x = %i %x", operand, tran_size, registers[operand].words[0]); _zero_upper(tran_size, ®isters[operand]); break; case UDI_PIO_STORE: + LOG("STORE R%x (%i %x)", operand, tran_size, registers[operand].words[0]); _write_mem(gcb, buf, mem_ptr, (pio_op&0x18), tran_size, reg, ®isters[operand]); break; } @@ -425,6 +428,7 @@ void udi_pio_trans(udi_pio_trans_call_t *callback, udi_cb_t *gcb, reg->words[0] = operand; break; } + LOG("LOAD IMM "); _zero_upper(tran_size, reg); ip += (1<IOFunc(pio_handle->ChildID, pio_handle->RegSet, registers[operand].words[0], tran_size, reg, false); _zero_upper(tran_size, reg); break; case UDI_PIO_OUT_IND: + LOG("OUT IND"); pio_handle->IOFunc(pio_handle->ChildID, pio_handle->RegSet, registers[operand].words[0], tran_size, reg, true); break; @@ -522,10 +528,12 @@ void udi_pio_trans(udi_pio_trans_call_t *callback, udi_cb_t *gcb, switch(pio_op) { case UDI_PIO_BRANCH: + LOG("BRANCH %i", operand); ip = _get_label(pio_handle, operand); break; case UDI_PIO_LABEL: // nop + LOG("LABEL %i", operand); break; case UDI_PIO_REP_IN_IND: case UDI_PIO_REP_OUT_IND: { @@ -594,8 +602,10 @@ void udi_pio_trans(udi_pio_trans_call_t *callback, udi_cb_t *gcb, ret_status = registers[operand].words[0] & 0xFFFF; else ret_status = registers[operand].words[0] & 0xFF; + LOG("END R%i 0x%x", operand, ret_status); goto end; case UDI_PIO_END_IMM: + LOG("END IMM 0x%x", operand); ASSERTC(tran_size, ==, UDI_PIO_2BYTE); ret_status = operand; goto end;