writing the compiler code for class variable handling

This commit is contained in:
2022-01-09 16:47:38 +00:00
parent 0fd038ddb6
commit bdf527f298
5 changed files with 178 additions and 46 deletions

View File

@ -672,12 +672,16 @@ SHORT INSTRUCTION CODE LONG INSTRUCTION C
116-119 0111 01XX YYYYYYYY SEND_MESSAGE_TO_SUPER 244 1111 0100 XXXXXXXX YYYYYYYY SEND_MESSAGE_TO_SUPER_X (bit 2 on)
# XXX args, YYYYYYYY message
120 0111 1000 YYYYYYYY PUSH_CLSVAR_X
121 0111 1001 YYYYYYYY STORE_INTO_CLSVAR_X
122 0111 1010 YYYYYYYY POP_INTO_CLSVAR_X
120 0111 1000 YYYYYYYY PUSH_CLSVAR_I_X
121 0111 1001 YYYYYYYY STORE_INTO_CLSVAR_I_X
122 0111 1010 YYYYYYYY POP_INTO_CLSVAR_I_X
123 0111 1011 UNUSED
124-127 0111 11XX UNUSED
123 0111 1011 YYYYYYYY PUSH_CLSVAR_M_X
124 0111 1100 YYYYYYYY STORE_INTO_CLSVAR_M_X
125 0111 1101 YYYYYYYY POP_INTO_CLSVAR_M_X
126 0111 1110 UNUSED
127 0111 1111 UNUSED
##
## "SHORT_CODE_0 | 0x80" becomes "LONG_CODE_X".
@ -831,11 +835,15 @@ enum hcl_bcode_t
HCL_CODE_SEND_MESSAGE_TO_SUPER_2 = 0x76, /* 118 */
HCL_CODE_SEND_MESSAGE_TO_SUPER_3 = 0x77, /* 119 */
HCL_CODE_PUSH_CLSVAR_X = 0x78, /* 120 */
HCL_CODE_STORE_INTO_CLSVAR_X = 0x79, /* 121 */
HCL_CODE_POP_INTO_CLSVAR_X = 0x7A, /* 122 */
/* UNUSED 0x7B */
/* UNUSED 0x7C - 0x7F */
HCL_CODE_PUSH_CLSVAR_I_X = 0x78, /* 120 */
HCL_CODE_STORE_INTO_CLSVAR_I_X = 0x79, /* 121 */
HCL_CODE_POP_INTO_CLSVAR_I_X = 0x7A, /* 122 */
HCL_CODE_PUSH_CLSVAR_M_X = 0x7B, /* 123 */
HCL_CODE_STORE_INTO_CLSVAR_M_X = 0x7C, /* 124 */
HCL_CODE_POP_INTO_CLSVAR_M_X = 0x7D, /* 125 */
/* UNUSED 0x7E - 0x7F */
HCL_CODE_STORE_INTO_INSTVAR_X = 0x80, /* 128 */