From 1528c6ea53c751c40e208d6cc1ae90e93424326a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Fri, 25 Sep 2020 14:49:27 +0200 Subject: [PATCH] Use constants for clarity. --- src/main/java/li/cil/circuity/vm/device/UART16550A.java | 6 +++--- src/main/java/li/cil/circuity/vm/riscv/R5CPU.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/li/cil/circuity/vm/device/UART16550A.java b/src/main/java/li/cil/circuity/vm/device/UART16550A.java index 7f5c248a..57a6e9a8 100644 --- a/src/main/java/li/cil/circuity/vm/device/UART16550A.java +++ b/src/main/java/li/cil/circuity/vm/device/UART16550A.java @@ -398,11 +398,11 @@ public final class UART16550A implements Resettable, Steppable, MemoryMappedDevi } } - fcr = (byte) (value & 0b11001001); + fcr = (byte) (value & (UART_FCR_FE | UART_FCR_DMS | UART_FCR_ITL_MASK)); - if ((value & UART_FCR_FE) != 0) { + if ((fcr & UART_FCR_FE) != 0) { iir |= UART_IIR_FIFO_ENABLED; - switch (value & UART_FCR_ITL_MASK) { + switch (fcr & UART_FCR_ITL_MASK) { case UART_FCR_ITL1: { triggerLevel = 1; break; diff --git a/src/main/java/li/cil/circuity/vm/riscv/R5CPU.java b/src/main/java/li/cil/circuity/vm/riscv/R5CPU.java index c176ec22..144d8d66 100644 --- a/src/main/java/li/cil/circuity/vm/riscv/R5CPU.java +++ b/src/main/java/li/cil/circuity/vm/riscv/R5CPU.java @@ -2675,7 +2675,7 @@ public class R5CPU implements Steppable, RealTimeCounter, InterruptController { final int vpnShift = R5.PAGE_ADDRESS_SHIFT + R5.SV32_XPN_SIZE * i; final int vpn = (virtualAddress >>> vpnShift) & R5.SV32_XPN_MASK; pteAddress += vpn << R5.SV32_PTE_SIZE_LOG2; // equivalent to vpn * PTE size - int pte = physicalMemory.load(pteAddress, 2); // 3. + int pte = (int) physicalMemory.load(pteAddress, Sizes.SIZE_32_LOG2); // 3. if ((pte & R5.PTE_V_MASK) == 0 || ((pte & R5.PTE_R_MASK) == 0 && (pte & R5.PTE_W_MASK) != 0)) { // 4. throw getPageFaultException(accessType, virtualAddress);