author | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2022年05月13日 01:03:57 -0300 |
---|---|---|
committer | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2022年05月13日 01:03:57 -0300 |
commit | d7a0a14f0dec8c2b483cef7a8a239c16042e73ae (patch) | |
tree | 509fb84b19a9d4a656ed1281f5c618a0f685434d /lib/jit_alpha-cpu.c | |
parent | 82fa69dc1d227e04c1241c2b4990e92b892a5613 (diff) | |
download | lightning-d7a0a14f0dec8c2b483cef7a8a239c16042e73ae.tar.gz |
-rw-r--r-- | lib/jit_alpha-cpu.c | 22 |
diff --git a/lib/jit_alpha-cpu.c b/lib/jit_alpha-cpu.c index 8bfef9c..d8ca34a 100644 --- a/lib/jit_alpha-cpu.c +++ b/lib/jit_alpha-cpu.c @@ -311,6 +311,10 @@ static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); static void _movi(jit_state_t*,jit_int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +# define movnr(r0,r1,r2) _movnr(_jit,r0,r1,r2) +static void _movnr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +# define movzr(r0,r1,r2) _movzr(_jit,r0,r1,r2) +static void _movzr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); # define negr(r0,r1) NEGQ(r1,r0) # define comr(r0,r1) NOT(r1,r0) # define addr(r0,r1,r2) ADDQ(r1,r2,r0) @@ -812,6 +816,24 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void +_movnr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +{ + jit_word_t w; + w = beqi(_jit->pc.w, r2, 0); + MOV(r1, r0); + patch_at(w, _jit->pc.w); +} + +static void +_movzr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +{ + jit_word_t w; + w = bnei(_jit->pc.w, r2, 0); + MOV(r1, r0); + patch_at(w, _jit->pc.w); +} + +static void _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) { jit_int32_t reg; |