X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=cpu%2Fepiphany.cpu;h=02bce0779d5db97b06dd54b5cd53cc88fdd41a54;hb=22aa1d51198689f5f3f01a874b405bf4449cbfb0;hp=a11011b879d98a72a20bd5f3012a32540e664142;hpb=926e2094bb184293131b21b9394d092d86d695c8;p=deliverable%2Fbinutils-gdb.git diff --git a/cpu/epiphany.cpu b/cpu/epiphany.cpu index a11011b879..02bce0779d 100644 --- a/cpu/epiphany.cpu +++ b/cpu/epiphany.cpu @@ -149,11 +149,11 @@ (df f-simm8 "branch displacement" (PCREL-ADDR RELOC) 15 8 INT ((value pc) (sra SI (sub SI value pc) 1)) - ((value pc) (add SI (sll SI value 1) pc))) + ((value pc) (add SI (mul SI value 2) pc))) (df f-simm24 "branch displacement" (PCREL-ADDR RELOC) 31 24 INT ((value pc) (sra SI (sub SI value pc) 1)) - ((value pc) (add SI (sll SI value 1) pc))) + ((value pc) (add SI (mul SI value 2) pc))) (df f-sdisp3 "signed immediate 3 bit" () 9 3 INT #f #f) @@ -228,10 +228,11 @@ (set (ifield f-disp3) (and SI (ifield f-sdisp11) 7))) (sequence () ;decode (set (ifield f-sdisp11) - (sra SI (sll SI (or SI (sll (ifield f-disp8) 3) - (ifield f-disp3)) - 21) - 21))) + (sub SI (xor (and (or (sll (ifield f-disp8) 3) + (ifield f-disp3)) + #x7ff) + #x400) + #x400))) ) (dnmf f-imm16 "Short immediate for move/add/sub" () UINT (f-imm8 f-imm-27-8) @@ -352,7 +353,7 @@ (prefix "") (values ; some preferred aliases - (sb 9) (sl 10) (fp 11) (ip 12) (sp 13) (lr 14) + (fp 11) (sp 13) (lr 14) ; the default register names (r0 0) (r1 1) (r2 2) (r3 3) (r4 4) (r5 5) (r6 6) (r7 7) (r8 8) (r9 9) (r10 10) (r11 11) (r12 12) (r13 13) (r14 14) (r15 15) @@ -365,6 +366,7 @@ ; some less popular aliases (a1 0) (a2 1) (a3 2) (a4 3) (v1 4) (v2 5) (v3 6) (v4 7) (v5 8) (v6 9) (v7 10) (v8 11) + (sb 9) (sl 10) (ip 12) ) ) @@ -1428,7 +1430,7 @@ (dnmi (.sym name "x") (.str "load " mode " indexed") - () + (NO-DIS) (.str name ".l $rd6,[$rn6,$direction$rm6]") (emit (.sym name "x.l") rd6 rn6 direction rm6) ) @@ -1453,7 +1455,7 @@ (dnmi (.sym name "p") (.str "load " mode " postmodify") - () + (NO-DIS) (.str name ".l $rd6,[$rn6],$direction$rm6") (emit (.sym name "p.l") rd6 rn6 direction rm6) ) @@ -1494,7 +1496,7 @@ (dnmi (.sym name "d") (.str "load " mode " displacement") - () + (NO-DIS) (.str name ".l $rd6,[$rn6,$dpmi$disp11]") (emit (.sym name "d.l") rd6 rn6 dpmi disp11) ) @@ -1519,7 +1521,7 @@ (dnmi (.sym name "dpm") (.str "load " mode " displacement post-modify") - () + (NO-DIS) (.str name ".l $rd6,[$rn6],$dpmi$disp11") (emit (.sym name "dpm.l") rd6 rn6 dpmi disp11) ) @@ -1532,12 +1534,12 @@ (emit (.sym name "d16.s") rd rn (disp3 0)) ) (dnmi (.sym name "dl0") "load with 0 disp" - () + (NO-DIS) (.str name " $rd6,[$rn6]") (emit (.sym name "d.l") rd6 rn6 (dpmi 0) (disp11 0)) ) (dnmi (.sym name "dl0.l") "load with 0 disp" - () + (NO-DIS) (.str name ".l $rd6,[$rn6]") (emit (.sym name "d.l") rd6 rn6 (dpmi 0) (disp11 0)) ) @@ -1594,7 +1596,7 @@ (dnmi (.sym name "t.l") (.str "testset " mode ".l indexed") - () + (NO-DIS) (.str name ".l $rd6,[$rn6,$direction$rm6]") (emit (.sym name "t") rd6 rn6 direction rm6) ) @@ -1640,7 +1642,7 @@ (dnmi (.sym name "x.l") (.str "store" mode " indexed") - () + (NO-DIS) (.str name ".l $rd6,[$rn6,$direction$rm6]") (emit (.sym name "x") rd6 rn6 direction rm6) ) @@ -1676,7 +1678,7 @@ ) (dnmi (.sym name "p.l") (.str "store " mode " postmodify") - () + (NO-DIS) (.str name ".l $rd6,[$rn6],$direction$rm6") (emit (.sym name "p") rd6 rn6 direction rm6) ) @@ -1714,7 +1716,7 @@ (dnmi (.sym name "d.l") (.str "store " mode " displacement") - () + (NO-DIS) (.str name ".l $rd6,[$rn6,$dpmi$disp11]") (emit (.sym name "d") rd6 rn6 dpmi disp11) ) @@ -1737,7 +1739,7 @@ ) (dnmi (.sym name "dpm.l") (.str "store " mode " displacement post-modify") - () + (NO-DIS) (.str name ".l $rd6,[$rn6],$dpmi$disp11") (emit (.sym name "dpm") rd6 rn6 dpmi disp11) ) @@ -1756,7 +1758,7 @@ ) (dnmi (.sym name "dl0.l") "store w 0 disp" - () + (NO-DIS) (.str name ".l $rd6,[$rn6]") (emit (.sym name "d") rd6 rn6 (dpmi 0) (disp11 0)) ) @@ -1798,7 +1800,7 @@ ) (dnmi (.sym "cmov.l" cond) (.str "move register " cond) - () + (NO-DIS) (.str "mov" name ".l $rd6,$rn6") (emit (.sym "cmov" cond) rd6 rn6) ) @@ -1859,7 +1861,7 @@ (dnmi (.sym "movts.l" name) (.str "move to " name) - () + (NO-DIS) (.str "movts.l $" sdreg ",$rd6") (emit (.sym "movts" name) sdreg rd6) ) @@ -1903,7 +1905,7 @@ (dnmi (.sym "movfs.l" name) (.str "move from " name) - () + (NO-DIS) (.str "movfs.l $rd6,$" snreg) (emit (.sym "movfs" name) rd6 snreg) ) @@ -2165,7 +2167,7 @@ (dnmi (.sym name ".l") (.str name) - () + (NO-DIS) (.str name ".l $rd6,$rn6,$rm6") (emit (.sym name) rd6 rn6 rm6) ) @@ -2307,7 +2309,7 @@ (dnmi (.sym name ".l") (.str name) - () + (NO-DIS) (.str name ".l $rd6,$rn6,$rm6") (emit (.sym name) rd6 rn6 rm6) ) @@ -2349,7 +2351,7 @@ (dnmi (.sym name "i32.l") (.str name) - () + (NO-DIS) (.str name ".l $rd6,$rn6,$shift") (emit (.sym name "i32") rd6 rn6 shift) ) @@ -2411,7 +2413,7 @@ () ) (dnmi bitrl "bit reverse l" - () + (NO-DIS) ("bitr.l $rd6,$rn6") (emit bitr rd6 rn6) ) @@ -2441,7 +2443,7 @@ (dnmi (.sym name ".l") (.str name) - () + (NO-DIS) (.str name ".l $rd6,$rn6,$rm6") (emit (.sym name) rd6 rn6 rm6) ) @@ -2496,7 +2498,7 @@ ) (dnmi movtl "movt imm16" - () + (NO-DIS) "movt.l $rd6,$imm16" (emit movt rd6 imm16) ) @@ -2581,7 +2583,7 @@ (if (or (and invExcEnbit bisbit) (or (and ovfExcEnbit bvsbit) (and unExcEnbit busbit))) - (sequence () + (sequence () (set expcause0bit (const 1)) (set expcause1bit (const 1)) (call-exception #x4 #x2))) @@ -2602,7 +2604,7 @@ (dnmi (.sym "f_" name "f32.l") (.str "f_" name) - () + (NO-DIS) (.str "f" name ".l $rd6,$rn6,$rm6") (emit (.sym "f_" name "f32") rd6 rn6 rm6) ) @@ -2686,7 +2688,7 @@ (dnmi (.sym "f_" name "f32.l") (.str "f_" name) - () + (NO-DIS) (.str "f" name ".l $rd6,$rn6") (emit (.sym "f_" name "f32") rd6 rn6) ) @@ -2746,7 +2748,7 @@ (dnmi (.sym "f_" name "f32.l") (.str "f_" name) - () + (NO-DIS) (.str "f" name ".l $rd6,$rn6") (emit (.sym "f_" name "f32") rd6 rn6) ) @@ -2830,7 +2832,7 @@ (dnmi (.sym "f_" name "f32.l") (.str "f_" name) - () + (NO-DIS) (.str "f" name ".l $rd6,$rn6") (emit (.sym "f_" name "f32") rd6 rn6) ) @@ -2919,7 +2921,7 @@ (dnmi (.sym "f_" name "f32.l") (.str "f_" name) - () + (NO-DIS) (.str "f" name ".l $frd6,$frn6") (emit (.sym "f_" name "f32") frd6 frn6) )