mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 11:46:31 +00:00
HASPmota optimize sort (#23009)
This commit is contained in:
parent
cfc11b5e83
commit
f1be1b8ba9
@ -2891,7 +2891,8 @@ class HASPmota
|
|||||||
#################################################################################
|
#################################################################################
|
||||||
static def sort(l)
|
static def sort(l)
|
||||||
# insertion sort
|
# insertion sort
|
||||||
for i:1..size(l)-1
|
var i = 0
|
||||||
|
while i < size(l)
|
||||||
var k = l[i]
|
var k = l[i]
|
||||||
var j = i
|
var j = i
|
||||||
while (j > 0) && (l[j-1] > k)
|
while (j > 0) && (l[j-1] > k)
|
||||||
@ -2899,6 +2900,7 @@ class HASPmota
|
|||||||
j -= 1
|
j -= 1
|
||||||
end
|
end
|
||||||
l[j] = k
|
l[j] = k
|
||||||
|
i += 1
|
||||||
end
|
end
|
||||||
return l
|
return l
|
||||||
end
|
end
|
||||||
|
@ -11885,7 +11885,7 @@ be_local_class(lvh_page,
|
|||||||
be_str_weak(lvh_page)
|
be_str_weak(lvh_page)
|
||||||
);
|
);
|
||||||
extern const bclass be_class_HASPmota;
|
extern const bclass be_class_HASPmota;
|
||||||
// compact class 'HASPmota' ktab size: 124, total: 197 (saved 584 bytes)
|
// compact class 'HASPmota' ktab size: 124, total: 196 (saved 576 bytes)
|
||||||
static const bvalue be_ktab_class_HASPmota[124] = {
|
static const bvalue be_ktab_class_HASPmota[124] = {
|
||||||
/* K0 */ be_nested_str_weak(global),
|
/* K0 */ be_nested_str_weak(global),
|
||||||
/* K1 */ be_nested_str_weak(introspect),
|
/* K1 */ be_nested_str_weak(introspect),
|
||||||
@ -12966,7 +12966,7 @@ be_local_closure(class_HASPmota_get_pages, /* name */
|
|||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(class_HASPmota_sort, /* name */
|
be_local_closure(class_HASPmota_sort, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
7, /* nstack */
|
6, /* nstack */
|
||||||
1, /* argc */
|
1, /* argc */
|
||||||
12, /* varg */
|
12, /* varg */
|
||||||
0, /* has upvals */
|
0, /* has upvals */
|
||||||
@ -12977,37 +12977,31 @@ be_local_closure(class_HASPmota_sort, /* name */
|
|||||||
&be_ktab_class_HASPmota, /* shared constants */
|
&be_ktab_class_HASPmota, /* shared constants */
|
||||||
be_str_weak(sort),
|
be_str_weak(sort),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[30]) { /* code */
|
( &(const binstruction[24]) { /* code */
|
||||||
0x5804006C, // 0000 LDCONST R1 K108
|
0x5804006C, // 0000 LDCONST R1 K108
|
||||||
0x60080010, // 0001 GETGBL R2 G16
|
0x58080006, // 0001 LDCONST R2 K6
|
||||||
0x600C000C, // 0002 GETGBL R3 G12
|
0x600C000C, // 0002 GETGBL R3 G12
|
||||||
0x5C100000, // 0003 MOVE R4 R0
|
0x5C100000, // 0003 MOVE R4 R0
|
||||||
0x7C0C0200, // 0004 CALL R3 1
|
0x7C0C0200, // 0004 CALL R3 1
|
||||||
0x040C071F, // 0005 SUB R3 R3 K31
|
0x140C0403, // 0005 LT R3 R2 R3
|
||||||
0x400E3E03, // 0006 CONNECT R3 K31 R3
|
0x780E000F, // 0006 JMPF R3 #0017
|
||||||
0x7C080200, // 0007 CALL R2 1
|
0x940C0002, // 0007 GETIDX R3 R0 R2
|
||||||
0xA8020010, // 0008 EXBLK 0 #001A
|
0x5C100400, // 0008 MOVE R4 R2
|
||||||
0x5C0C0400, // 0009 MOVE R3 R2
|
0x24140906, // 0009 GT R5 R4 K6
|
||||||
0x7C0C0000, // 000A CALL R3 0
|
0x78160008, // 000A JMPF R5 #0014
|
||||||
0x94100003, // 000B GETIDX R4 R0 R3
|
0x0414091F, // 000B SUB R5 R4 K31
|
||||||
0x5C140600, // 000C MOVE R5 R3
|
0x94140005, // 000C GETIDX R5 R0 R5
|
||||||
0x24180B06, // 000D GT R6 R5 K6
|
0x24140A03, // 000D GT R5 R5 R3
|
||||||
0x781A0008, // 000E JMPF R6 #0018
|
0x78160004, // 000E JMPF R5 #0014
|
||||||
0x04180B1F, // 000F SUB R6 R5 K31
|
0x0414091F, // 000F SUB R5 R4 K31
|
||||||
0x94180006, // 0010 GETIDX R6 R0 R6
|
0x94140005, // 0010 GETIDX R5 R0 R5
|
||||||
0x24180C04, // 0011 GT R6 R6 R4
|
0x98000805, // 0011 SETIDX R0 R4 R5
|
||||||
0x781A0004, // 0012 JMPF R6 #0018
|
0x0410091F, // 0012 SUB R4 R4 K31
|
||||||
0x04180B1F, // 0013 SUB R6 R5 K31
|
0x7001FFF4, // 0013 JMP #0009
|
||||||
0x94180006, // 0014 GETIDX R6 R0 R6
|
0x98000803, // 0014 SETIDX R0 R4 R3
|
||||||
0x98000A06, // 0015 SETIDX R0 R5 R6
|
0x0008051F, // 0015 ADD R2 R2 K31
|
||||||
0x04140B1F, // 0016 SUB R5 R5 K31
|
0x7001FFEA, // 0016 JMP #0002
|
||||||
0x7001FFF4, // 0017 JMP #000D
|
0x80040000, // 0017 RET 1 R0
|
||||||
0x98000A04, // 0018 SETIDX R0 R5 R4
|
|
||||||
0x7001FFEE, // 0019 JMP #0009
|
|
||||||
0x58080015, // 001A LDCONST R2 K21
|
|
||||||
0xAC080200, // 001B CATCH R2 1 0
|
|
||||||
0xB0080000, // 001C RAISE 2 R0 R0
|
|
||||||
0x80040000, // 001D RET 1 R0
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user