[Libre-soc-bugs] [Bug 980] Implement C-based Power ISA pseudocode compiler

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Jan 14 13:29:19 GMT 2024


https://bugs.libre-soc.org/show_bug.cgi?id=980

--- Comment #104 from Dmitry Selyutin <ghostmansd at gmail.com> ---
src[64-XLEN:63] <- (RS)
RA <- (C ? A : B)

{
    struct oppc_int src;
    struct oppc_int C;
    struct oppc_int A;
    struct oppc_int B;
    /* src[(64 - XLEN):63] <- (RS) */
    oppc_range_subscript_assign(
        /* src */
        &src,
        /* (64 - XLEN) */
        oppc_sub(
            oppc_transient(&(struct oppc_int){}, UINT64_C(0),
(uint8_t)OPPC_XLEN),
            /* 64 */
            oppc_transient(&(struct oppc_int){}, UINT64_C(64),
(uint8_t)OPPC_XLEN),
            /* XLEN */
            oppc_transient(&(struct oppc_int){}, OPPC_XLEN, (uint8_t)OPPC_XLEN)
        ),
        /* 63 */
        oppc_transient(&(struct oppc_int){}, UINT64_C(63), (uint8_t)OPPC_XLEN),
        /* (RS) */
        &OPPC_GPR[OPPC_GPR_RS]
    );
    /* RA <- C ? A : B */
    oppc_assign(
        /* (RA) */
        &OPPC_GPR[OPPC_GPR_RA],
        (
            /* C */
            &C
            ?
                /* A */
                &A
            :
                /* B */
                &B
        )
    );
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list