Commit Graph

71 Commits

Author SHA1 Message Date
nickysn
a714a2fb76 + added a jmp helper that handles all possible combinations of jump on below, equal and above (unsigned comparison)
git-svn-id: branches/z80@44975 -
2020-04-21 21:38:15 +00:00
nickysn
c67fa28d7c * use a LD sequence for 2-byte moves as well in tcgz80.g_concatcopy
git-svn-id: branches/z80@44961 -
2020-04-21 16:26:04 +00:00
nickysn
f8b0c24024 + support pushing word-sized parameters in a_load_reg_cgpara
git-svn-id: branches/z80@44911 -
2020-04-21 03:48:36 +00:00
nickysn
2f68090dd6 * synchronized with trunk
git-svn-id: branches/z80@44898 -
2020-04-20 22:42:08 +00:00
nickysn
557a481743 + use normalize_ref in tcgz80.a_load_ref_reg
git-svn-id: branches/z80@44897 -
2020-04-20 21:44:36 +00:00
nickysn
bee3e9c354 + make use of normalize_ref in tcgz80.a_load_reg_ref
git-svn-id: branches/z80@44895 -
2020-04-20 21:34:10 +00:00
nickysn
a7b69cd18b - removed make_simple_ref, because normalize_ref should be used instead
git-svn-id: branches/z80@44894 -
2020-04-20 20:52:07 +00:00
nickysn
0d6e59e9ef + actually return the proper (HL) reference result in tcgz80.normalize_ref
git-svn-id: branches/z80@44893 -
2020-04-20 20:49:45 +00:00
nickysn
5c138c341f + added an output parameter to tcgz80.normalize_ref, that returns a list of the registers that were
actually used, so they can be freed after the reference is used.

git-svn-id: branches/z80@44892 -
2020-04-20 20:46:30 +00:00
nickysn
fc991af9d1 + added tregisterlist - dynarray of tregister, and methods get/uncpuregisters for allocating/freeing
a dynamic list of registers

