From 23a89c12247f2164929da63726a728a09bc47686 Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Sun, 12 Oct 2025 13:27:58 +0000 Subject: [PATCH] Solidified Code updated --- .../src/solidify/solidified_i2c_driver.h | 570 ++++++++++-------- 1 file changed, 304 insertions(+), 266 deletions(-) diff --git a/lib/libesp32/berry_tasmota/src/solidify/solidified_i2c_driver.h b/lib/libesp32/berry_tasmota/src/solidify/solidified_i2c_driver.h index cc8fcf12b..9562f4fd4 100644 --- a/lib/libesp32/berry_tasmota/src/solidify/solidified_i2c_driver.h +++ b/lib/libesp32/berry_tasmota/src/solidify/solidified_i2c_driver.h @@ -3,33 +3,103 @@ * Generated code, don't edit * \********************************************************************/ #include "be_constobj.h" -// compact class 'I2C_Driver' ktab size: 20, total: 71 (saved 408 bytes) +// compact class 'I2C_Driver' ktab size: 20, total: 74 (saved 432 bytes) static const bvalue be_ktab_class_I2C_Driver[20] = { /* K0 */ be_nested_str(wire), /* K1 */ be_nested_str(read_bytes), /* K2 */ be_nested_str(addr), - /* K3 */ be_const_int(0), - /* K4 */ be_const_int(1), - /* K5 */ be_const_int(2), + /* K3 */ be_const_int(2), + /* K4 */ be_const_int(0), + /* K5 */ be_const_int(1), /* K6 */ be_const_int(3), - /* K7 */ be_nested_str(tasmota), - /* K8 */ be_nested_str(i2c_enabled), - /* K9 */ be_nested_str(wire_scan), - /* K10 */ be_nested_str(function), - /* K11 */ be_nested_str(name), - /* K12 */ be_nested_str(I2C_X3A), - /* K13 */ be_nested_str(detected_X20on_X20bus), - /* K14 */ be_nested_str(bus), - /* K15 */ be_nested_str(write8), - /* K16 */ be_nested_str(read8), - /* K17 */ be_nested_str(write16), - /* K18 */ be_nested_str(read), - /* K19 */ be_nested_str(write), + /* K7 */ be_nested_str(read), + /* K8 */ be_nested_str(read8), + /* K9 */ be_nested_str(write8), + /* K10 */ be_nested_str(write16), + /* K11 */ be_nested_str(write), + /* K12 */ be_nested_str(tasmota), + /* K13 */ be_nested_str(i2c_enabled), + /* K14 */ be_nested_str(wire_scan), + /* K15 */ be_nested_str(function), + /* K16 */ be_nested_str(name), + /* K17 */ be_nested_str(I2C_X3A), + /* K18 */ be_nested_str(detected_X20on_X20bus), + /* K19 */ be_nested_str(bus), }; extern const bclass be_class_I2C_Driver; +/******************************************************************** +** Solidified function: read16 +********************************************************************/ +be_local_closure(class_I2C_Driver_read16, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_I2C_Driver, /* shared constants */ + &be_const_str_read16, + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x88100102, // 0002 GETMBR R4 R0 K2 + 0x5C140200, // 0003 MOVE R5 R1 + 0x58180003, // 0004 LDCONST R6 K3 + 0x7C080800, // 0005 CALL R2 4 + 0x940C0504, // 0006 GETIDX R3 R2 K4 + 0x54120007, // 0007 LDINT R4 8 + 0x380C0604, // 0008 SHL R3 R3 R4 + 0x94100505, // 0009 GETIDX R4 R2 K5 + 0x000C0604, // 000A ADD R3 R3 R4 + 0x80040600, // 000B RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: read13 +********************************************************************/ +be_local_closure(class_I2C_Driver_read13, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_I2C_Driver, /* shared constants */ + &be_const_str_read13, + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x88100102, // 0002 GETMBR R4 R0 K2 + 0x5C140200, // 0003 MOVE R5 R1 + 0x58180003, // 0004 LDCONST R6 K3 + 0x7C080800, // 0005 CALL R2 4 + 0x940C0504, // 0006 GETIDX R3 R2 K4 + 0x54120004, // 0007 LDINT R4 5 + 0x380C0604, // 0008 SHL R3 R3 R4 + 0x94100505, // 0009 GETIDX R4 R2 K5 + 0x000C0604, // 000A ADD R3 R3 R4 + 0x80040600, // 000B RET 1 R3 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: read32 ********************************************************************/ @@ -53,14 +123,14 @@ be_local_closure(class_I2C_Driver_read32, /* name */ 0x5C140200, // 0003 MOVE R5 R1 0x541A0003, // 0004 LDINT R6 4 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 + 0x940C0504, // 0006 GETIDX R3 R2 K4 0x54120017, // 0007 LDINT R4 24 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 + 0x94100505, // 0009 GETIDX R4 R2 K5 0x5416000F, // 000A LDINT R5 16 0x38100805, // 000B SHL R4 R4 R5 0x000C0604, // 000C ADD R3 R3 R4 - 0x94100505, // 000D GETIDX R4 R2 K5 + 0x94100503, // 000D GETIDX R4 R2 K3 0x54160007, // 000E LDINT R5 8 0x38100805, // 000F SHL R4 R4 R5 0x000C0604, // 0010 ADD R3 R3 R4 @@ -74,76 +144,9 @@ be_local_closure(class_I2C_Driver_read32, /* name */ /******************************************************************** -** Solidified function: init +** Solidified function: read8 ********************************************************************/ -be_local_closure(class_I2C_Driver_init, /* name */ - be_nested_proto( - 9, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_init, - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x20100604, // 0001 NE R4 R3 R4 - 0x78120005, // 0002 JMPF R4 #0009 - 0xB8120E00, // 0003 GETNGBL R4 K7 - 0x8C100908, // 0004 GETMET R4 R4 K8 - 0x5C180600, // 0005 MOVE R6 R3 - 0x7C100400, // 0006 CALL R4 2 - 0x74120000, // 0007 JMPT R4 #0009 - 0x80000800, // 0008 RET 0 - 0x90020402, // 0009 SETMBR R0 K2 R2 - 0xB8120E00, // 000A GETNGBL R4 K7 - 0x8C100909, // 000B GETMET R4 R4 K9 - 0x88180102, // 000C GETMBR R6 R0 K2 - 0x7C100400, // 000D CALL R4 2 - 0x90020004, // 000E SETMBR R0 K0 R4 - 0x88100100, // 000F GETMBR R4 R0 K0 - 0x78120019, // 0010 JMPF R4 #002B - 0x60100004, // 0011 GETGBL R4 G4 - 0x5C140200, // 0012 MOVE R5 R1 - 0x7C100200, // 0013 CALL R4 1 - 0x1C10090A, // 0014 EQ R4 R4 K10 - 0x78120004, // 0015 JMPF R4 #001B - 0x5C100200, // 0016 MOVE R4 R1 - 0x5C140000, // 0017 MOVE R5 R0 - 0x7C100200, // 0018 CALL R4 1 - 0x90021604, // 0019 SETMBR R0 K11 R4 - 0x70020000, // 001A JMP #001C - 0x90021601, // 001B SETMBR R0 K11 R1 - 0x8810010B, // 001C GETMBR R4 R0 K11 - 0x4C140000, // 001D LDNIL R5 - 0x1C100805, // 001E EQ R4 R4 R5 - 0x78120001, // 001F JMPF R4 #0022 - 0x4C100000, // 0020 LDNIL R4 - 0x90020004, // 0021 SETMBR R0 K0 R4 - 0x88100100, // 0022 GETMBR R4 R0 K0 - 0x78120006, // 0023 JMPF R4 #002B - 0x60100001, // 0024 GETGBL R4 G1 - 0x5814000C, // 0025 LDCONST R5 K12 - 0x8818010B, // 0026 GETMBR R6 R0 K11 - 0x581C000D, // 0027 LDCONST R7 K13 - 0x88200100, // 0028 GETMBR R8 R0 K0 - 0x8820110E, // 0029 GETMBR R8 R8 K14 - 0x7C100800, // 002A CALL R4 4 - 0x80000000, // 002B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: read24 -********************************************************************/ -be_local_closure(class_I2C_Driver_read24, /* name */ +be_local_closure(class_I2C_Driver_read8, /* name */ be_nested_proto( 7, /* nstack */ 2, /* argc */ @@ -154,25 +157,88 @@ be_local_closure(class_I2C_Driver_read24, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read24, + &be_const_str_read8, &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080507, // 0001 GETMET R2 R2 K7 + 0x88100102, // 0002 GETMBR R4 R0 K2 + 0x5C140200, // 0003 MOVE R5 R1 + 0x58180005, // 0004 LDCONST R6 K5 + 0x7C080800, // 0005 CALL R2 4 + 0x80040400, // 0006 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: read12 +********************************************************************/ +be_local_closure(class_I2C_Driver_read12, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_I2C_Driver, /* shared constants */ + &be_const_str_read12, + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ 0x88080100, // 0000 GETMBR R2 R0 K0 0x8C080501, // 0001 GETMET R2 R2 K1 0x88100102, // 0002 GETMBR R4 R0 K2 0x5C140200, // 0003 MOVE R5 R1 - 0x58180006, // 0004 LDCONST R6 K6 + 0x58180003, // 0004 LDCONST R6 K3 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 - 0x5412000F, // 0007 LDINT R4 16 + 0x940C0504, // 0006 GETIDX R3 R2 K4 + 0x54120003, // 0007 LDINT R4 4 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 - 0x54160007, // 000A LDINT R5 8 - 0x38100805, // 000B SHL R4 R4 R5 - 0x000C0604, // 000C ADD R3 R3 R4 - 0x94100505, // 000D GETIDX R4 R2 K5 - 0x000C0604, // 000E ADD R3 R3 R4 - 0x80040600, // 000F RET 1 R3 + 0x94100505, // 0009 GETIDX R4 R2 K5 + 0x000C0604, // 000A ADD R3 R3 R4 + 0x80040600, // 000B RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: read_bit +********************************************************************/ +be_local_closure(class_I2C_Driver_read_bit, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_I2C_Driver, /* shared constants */ + &be_const_str_read_bit, + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x140C0504, // 0000 LT R3 R2 K4 + 0x740E0002, // 0001 JMPT R3 #0005 + 0x540E0006, // 0002 LDINT R3 7 + 0x240C0403, // 0003 GT R3 R2 R3 + 0x780E0000, // 0004 JMPF R3 #0006 + 0x80000600, // 0005 RET 0 + 0x600C0017, // 0006 GETGBL R3 G23 + 0x8C100108, // 0007 GETMET R4 R0 K8 + 0x5C180200, // 0008 MOVE R6 R1 + 0x7C100400, // 0009 CALL R4 2 + 0x38160A02, // 000A SHL R5 K5 R2 + 0x2C100805, // 000B AND R4 R4 R5 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040600, // 000D RET 1 R3 }) ) ); @@ -196,25 +262,25 @@ be_local_closure(class_I2C_Driver_write_bit, /* name */ &be_const_str_write_bit, &be_const_str_solidified, ( &(const binstruction[26]) { /* code */ - 0x14100503, // 0000 LT R4 R2 K3 + 0x14100504, // 0000 LT R4 R2 K4 0x74120002, // 0001 JMPT R4 #0005 0x54120006, // 0002 LDINT R4 7 0x24100404, // 0003 GT R4 R2 R4 0x78120000, // 0004 JMPF R4 #0006 0x80000800, // 0005 RET 0 - 0x38120802, // 0006 SHL R4 K4 R2 + 0x38120A02, // 0006 SHL R4 K5 R2 0x780E0007, // 0007 JMPF R3 #0010 - 0x8C14010F, // 0008 GETMET R5 R0 K15 + 0x8C140109, // 0008 GETMET R5 R0 K9 0x5C1C0200, // 0009 MOVE R7 R1 - 0x8C200110, // 000A GETMET R8 R0 K16 + 0x8C200108, // 000A GETMET R8 R0 K8 0x5C280200, // 000B MOVE R10 R1 0x7C200400, // 000C CALL R8 2 0x30201004, // 000D OR R8 R8 R4 0x7C140600, // 000E CALL R5 3 0x70020008, // 000F JMP #0019 - 0x8C14010F, // 0010 GETMET R5 R0 K15 + 0x8C140109, // 0010 GETMET R5 R0 K9 0x5C1C0200, // 0011 MOVE R7 R1 - 0x8C200110, // 0012 GETMET R8 R0 K16 + 0x8C200108, // 0012 GETMET R8 R0 K8 0x5C280200, // 0013 MOVE R10 R1 0x7C200400, // 0014 CALL R8 2 0x542600FE, // 0015 LDINT R9 255 @@ -228,6 +294,41 @@ be_local_closure(class_I2C_Driver_write_bit, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: read16LE +********************************************************************/ +be_local_closure(class_I2C_Driver_read16LE, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_I2C_Driver, /* shared constants */ + &be_const_str_read16LE, + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x88100102, // 0002 GETMBR R4 R0 K2 + 0x5C140200, // 0003 MOVE R5 R1 + 0x58180003, // 0004 LDCONST R6 K3 + 0x7C080800, // 0005 CALL R2 4 + 0x940C0505, // 0006 GETIDX R3 R2 K5 + 0x54120007, // 0007 LDINT R4 8 + 0x380C0604, // 0008 SHL R3 R3 R4 + 0x94100504, // 0009 GETIDX R4 R2 K4 + 0x000C0604, // 000A ADD R3 R3 R4 + 0x80040600, // 000B RET 1 R3 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: write16LE ********************************************************************/ @@ -255,7 +356,7 @@ be_local_closure(class_I2C_Driver_write16LE, /* name */ 0x3C100805, // 0007 SHR R4 R4 R5 0x300C0604, // 0008 OR R3 R3 R4 0x5C080600, // 0009 MOVE R2 R3 - 0x8C0C0111, // 000A GETMET R3 R0 K17 + 0x8C0C010A, // 000A GETMET R3 R0 K10 0x5C140200, // 000B MOVE R5 R1 0x5C180400, // 000C MOVE R6 R2 0x7C0C0600, // 000D CALL R3 3 @@ -267,12 +368,12 @@ be_local_closure(class_I2C_Driver_write16LE, /* name */ /******************************************************************** -** Solidified function: read8 +** Solidified function: write8 ********************************************************************/ -be_local_closure(class_I2C_Driver_read8, /* name */ +be_local_closure(class_I2C_Driver_write8, /* name */ be_nested_proto( - 7, /* nstack */ - 2, /* argc */ + 9, /* nstack */ + 3, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -280,16 +381,17 @@ be_local_closure(class_I2C_Driver_read8, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read8, + &be_const_str_write8, &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080512, // 0001 GETMET R2 R2 K18 - 0x88100102, // 0002 GETMBR R4 R0 K2 - 0x5C140200, // 0003 MOVE R5 R1 - 0x58180004, // 0004 LDCONST R6 K4 - 0x7C080800, // 0005 CALL R2 4 - 0x80040400, // 0006 RET 1 R2 + ( &(const binstruction[ 8]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x8C0C070B, // 0001 GETMET R3 R3 K11 + 0x88140102, // 0002 GETMBR R5 R0 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x5C1C0400, // 0004 MOVE R7 R2 + 0x58200005, // 0005 LDCONST R8 K5 + 0x7C0C0A00, // 0006 CALL R3 5 + 0x80040600, // 0007 RET 1 R3 }) ) ); @@ -317,47 +419,12 @@ be_local_closure(class_I2C_Driver_read14, /* name */ 0x8C080501, // 0001 GETMET R2 R2 K1 0x88100102, // 0002 GETMBR R4 R0 K2 0x5C140200, // 0003 MOVE R5 R1 - 0x58180005, // 0004 LDCONST R6 K5 - 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 - 0x54120005, // 0007 LDINT R4 6 - 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 - 0x000C0604, // 000A ADD R3 R3 R4 - 0x80040600, // 000B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: read16LE -********************************************************************/ -be_local_closure(class_I2C_Driver_read16LE, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read16LE, - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x88100102, // 0002 GETMBR R4 R0 K2 - 0x5C140200, // 0003 MOVE R5 R1 - 0x58180005, // 0004 LDCONST R6 K5 + 0x58180003, // 0004 LDCONST R6 K3 0x7C080800, // 0005 CALL R2 4 0x940C0504, // 0006 GETIDX R3 R2 K4 - 0x54120007, // 0007 LDINT R4 8 + 0x54120005, // 0007 LDINT R4 6 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100503, // 0009 GETIDX R4 R2 K3 + 0x94100505, // 0009 GETIDX R4 R2 K5 0x000C0604, // 000A ADD R3 R3 R4 0x80040600, // 000B RET 1 R3 }) @@ -367,9 +434,9 @@ be_local_closure(class_I2C_Driver_read16LE, /* name */ /******************************************************************** -** Solidified function: read12 +** Solidified function: read24 ********************************************************************/ -be_local_closure(class_I2C_Driver_read12, /* name */ +be_local_closure(class_I2C_Driver_read24, /* name */ be_nested_proto( 7, /* nstack */ 2, /* argc */ @@ -380,21 +447,25 @@ be_local_closure(class_I2C_Driver_read12, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read12, + &be_const_str_read24, &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[16]) { /* code */ 0x88080100, // 0000 GETMBR R2 R0 K0 0x8C080501, // 0001 GETMET R2 R2 K1 0x88100102, // 0002 GETMBR R4 R0 K2 0x5C140200, // 0003 MOVE R5 R1 - 0x58180005, // 0004 LDCONST R6 K5 + 0x58180006, // 0004 LDCONST R6 K6 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 - 0x54120003, // 0007 LDINT R4 4 + 0x940C0504, // 0006 GETIDX R3 R2 K4 + 0x5412000F, // 0007 LDINT R4 16 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 - 0x000C0604, // 000A ADD R3 R3 R4 - 0x80040600, // 000B RET 1 R3 + 0x94100505, // 0009 GETIDX R4 R2 K5 + 0x54160007, // 000A LDINT R5 8 + 0x38100805, // 000B SHL R4 R4 R5 + 0x000C0604, // 000C ADD R3 R3 R4 + 0x94100503, // 000D GETIDX R4 R2 K3 + 0x000C0604, // 000E ADD R3 R3 R4 + 0x80040600, // 000F RET 1 R3 }) ) ); @@ -402,12 +473,12 @@ be_local_closure(class_I2C_Driver_read12, /* name */ /******************************************************************** -** Solidified function: write8 +** Solidified function: init ********************************************************************/ -be_local_closure(class_I2C_Driver_write8, /* name */ +be_local_closure(class_I2C_Driver_init, /* name */ be_nested_proto( 9, /* nstack */ - 3, /* argc */ + 4, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -415,87 +486,53 @@ be_local_closure(class_I2C_Driver_write8, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_write8, + &be_const_str_init, &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0713, // 0001 GETMET R3 R3 K19 - 0x88140102, // 0002 GETMBR R5 R0 K2 - 0x5C180200, // 0003 MOVE R6 R1 - 0x5C1C0400, // 0004 MOVE R7 R2 - 0x58200004, // 0005 LDCONST R8 K4 - 0x7C0C0A00, // 0006 CALL R3 5 - 0x80040600, // 0007 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: read13 -********************************************************************/ -be_local_closure(class_I2C_Driver_read13, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read13, - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x88100102, // 0002 GETMBR R4 R0 K2 - 0x5C140200, // 0003 MOVE R5 R1 - 0x58180005, // 0004 LDCONST R6 K5 - 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 - 0x54120004, // 0007 LDINT R4 5 - 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 - 0x000C0604, // 000A ADD R3 R3 R4 - 0x80040600, // 000B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: read16 -********************************************************************/ -be_local_closure(class_I2C_Driver_read16, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_I2C_Driver, /* shared constants */ - &be_const_str_read16, - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x88100102, // 0002 GETMBR R4 R0 K2 - 0x5C140200, // 0003 MOVE R5 R1 - 0x58180005, // 0004 LDCONST R6 K5 - 0x7C080800, // 0005 CALL R2 4 - 0x940C0503, // 0006 GETIDX R3 R2 K3 - 0x54120007, // 0007 LDINT R4 8 - 0x380C0604, // 0008 SHL R3 R3 R4 - 0x94100504, // 0009 GETIDX R4 R2 K4 - 0x000C0604, // 000A ADD R3 R3 R4 - 0x80040600, // 000B RET 1 R3 + ( &(const binstruction[44]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x20100604, // 0001 NE R4 R3 R4 + 0x78120005, // 0002 JMPF R4 #0009 + 0xB8121800, // 0003 GETNGBL R4 K12 + 0x8C10090D, // 0004 GETMET R4 R4 K13 + 0x5C180600, // 0005 MOVE R6 R3 + 0x7C100400, // 0006 CALL R4 2 + 0x74120000, // 0007 JMPT R4 #0009 + 0x80000800, // 0008 RET 0 + 0x90020402, // 0009 SETMBR R0 K2 R2 + 0xB8121800, // 000A GETNGBL R4 K12 + 0x8C10090E, // 000B GETMET R4 R4 K14 + 0x88180102, // 000C GETMBR R6 R0 K2 + 0x7C100400, // 000D CALL R4 2 + 0x90020004, // 000E SETMBR R0 K0 R4 + 0x88100100, // 000F GETMBR R4 R0 K0 + 0x78120019, // 0010 JMPF R4 #002B + 0x60100004, // 0011 GETGBL R4 G4 + 0x5C140200, // 0012 MOVE R5 R1 + 0x7C100200, // 0013 CALL R4 1 + 0x1C10090F, // 0014 EQ R4 R4 K15 + 0x78120004, // 0015 JMPF R4 #001B + 0x5C100200, // 0016 MOVE R4 R1 + 0x5C140000, // 0017 MOVE R5 R0 + 0x7C100200, // 0018 CALL R4 1 + 0x90022004, // 0019 SETMBR R0 K16 R4 + 0x70020000, // 001A JMP #001C + 0x90022001, // 001B SETMBR R0 K16 R1 + 0x88100110, // 001C GETMBR R4 R0 K16 + 0x4C140000, // 001D LDNIL R5 + 0x1C100805, // 001E EQ R4 R4 R5 + 0x78120001, // 001F JMPF R4 #0022 + 0x4C100000, // 0020 LDNIL R4 + 0x90020004, // 0021 SETMBR R0 K0 R4 + 0x88100100, // 0022 GETMBR R4 R0 K0 + 0x78120006, // 0023 JMPF R4 #002B + 0x60100001, // 0024 GETGBL R4 G1 + 0x58140011, // 0025 LDCONST R5 K17 + 0x88180110, // 0026 GETMBR R6 R0 K16 + 0x581C0012, // 0027 LDCONST R7 K18 + 0x88200100, // 0028 GETMBR R8 R0 K0 + 0x88201113, // 0029 GETMBR R8 R8 K19 + 0x7C100800, // 002A CALL R4 4 + 0x80000000, // 002B RET 0 }) ) ); @@ -520,11 +557,11 @@ be_local_closure(class_I2C_Driver_write16, /* name */ &be_const_str_solidified, ( &(const binstruction[ 8]) { /* code */ 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0713, // 0001 GETMET R3 R3 K19 + 0x8C0C070B, // 0001 GETMET R3 R3 K11 0x88140102, // 0002 GETMBR R5 R0 K2 0x5C180200, // 0003 MOVE R6 R1 0x5C1C0400, // 0004 MOVE R7 R2 - 0x58200005, // 0005 LDCONST R8 K5 + 0x58200003, // 0005 LDCONST R8 K3 0x7C0C0A00, // 0006 CALL R3 5 0x80040600, // 0007 RET 1 R3 }) @@ -539,24 +576,25 @@ be_local_closure(class_I2C_Driver_write16, /* name */ be_local_class(I2C_Driver, 3, NULL, - be_nested_map(16, + be_nested_map(17, ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key(write16, 11), be_const_closure(class_I2C_Driver_write16_closure) }, + { be_const_key(read13, 8), be_const_closure(class_I2C_Driver_read13_closure) }, { be_const_key(read32, -1), be_const_closure(class_I2C_Driver_read32_closure) }, - { be_const_key(write16, 15), be_const_closure(class_I2C_Driver_write16_closure) }, - { be_const_key(addr, -1), be_const_var(1) }, - { be_const_key(init, 1), be_const_closure(class_I2C_Driver_init_closure) }, + { be_const_key(read8, 4), be_const_closure(class_I2C_Driver_read8_closure) }, { be_const_key(write_bit, -1), be_const_closure(class_I2C_Driver_write_bit_closure) }, - { be_const_key(read14, -1), be_const_closure(class_I2C_Driver_read14_closure) }, - { be_const_key(name, -1), be_const_var(2) }, - { be_const_key(read8, -1), be_const_closure(class_I2C_Driver_read8_closure) }, - { be_const_key(write16LE, 11), be_const_closure(class_I2C_Driver_write16LE_closure) }, - { be_const_key(read16LE, -1), be_const_closure(class_I2C_Driver_read16LE_closure) }, + { be_const_key(read16, 16), be_const_closure(class_I2C_Driver_read16_closure) }, { be_const_key(read12, -1), be_const_closure(class_I2C_Driver_read12_closure) }, - { be_const_key(wire, 5), be_const_var(0) }, + { be_const_key(read_bit, -1), be_const_closure(class_I2C_Driver_read_bit_closure) }, { be_const_key(write8, -1), be_const_closure(class_I2C_Driver_write8_closure) }, - { be_const_key(read13, -1), be_const_closure(class_I2C_Driver_read13_closure) }, - { be_const_key(read16, -1), be_const_closure(class_I2C_Driver_read16_closure) }, + { be_const_key(read16LE, -1), be_const_closure(class_I2C_Driver_read16LE_closure) }, + { be_const_key(write16LE, -1), be_const_closure(class_I2C_Driver_write16LE_closure) }, + { be_const_key(wire, -1), be_const_var(0) }, + { be_const_key(addr, 0), be_const_var(1) }, + { be_const_key(read14, -1), be_const_closure(class_I2C_Driver_read14_closure) }, { be_const_key(read24, -1), be_const_closure(class_I2C_Driver_read24_closure) }, + { be_const_key(init, -1), be_const_closure(class_I2C_Driver_init_closure) }, + { be_const_key(name, -1), be_const_var(2) }, })), (bstring*) &be_const_str_I2C_Driver );