| Commit message (Expand) | Author | Files | Lines |
2023-06-13 | core: decouple ARM interface from Dynarmic | Liam | 9 | -120/+75 |
2023-04-02 | core: arm_dynarmic_32: Update SaveContext/LoadContext. | bunnei | 1 | -13/+10 |
2023-03-24 | memory: rename global memory references to application memory | Liam | 2 | -6/+6 |
2023-03-22 | kernel: use KTypedAddress for addresses | Liam | 4 | -13/+13 |
2023-01-06 | externals: update dynarmic, xbyak | Liam | 2 | -0/+8 |
2022-12-02 | core: add option to break on unmapped access | Liam | 2 | -4/+38 |
2022-11-17 | Dynarmic: Remove inaccurate NaN from Auto CPU settings. | Fernando Sahmkow | 1 | -1/+0 |
2022-11-09 | Initial ARM64 support | Liam | 2 | -7/+20 |
2022-10-27 | arm_interface: curb infinite recursion in stacktrace generation | Liam | 2 | -2/+2 |
2022-10-12 | k_server_session: preliminary support for userspace server sessions | Liam | 1 | -0/+1 |
2022-08-20 | code: dodge PAGE_SIZE #define | Kyle Kienapfel | 1 | -2/+2 |
2022-08-09 | arm_dynarmic: Fix nullptr fastmem arenas | Merry | 2 | -7/+11 |
2022-08-08 | core/arm: fix build error | Liam | 2 | -2/+10 |
2022-08-07 | arm_dynarmic_cp15: Implement CP15DMB/CP15DSB/CP15ISB | Merry | 2 | -4/+29 |
2022-07-27 | chore: make yuzu REUSE compliant | Andrea Pappacoda | 2 | -6/+4 |
2022-07-25 | kernel: unlayer CPU interrupt handling | Liam | 4 | -16/+20 |
2022-07-16 | core/arm: skip watchpoint checks when reading instructions | Liam | 2 | -6/+6 |
2022-07-15 | dynarmic: Abort watchpoints ASAP | Merry | 2 | -6/+2 |
2022-06-25 | core/arm: better support for backtrace generation | Liam | 4 | -15/+36 |
2022-06-22 | core/arm: increase minimum_run_cycles | Liam | 2 | -2/+2 |
2022-06-22 | core/arm: re-enable cycle counting | merry | 2 | -6/+20 |
2022-06-22 | dynarmic: Stop ReadCode callbacks to unmapped addresses | Liam | 2 | -19/+51 |
2022-06-16 | core/debugger: memory breakpoint support | Liam | 4 | -25/+135 |
2022-06-01 | core/debugger: Improved stepping mechanism and misc fixes | Liam | 4 | -76/+32 |
2022-06-01 | core/debugger: Implement new GDB stub debugger | Liam | 4 | -13/+62 |
2022-05-14 | general: Avoid ambiguous format_to compilation errors | Lioncash | 1 | -1/+1 |
2022-04-24 | Remove unused PrepareReschedule function | Merry | 4 | -10/+0 |
2022-04-23 | general: Convert source file copyright comments over to SPDX | Morph | 6 | -18/+12 |
2022-04-21 | core/arm: separate backtrace collection | Liam | 4 | -0/+73 |
2022-04-13 | dynarmic: Fix single core mode | merry | 2 | -2/+2 |
2022-04-10 | dynarmic: Fix race when switching page tables | merry | 4 | -57/+84 |
2022-04-05 | dynarmic: Print stack trace on unrecognised instruction or other exception | merry | 2 | -0/+4 |
2022-04-03 | arm_dynarmic: Use HaltReason for svc calls and reschedules | merry | 4 | -27/+19 |
2022-04-03 | dynarmic: Better interrupts | merry | 4 | -22/+23 |
2022-03-27 | arm_dynarmic_64: Invalidate on all cores | merry | 1 | -2/+4 |
2022-03-26 | configuration: Add Paranoid CPU accuracy level | merry | 2 | -44/+56 |
2022-03-23 | Revert "dynarmic: Reduce size of code caches" | bunnei | 2 | -4/+4 |
2022-03-19 | core: Reduce unused includes | ameerj | 1 | -2/+0 |
2022-03-13 | dynarmic: Reduce size of code caches | Merry | 2 | -4/+4 |
2022-02-27 | dynarmic: Inline exclusive memory accesses | merry | 4 | -3/+28 |
2021-11-22 | arm: dynarmic: Cleanup icache op handling | jam1garner | 1 | -10/+9 |
2021-11-22 | arm: dynarmic: Implement icache op handling for 'ic iallu' instruction | jam1garner | 1 | -0/+3 |
2021-11-22 | arm: dynarmic: Implement icache op handling for 'ic ivau' instruction | jam1garner | 1 | -0/+18 |
2021-11-04 | core: Remove unused includes | ameerj | 6 | -7/+0 |
2021-10-24 | Fixed ARM_Dynamic_64 Step | Andrew Strelsky | 1 | -1/+1 |
2021-07-08 | settings, arm_dynarmic, yuzu qt: Move CPU debugging option | lat9nq | 2 | -2/+2 |
2021-07-08 | arm_dynarmic_64: Re-add fastmem_address_space_bits to Auto setting | lat9nq | 1 | -0/+1 |
2021-07-08 | arm_dynarmic{32,64}: Fixes from test build | lat9nq | 2 | -18/+5 |
2021-07-08 | core,common,yuzu qt: Add CPU accuracy option 'Auto' | lat9nq | 2 | -8/+36 |
2021-06-24 | common: Replace common_sizes into user-literals | Wunkolo | 2 | -4/+9 |
2021-06-20 | Update dynarmic and add new unsafe CPU option. | Fernando Sahmkow | 1 | -0/+3 |
2021-06-11 | General: Add settings for fastmem and disabling adress space check. | FernandoS27 | 2 | -2/+11 |
2021-06-11 | core: Make use of fastmem | Markus Wick | 2 | -0/+5 |
2021-05-29 | core/arm_interface: Improve the performance of memory fallbacks. | Markus Wick | 2 | -29/+31 |
2021-05-29 | externals: Update dynarmic. | Markus Wick | 6 | -11/+11 |
2021-05-27 | core/arm_interface: Call SVC after end of dynarmic block. | Markus Wick | 4 | -14/+42 |
2021-05-26 | core/arm: Drop ChangeProcessorID. | Markus Wick | 4 | -10/+0 |
2021-05-16 | core: Make variable shadowing a compile-time error | Lioncash | 5 | -6/+6 |
2021-05-16 | general: Make CPU accuracy and related a Settings::Setting | lat9nq | 2 | -10/+10 |
2021-05-06 | hle: kernel: Rename Process to KProcess. | bunnei | 1 | -1/+1 |
2021-05-04 | service: Resolve cases of member field shadowing | Lioncash | 4 | -16/+16 |
2021-05-03 | core: Resolve misc cases of variable shadowing | Lioncash | 1 | -6/+5 |
2021-04-15 | common: Move settings to common from core. | bunnei | 2 | -2/+2 |
2021-04-02 | arm_dynarmic: Increase size of code cache | MerryMage | 2 | -0/+8 |
2021-03-24 | arm_dynarmic: Always have a 'valid' jit instance | MerryMage | 4 | -53/+26 |
2021-03-21 | core: arm_dynarmic: Ensure JIT state is saved/restored on page table changes. | bunnei | 2 | -0/+10 |
2021-02-01 | arm_dynarmic_32: Print out CPSR.T on exception | MerryMage | 2 | -2/+7 |
2021-01-29 | arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext. | bunnei | 2 | -0/+12 |
2021-01-29 | core: arm: Remove unnecessary JIT checks. | bunnei | 2 | -24/+0 |
2021-01-29 | arm: arm_dynarmic: Skip calls when JIT is invalid. | bunnei | 2 | -0/+24 |
2021-01-09 | core: Silence unhandled enum in switch warnings | ReinUsesLisp | 1 | -8/+1 |
2021-01-02 | dynarmic: Add Unsafe_InaccurateNaN optimization | MerryMage | 2 | -0/+6 |
2020-12-30 | core/memory: Read and write page table atomically | ReinUsesLisp | 2 | -0/+2 |
2020-12-06 | hle: kernel: Rewrite scheduler implementation based on Mesopshere. | bunnei | 1 | -1/+1 |
2020-12-06 | hle: kernel: physical_core: Clear exclusive state after each run. | bunnei | 2 | -0/+6 |
2020-11-29 | core: arm: Implement InvalidateCacheRange for CPU cache invalidation. | bunnei | 4 | -0/+16 |
2020-11-29 | hle: kernel: multicore: Replace n-JITs impl. with 4 JITs. | bunnei | 4 | -0/+10 |
2020-11-27 | core: Eliminate remaining usages of the global system instance | Lioncash | 1 | -11/+0 |
2020-11-04 | core: Remove usage of unicorn | Lioncash | 3 | -23/+9 |
2020-10-21 | Revert "core: Fix clang build" | bunnei | 4 | -18/+18 |
2020-10-18 | core: Fix clang build | Lioncash | 4 | -18/+18 |
2020-09-22 | General: Make use of std::nullopt where applicable | Lioncash | 1 | -3/+3 |
2020-09-17 | arm_dynarmic_cp15: Initialize member variables | Lioncash | 1 | -2/+2 |
2020-08-16 | dynarmic: Add unsafe optimizations | MerryMage | 2 | -2/+24 |
2020-07-11 | configure_cpu: Show/Hide debugging options | MerryMage | 2 | -46/+50 |
2020-07-11 | configuration: Add settings to enable/disable specific CPU optimizations | MerryMage | 2 | -10/+50 |
2020-06-28 | Core/Common: Address Feedback. | Fernando Sahmkow | 4 | -6/+8 |
2020-06-27 | SVC: Implement 32-bits wrappers and update Dynarmic. | Fernando Sahmkow | 1 | -1/+7 |
2020-06-27 | ARM: Update Dynarmic and Setup A32 according to latest interface. | Fernando Sahmkow | 6 | -92/+165 |
2020-06-27 | ArmDynarmic32: Setup CNTPCT correctly | Fernando Sahmkow | 1 | -1/+1 |
2020-06-27 | ARMDynarmicInterface: Correct GCC Build Errors. | Fernando Sahmkow | 2 | -6/+6 |
2020-06-27 | ARMInterface/Externals: Update dynarmic and fit to latest version. | Fernando Sahmkow | 1 | -7/+7 |
2020-06-27 | ARMInterface: Correct rebase errors. | Fernando Sahmkow | 1 | -2/+2 |
2020-06-27 | Dynarmic Interface: don't clear cache if JIT has not been created. | Fernando Sahmkow | 2 | -0/+6 |
2020-06-27 | General: Cleanup legacy code. | Fernando Sahmkow | 2 | -2/+0 |
2020-06-27 | SingleCore: Use Cycle Timing instead of Host Timing. | Fernando Sahmkow | 4 | -27/+53 |
2020-06-27 | General: Move ARM_Interface into Threads. | Fernando Sahmkow | 4 | -0/+10 |
2020-06-27 | Core: Refactor ARM Interface. | Fernando Sahmkow | 4 | -10/+13 |
2020-06-27 | X64 Clock: Reduce accuracy to be less or equal to guest accuracy. | Fernando Sahmkow | 1 | -0/+3 |
2020-06-27 | SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface. | Fernando Sahmkow | 2 | -4/+19 |
2020-06-27 | ARM: Addapt to new Exclusive Monitor Interface. | Fernando Sahmkow | 2 | -17/+15 |
2020-06-27 | General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running. | Fernando Sahmkow | 2 | -8/+1 |
2020-06-27 | ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes. | Fernando Sahmkow | 2 | -14/+58 |
2020-06-27 | Core: Correct rebase. | Fernando Sahmkow | 1 | -12/+6 |
2020-06-27 | General: Recover Prometheus project from harddrive failure
| Fernando Sahmkow | 4 | -22/+20 |
2020-06-22 | arm_dynarmic_64: Log the instruction when an exception is raised | Morph | 1 | -2/+2 |
2020-06-22 | arm_dynarmic_32: Log under Core_ARM instead of HW_GPU | Morph | 1 | -1/+1 |
2020-06-18 | arm_dynarmic_32: Fix implicit conversion error in SetTPIDR_EL0 | ReinUsesLisp | 1 | -1/+1 |
2020-06-17 | arm_dynarmic_cp15: Implement CNTPCT | MerryMage | 1 | -0/+13 |
2020-06-17 | arm_dynarmic_cp15: Update CP15 | MerryMage | 4 | -142/+73 |
2020-06-17 | arm_dynarmic_32: InterpreterFallback should never happen | MerryMage | 1 | -2/+3 |
2020-04-24 | physical_core: Make use of std::make_unique instead of std::make_shared in ctor | Lioncash | 1 | -4/+3 |
2020-04-20 | dynarmic: Add option to disable CPU JIT optimizations | MerryMage | 1 | -2/+8 |
2020-04-17 | dynarmic: Enable strict alignment checks. | bunnei | 1 | -1/+4 |
2020-04-17 | core: memory: Move to Core::Memory namespace. | bunnei | 2 | -3/+3 |
2020-04-17 | core: kernel: Move SVC to its own namesapce. | bunnei | 2 | -2/+2 |
2020-03-03 | core: Implement separate A32/A64 ARM interfaces. | bunnei | 4 | -51/+338 |
2020-03-03 | core: dynarmic: Add CP15 from Citra. | bunnei | 2 | -0/+232 |
2020-02-26 | ARM_Interface: Cache the JITs instead of deleting/recreating. | Fernando Sahmkow | 2 | -4/+19 |
2020-02-12 | Core: Set all hardware emulation constants in a single file. | Fernando Sahmkow | 1 | -1/+2 |
2020-01-31 | core/arm: Remove usage of global GetCurrentThread() | Lioncash | 1 | -1/+2 |
2020-01-26 | Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager. | Fernando Sahmkow | 1 | -1/+1 |
2020-01-01 | core/memory + arm/dynarmic: Use a global offset within our arm page table. | Markus Wick | 1 | -0/+1 |
2019-11-27 | core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class | Lioncash | 2 | -15/+22 |
2019-11-27 | core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class | Lioncash | 1 | -6/+6 |
2019-11-27 | core: Prepare various classes for memory read/write migration | Lioncash | 2 | -4/+5 |
2019-11-12 | arm_unicorn: Resolve sign conversion warnings | Lioncash | 1 | -1/+1 |
2019-10-11 | Core_Timing: Address Feedback and suppress warnings. | Fernando Sahmkow | 1 | -1/+1 |
2019-10-09 | Core Timing: Rework Core Timing to run all cores evenly. | Fernando Sahmkow | 1 | -1/+1 |
2019-09-30 | Revert "arm_dynarmic: Check if jit is nullptr when preparing reschedule" | bunnei | 1 | -3/+0 |
2019-07-11 | core/arm: Remove obsolete Unicorn memory mapping | Lioncash | 2 | -12/+0 |
2019-06-10 | arm_dynarmic: Check if jit is nullptr when preparing reschedule | Zach Hilman | 1 | -0/+3 |
2019-04-12 | core/cpu_core_manager: Create threads separately from initialization. | Lioncash | 2 | -17/+12 |
2019-04-08 | kernel/svc: Deglobalize the supervisor call handlers | Lioncash | 2 | -15/+12 |
2019-04-07 | arm/arm_dynarmic: Remove unnecessary current_page_table member | Lioncash | 2 | -8/+0 |
2019-04-04 | core: Add missing override specifiers where applicable | Lioncash | 2 | -3/+2 |
2019-03-17 | core: Move PageTable struct into Common. | bunnei | 1 | -2/+2 |
2019-02-16 | Corrections, documenting and fixes. | Fernando Sahmkow | 1 | -1/+1 |
2019-02-16 | Use u128 on Clock Cycles calculation. | Fernando Sahmkow | 1 | -1/+1 |
2019-02-16 | Correct CNTPCT to use Clock Cycles instead of Cpu Cycles. | Fernando Sahmkow | 1 | -2/+3 |
2019-02-16 | core_timing: Convert core timing into a class | Lioncash | 2 | -6/+14 |
2019-02-12 | core_timing: Rename CoreTiming namespace to Core::Timing | Lioncash | 1 | -3/+3 |
2018-12-19 | Moved backtrace to ArmInterface | David Marcec | 2 | -18/+0 |
2018-12-18 | arm_dynarmic: Set CNTFRQ value | MerryMage | 1 | -0/+1 |
2018-12-03 | Moved backtrace to ArmInterface | David Marcec | 2 | -0/+18 |
2018-10-15 | core: Make the exclusive monitor a unique_ptr instead of a shared_ptr | Lioncash | 2 | -6/+5 |
2018-10-10 | kernel/thread: Use a regular pointer for the owner/current process | Lioncash | 1 | -1/+1 |
2018-10-04 | kernel/thread: Make all instance variables private | Lioncash | 1 | -1/+1 |
2018-09-30 | kernel/process: Make data member variables private | Lioncash | 1 | -2/+2 |
2018-09-30 | arm_interface: Add missing fpsr/tpidr members to the ThreadContext struct | Lioncash | 1 | -2/+6 |
2018-09-25 | memory: Dehardcode the use of a 36-bit address space | Lioncash | 1 | -2/+3 |
2018-09-23 | FPCR register was uninitialized at start up | Philippe Babin | 1 | -1/+1 |
2018-09-21 | arm_interface: Replace kernel vm_manager include with a forward declaration | Lioncash | 2 | -0/+5 |
2018-09-20 | arm_dynarmic: Halt when BRK encountered | MerryMage | 1 | -0/+1 |
2018-09-19 | arm_dynarmic: Support BKPT instruction | MerryMage | 1 | -0/+11 |
2018-09-18 | arm_dynarmic: Correct ExclusiveWrite128()'s operation | Lioncash | 1 | -2/+2 |
2018-09-18 | arm_interface: Remove ARM11-isms from the CPU interface | Lioncash | 2 | -26/+15 |
2018-09-15 | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2 | -24/+25 |
2018-09-04 | Update microprofile scopes. | Markus Wick | 1 | -0/+4 |
2018-08-31 | core/core: Replace includes with forward declarations where applicable | Lioncash | 1 | -0/+1 |
2018-08-25 | core: Namespace all code in the arm subdirectory under the Core namespace | Lioncash | 2 | -0/+8 |
2018-08-16 | dynarmic: Update to 550d662 | MerryMage | 1 | -0/+3 |
2018-08-13 | arm_dynarmic: Remove IsExecuting check from PrepareReschedule | MerryMage | 1 | -3/+1 |
2018-08-13 | CPU/Timing: Use an approximated amortized amount of ticks when advancing timing. | Subv | 1 | -1/+10 |
2018-07-31 | kernel: Remove unnecessary includes | Lioncash | 1 | -1/+1 |
2018-07-31 | arm_dynarmic: Make SetTlsAddress() prototype and definition consistent | Lioncash | 1 | -1/+1 |
2018-07-31 | arm_dynarmic: Remove unnecessary qualifying of ThreadContext | Lioncash | 1 | -3/+3 |
2018-07-31 | arm_dynarmic: Correct initializer list order | Lioncash | 1 | -5/+3 |
2018-07-24 | arm_dynarmic: Make MakeJit() a const member function | Lioncash | 2 | -3/+3 |
2018-07-24 | exclusive_monitor: Use consistent type alias for u64 | Lioncash | 2 | -14/+12 |
2018-07-22 | Implement exclusive monitor | MerryMage | 2 | -8/+89 |
2018-07-21 | CPU: Save and restore the TPIDR_EL0 system register on every context switch. | Subv | 2 | -0/+10 |
2018-07-21 | arm_interface: Remove unused tls_address member of ThreadContext | Lioncash | 1 | -2/+0 |
2018-07-16 | scheduler: Clear exclusive state when switching contexts | MerryMage | 2 | -0/+5 |
2018-07-03 | Update clang format | James Rowe | 1 | -1/+1 |
2018-07-03 | Rename logging macro back to LOG_* | James Rowe | 1 | -1/+1 |
2018-05-02 | general: Make formatting of logged hex values more straightforward | Lioncash | 1 | -1/+1 |
2018-04-27 | general: Convert assertion macros over to be fmt-compatible | Lioncash | 1 | -1/+1 |
2018-04-26 | core: Replace remaining old non-generic logger usages with fmt-capable equivalents | Lioncash | 1 | -2/+2 |
2018-03-24 | arm_dynarmic: Fix timing | MerryMage | 1 | -7/+3 |
2018-03-16 | arm_interface: Support unmapping previously mapped memory. | bunnei | 2 | -1/+5 |
2018-03-14 | core: Move process creation out of global state. | bunnei | 1 | -1/+2 |
2018-02-25 | Implements citra-emu/citra#3184 | N00byKing | 2 | -8/+16 |
2018-02-21 | dynarmic: Update to 6b4c6b0 | MerryMage | 1 | -2/+18 |
2018-02-21 | arm_dynarmic: LOG_INFO on unicorn fallback | MerryMage | 1 | -0/+4 |
2018-02-12 | arm_dynarmic: Support direct page table access | MerryMage | 1 | -6/+14 |
2018-02-09 | dynarmic: Update to 41ae12263 | MerryMage | 2 | -31/+45 |
2018-01-20 | Fixes some cast warnings, partial port of citra #3064 (#106) | River City Ransomware | 1 | -3/+3 |
2018-01-13 | Update dynarmic to bc73004 | MerryMage | 1 | -12/+17 |
2018-01-13 | yuzu: Update license text to be consistent across project. | bunnei | 2 | -2/+2 |
2018-01-12 | arm_dynarmic: Implement core | MerryMage | 2 | -44/+142 |
2018-01-04 | arm_dynarmic: More cleanup. | bunnei | 1 | -6/+0 |
2018-01-04 | arm_dynarmic: Gut interface until dynarmic is ready for general use. | bunnei | 2 | -142/+44 |
2018-01-03 | arm: Remove SkyEye/Dyncom code that is ARMv6-only. | bunnei | 4 | -147/+6 |
2017-09-30 | arm_interface: Set TLS address for dynarmic core. | bunnei | 2 | -0/+16 |
2017-09-30 | arm: Use 64-bit addressing in a bunch of places. | bunnei | 2 | -52/+85 |
2017-09-30 | Moved down_count to CoreTiming | Huw Pascoe | 2 | -10/+1 |
2017-09-25 | ARM_Interface: Implement PageTableChanged | MerryMage | 2 | -6/+26 |
2017-09-15 | CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime. | Subv | 1 | -1/+3 |
2017-08-21 | CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions. | Subv | 1 | -1/+1 |
2017-02-03 | arm_dynarmic: Update memory interface | MerryMage | 1 | -10/+10 |
2017-02-03 | arm_dynarmic: CP15 support | MerryMage | 4 | -5/+128 |
2016-12-22 | arm_dynarmic: Provide MemoryReadCode callback | MerryMage | 1 | -0/+1 |
2016-12-22 | ThreadContext: Move from "core" to "arm_interface". | bunnei | 2 | -8/+4 |
2016-12-11 | Core: Add a forgotten #include <cstring> for memcpy. | Emmanuel Gil Peyrot | 1 | -0/+1 |
2016-11-26 | dynarmic: Add ticks based on ticks executed, not ticks requested | MerryMage | 1 | -2/+2 |
2016-11-25 | Expose page table to dynarmic for optimized reads and writes to the JIT | James Rowe | 1 | -0/+1 |
2016-09-21 | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 1 | -1/+1 |
2016-09-21 | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2 | -7/+2 |
2016-09-15 | arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg. | bunnei | 1 | -5/+12 |
2016-09-15 | arm: ResetContext shouldn't be part of ARM_Interface. | bunnei | 2 | -10/+0 |
2016-09-15 | arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword. | bunnei | 1 | -1/+1 |
2016-09-15 | dynarmic: Implement ARM CPU interface. | bunnei | 2 | -0/+227 |