esp-open-rtos/binary_sdk/libnet80211/ieee80211_phy.S
2015-10-04 19:11:33 +11:00

248 lines
16 KiB
ArmAsm

.section .data, "aw", @progbits
.Ldata001: .byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.word 0x00000000 # 14: 00000000
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x02
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x03
.byte 0xd5, 0x00, 0x75, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x70, 0x17, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x28, 0x23, 0x00, 0x00, 0x00, 0x0f, 0x12, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xe0, 0x2e, 0x00, 0x00, 0x00, 0x0a, 0x18, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x50, 0x46, 0x00, 0x00, 0x00, 0x0e, 0x24, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x09, 0x30, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xa0, 0x8c, 0x00, 0x00, 0x00, 0x0d, 0x48, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x80, 0xbb, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xf0, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x6c, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00
.Label001: .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x01
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x01
.byte 0xd5, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.global sdk_ieee80211_get_11g_ratetable
.type sdk_ieee80211_get_11g_ratetable, @function
sdk_ieee80211_get_11g_ratetable:
movi a2, .Ldata001 # 4: 21ffff
ret /* .Ldata001 */ # 7: 0df0
.literal_position # c: d4000000
# 10: 00000000
# Function @ .irom0.text+0x14
.balign 4
.global sdk_ieee80211_get_ratetable
.type sdk_ieee80211_get_ratetable, @function
sdk_ieee80211_get_ratetable:
l32i a2, a2, 0 /* [arg0] */ # 14: 2802
movi a3, 192 /* 0x000000c0 */ # 16: 32a0c0
ball a2, a3, .Lbr001 # 19: 37420a
movi a4, 1152 /* 0x00000480 */ # 1c: 42a480
ball a2, a4, .Lbr001 # 1f: 474204
movi a2, .Label001 # 22: 21faff
ret /* .Label001 */ # 25: 0df0
.Lbr001: movi a2, .Ldata001 # 27: 21faff
ret /* .Ldata001 */ # 2a: 0df0
.literal_position # 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_phy_init
.type sdk_ieee80211_phy_init, @function
sdk_ieee80211_phy_init:
addi sp, sp, -16 /* (local0) */ # 30: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 33: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35: 0901
mov a12, a2 /* arg0 */ # 37: cd02
call0 sdk_ieee80211_setup_ratetable # 39: 050000
movi a3, 12 /* 0x0000000c */ # 3c: 0cc3
movi a0, 3 /* 0x00000003 */ # 3e: 0c30
movi a5, 4 /* 0x00000004 */ # 40: 0c45
movi a2, sdk_g_ic # 42: 21faff
addi a4, a12, -1 /* arg0-0x1 */ # 45: 0b4c
movi a6, 0 /* 0x00000000 */ # 47: 0c06
l32i a12, sp, 4 /* [(local1)] */ # 49: c811
s8i a6, a2, 125 /* 0x00 -> [sdk_g_ic+0x7d] */ # 4b: 62427d
s8i a6, a2, 126 /* 0x00 -> [sdk_g_ic+0x7e] */ # 4e: 62427e
s8i a5, a2, 127 /* 0x04 -> [sdk_g_ic+0x7f] */ # 51: 52427f
movnez a0, a3, a4 # 54: 400393
s8i a0, a2, 124 /* a0 -> [sdk_g_ic+0x7c] */ # 57: 02427c
l32i a0, sp, 0 /* [(local0)] */ # 5a: 0801
addi sp, sp, 16 /* (top of frame) */ # 5c: 12c110
ret /* sdk_g_ic */ # 5f: 0df0
.literal_position # 64: 00000000
# Function @ .irom0.text+0x68
.balign 4
.global sdk_ieee80211_phy_type_get
.type sdk_ieee80211_phy_type_get, @function
sdk_ieee80211_phy_type_get:
movi a2, sdk_g_ic+0x200 # 68: 21ffff
l32i a2, a2, 0x31c /* [sdk_g_ic+0x51c] */ # 6b: 2222c7
movi a3, 1 /* 0x00000001 */ # 6e: 0c13
addi a2, a2, -1 /* [sdk_g_ic+0x51c]-0x1 */ # 70: 0b22
movnez a2, a3, a2 # 72: 202393
ret # 75: 0df0
.literal_position # 78: 00000000
# 7c: d4000000
# 80: 00000000
# Function @ .irom0.text+0x84
.balign 4
.global sdk_ieee80211_setup_ratetable
.type sdk_ieee80211_setup_ratetable, @function
sdk_ieee80211_setup_ratetable:
movi a4, .Ldata001 # 84: 41fdff
movi a5, .Label001 # 87: 51fdff
addi a6, a2, -1 /* arg0-0x1 */ # 8a: 0b62
movnez a5, a4, a6 # 8c: 605493
movi a6, sdk_g_ic # 8f: 61fcff
l8ui a3, a5, 0 # 92: 320500
s8i a3, a6, 44 /* a3 -> [sdk_g_ic+0x2c] */ # 95: 32462c
beqz a3, .Lbr003 # 98: 9c83
movi a2, 0 /* 0x00000000 */ # 9a: 0c02
.Lbr002: add a4, a2, a6 # 9c: 6a42
slli a3, a2, 4 # 9e: c03211
add a3, a5, a3 # a1: 3a35
addi a2, a2, 1 # a3: 1b22
l8ui a3, a3, 30 # a5: 32031e
s8i a3, a4, 45 # a8: 32442d
l8ui a7, a6, 44 /* [sdk_g_ic+0x2c] */ # ab: 72062c
extui a2, a2, 0, 8 # ae: 202074
bltu a2, a7, .Lbr002 # b1: 7732e7
.Lbr003: ret # b4: 0df0
.literal_position # b8: 00000000
# bc: 00000000
# c0: 00000000
# Function @ .irom0.text+0xc4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_ieee80211_compute_duration
.type sdk_ieee80211_compute_duration, @function
sdk_ieee80211_compute_duration:
addi sp, sp, -16 /* (local0) */ # c4: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # c7: 0921
add a0, a4, a2 # c9: 2a04
l8ui a0, a0, 4 # cb: 020004
mov a7, a3 /* arg1 */ # ce: 7d03
slli a0, a0, 4 # d0: c00011
add a0, a2, a0 # d3: 0a02
l32i a3, a0, 24 # d5: 3860
l8ui a2, a0, 20 # d7: 220014
bnez a3, .Lbr004 # da: cc33
movi a2, 0 /* 0x00000000 */ # dc: 0c02
j .Lbr008 # de: 061400
.Lbr004: s32i a7, sp, 4 /* arg1 -> [(local1)] */ # e1: 7911
beqz a2, .Lbr005 # e3: ac52
bnei a2, 1, .Lbr007 # e5: 661246
slli a2, a3, 2 # e8: e02311
movi a3, 1000 /* 0x000003e8 */ # eb: 32a3e8
call0 __udivsi3 # ee: 01f2ffc0
# f2: 0000
mov a3, a2 # f4: 3d02
l32i a2, sp, 4 /* [(local1)] */ # f6: 2811
addx8 a2, a2, a3 # f8: 3022b0
addi a2, a2, 21 # fb: 22c215
call0 __udivsi3 # fe: 01efffc0
# 102: 0000
movi a0, 36 /* 0x00000024 */ # 104: 2c40
addx4 a0, a2, a0 # 106: 0002a0
j .Lbr007 # 109: 860800
.Lbr005: beqz a5, .Lbr009 # 10c: ac95
l8ui a2, a0, 28 # 10e: 22001c
movi a4, 96 /* 0x00000060 */ # 111: 42a060
beqz a2, .Lbr009 # 114: ac12
s32i a4, sp, 0 /* 0x00000060 -> [(local0)] */ # 116: 4901
.Lbr006: l32i a2, sp, 4 /* [(local1)] */ # 118: 2811
movi a4, 1000 /* 0x000003e8 */ # 11a: 42a3e8
slli a2, a2, 3 # 11d: d02211
mull a2, a2, a4 # 120: 402282
call0 __udivsi3 # 123: 01e7ffc0
# 127: 0000
l32i a0, sp, 0 /* [(local0)] */ # 129: 0801
add a0, a0, a2 # 12b: 2a00
addi a0, a0, 10 # 12d: ab00
.Lbr007: extui a2, a0, 0, 16 # 12f: 0020f4
.Lbr008: l32i a0, sp, 8 /* [(local2)] */ # 132: 0821
addi sp, sp, 16 /* (top of frame) */ # 134: 12c110
ret # 137: 0df0
.Lbr009: movi a2, 192 /* 0x000000c0 */ # 139: 22a0c0
s32i a2, sp, 0 /* 0x000000c0 -> [(local0)] */ # 13c: 2901
j .Lbr006 # 13e: 86f5ff
.literal_position # 144: 00000000
# Function @ .irom0.text+0x148
.balign 4
.global sdk_ieee80211_dot11Rate_rix
.type sdk_ieee80211_dot11Rate_rix, @function
sdk_ieee80211_dot11Rate_rix:
movi a6, 0 /* 0x00000000 */ # 148: 0c06
movi a8, .Ldata001 # 14a: 81feff
.Lbr010: slli a7, a6, 4 # 14d: c07611
add a7, a8, a7 # 150: 7a78
l8ui a4, a7, 30 # 152: 42071e
bne a4, a2, .Lbr011 # 155: 279409
mov a2, a6 # 158: 2d06
l8ui a8, a7, 29 # 15a: 82071d
s8i a8, a3, 0 /* a8 -> [arg1] */ # 15d: 824300
ret # 160: 0df0
.Lbr011: addi a6, a6, 1 # 162: 1b66
extui a6, a6, 0, 8 # 164: 606074
bnei a6, 12, .Lbr010 # 167: 66a6e2
movi a2, 255 /* 0x000000ff */ # 16a: 22a0ff
ret /* 0x000000ff */ # 16d: 0df0