git-svn-id: branches/z80@44891 -
2020-04-20 20:42:16 +00:00
nickysn
882522259e + initial implementation of tcgz80.normalize_ref
git-svn-id: branches/z80@44890 -
2020-04-20 20:27:08 +00:00
nickysn
bb0c9424f8 * another warning in cgcpu fixed
git-svn-id: branches/z80@44830 -
2020-04-19 04:46:09 +00:00
nickysn
8a5757e72b * fixed warnings in Z80 cgcpu
git-svn-id: branches/z80@44829 -
2020-04-19 04:44:26 +00:00
nickysn
0245075c05 + use is_ref_in_opertypes in cgcpu
git-svn-id: branches/z80@44765 -
2020-04-18 00:30:09 +00:00
nickysn
5547be6b3f * make use of the new is_ref_XXX functions
git-svn-id: branches/z80@44760 -
2020-04-18 00:11:34 +00:00
nickysn
90e2b9ecc6 + implemented tcgz80.g_flags2reg
git-svn-id: branches/z80@44696 -
2020-04-12 02:21:03 +00:00
nickysn
00f7fad1a6 + support pushing word-sized parameters in tcgz80.a_load_ref_cgpara
git-svn-id: branches/z80@44695 -
2020-04-11 21:29:28 +00:00
nickysn
87258f4004 - removed unused local vars of tcgz80.g_concatcopy
git-svn-id: branches/z80@44693 -
2020-04-11 21:18:36 +00:00
nickysn
26e93d1e02 - removed unused method tcgz80.g_concatcopy_move
git-svn-id: branches/z80@44692 -
2020-04-11 21:17:20 +00:00
nickysn
c6a066495a + implemented tcgz80.g_concatcopy in the general case, using the ldir instruction
git-svn-id: branches/z80@44691 -
2020-04-11 21:15:55 +00:00
nickysn
1f8c1c1346 + implemented more ref cases in tcgz80.a_loadaddr_ref_reg
git-svn-id: branches/z80@44690 -
2020-04-11 16:44:51 +00:00
nickysn
472bc6c936 + support symbol+base/index in tcgz80.a_loadaddr_ref_reg
git-svn-id: branches/z80@44683 -
2020-04-11 01:19:13 +00:00
nickysn
4e5eb7fa4e + implemented tcgz80.a_loadaddr_ref_reg for symbol references
git-svn-id: branches/z80@44682 -
2020-04-11 01:00:46 +00:00
nickysn
e8cecafffa + implemented g_concatcopy for 1-byte copies from (IX+d)/(IY+d)/(HL) to (IX+d)/(IY+d)/(HL)
git-svn-id: branches/z80@44673 -
2020-04-09 23:37:27 +00:00
nickysn
5aca5937e6 - cleaned up unused local variables and procedures from tcgz80.a_op_const_reg_internal and tcgz80.a_op_reg_reg_internal
git-svn-id: branches/z80@44670 -
2020-04-09 22:01:07 +00:00
nickysn
0e257a2c9f - removed 2 unnecessary instructions for 8-bit OP_ROL/OP_ROR in tcgz80.a_op_reg_reg_internal
git-svn-id: branches/z80@44669 -
2020-04-09 21:56:45 +00:00
nickysn
eb3c4546ab + implemented OP_SHL/OP_SHR/OP_SAR/OP_ROL/OP_ROR in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44668 -
2020-04-09 21:52:45 +00:00
nickysn
51e6a3f45b + implemented OP_SHL/OP_SHR/OP_SAR/OP_ROL/OP_ROR in tcgz80.a_op_reg_reg_internal
git-svn-id: branches/z80@44665 -
2020-04-09 21:14:23 +00:00
nickysn
eb26cd55d4 + implemented OP_XOR in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44661 -
2020-04-09 14:29:56 +00:00
nickysn
7a86d193cc + implemented OP_OR in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44660 -
2020-04-09 14:24:36 +00:00
nickysn
f00f39abef + implemented OP_AND in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44659 -
2020-04-09 14:21:57 +00:00
nickysn
5360770ed2 + implemented OP_SUB in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44658 -
2020-04-09 13:41:28 +00:00
nickysn
75a2f0352e * fixed 64-bit OP_ADD in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44657 -
2020-04-09 13:28:22 +00:00
nickysn
a419018ff0 + handle fromsize>tosize in tcgz80.a_load_reg_reg
git-svn-id: branches/z80@44656 -
2020-04-09 13:23:10 +00:00
nickysn
ce56125e40 + implemented OP_ADD in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44655 -
2020-04-09 13:16:48 +00:00
nickysn
b896d2fea2 + implemented sign extension in tcgz80.a_load_reg_ref
git-svn-id: branches/z80@44652 -
2020-04-08 23:59:58 +00:00
nickysn
6fea99ac9d + implemented sign extension in tcgz80.a_load_ref_reg
git-svn-id: branches/z80@44651 -
2020-04-08 23:57:26 +00:00
nickysn
df59c070a1 + implemented sign extension in tcgz80.a_load_reg_reg
git-svn-id: branches/z80@44650 -
2020-04-08 23:50:14 +00:00
nickysn
b84bcdaeee + implemented unsigned int extension in tcgz80.a_load_ref_reg
git-svn-id: branches/z80@44648 -
2020-04-08 22:30:35 +00:00
nickysn
d0166242b3 + support unsigned sign extension in tcgz80.a_load_reg_reg
git-svn-id: branches/z80@44646 -
2020-04-08 20:23:16 +00:00
nickysn
7d9658e2ba + support unsigned expansion in tcgz80.a_load_reg_ref
git-svn-id: branches/z80@44645 -
2020-04-08 20:12:17 +00:00
nickysn
5e94fbff54 + added method make_simple_ref (empty for now, but will be implemented later)
git-svn-id: branches/z80@44640 -
2020-04-07 23:12:33 +00:00
nickysn
7fd807905f + initial implementation of pushing ref params in tcgz80.a_load_ref_cgpara
git-svn-id: branches/z80@44639 -
2020-04-07 22:55:33 +00:00
nickysn
c53cd30e7f + implemented tcgz80.a_load_reg_cgpara for pushing 1-byte parameters on the stack
git-svn-id: branches/z80@44638 -
2020-04-07 22:34:05 +00:00
nickysn
4fc83a44d3 + implemented byte-sized inc/dec by 1 in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44631 -
2020-04-07 01:03:02 +00:00
nickysn
0d04d198fe + emit warnings for unimplemented ops in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44630 -
2020-04-07 00:55:54 +00:00
nickysn
f15b54085c * fixed tcgz80.a_load_const_cgpara for pushing params on the stack
git-svn-id: branches/z80@44627 -
2020-04-06 23:15:00 +00:00
nickysn
3ed692a157 + implemented tcgz80.a_jmp_flags
git-svn-id: branches/z80@44574 -
2020-04-04 17:07:54 +00:00
nickysn
99e304165e * fix for 64-bit OP_AND/OP_OR/OP_XOR in tcgz80.a_op_reg_reg_internal
git-svn-id: branches/z80@44570 -
2020-04-04 15:33:01 +00:00
nickysn
c0b3eb70ac + fix for 64-bit OP_NOT in tcgz80.a_op_reg_reg_internal
git-svn-id: branches/z80@44569 -
2020-04-04 15:30:43 +00:00