@@ -142,10 +142,10 @@ def make_ins(layout):
142142
143143
144144_st = make_ins ("""
145- dreg : 2 # Register which contains data to store
146- sreg : 2 # Register which contains address in RTC memory (expressed in words)
145+ sreg : 2 # Register which contains data to store
146+ dreg : 2 # Register which contains address in RTC memory (expressed in words)
147147 unused1 : 6 # Unused
148- offset : 11 # Offset to add to sreg
148+ offset : 11 # Offset to add to dreg
149149 unused2 : 4 # Unused
150150 sub_opcode : 3 # Sub opcode (SUB_OPCODE_ST)
151151 opcode : 4 # Opcode (OPCODE_ST)
@@ -378,9 +378,9 @@ def i_wait(cycles):
378378 return _delay .all
379379
380380
381- def i_adc (reg_dest , adc_idx , pad_idx ):
381+ def i_adc (reg_dest , adc_idx , mux ):
382382 _adc .dreg = get_reg (reg_dest )
383- _adc .mux = get_imm (pad_idx ) + 1
383+ _adc .mux = get_imm (mux )
384384 _adc .sar_sel = get_imm (adc_idx )
385385 _adc .unused1 = 0
386386 _adc .cycles = 0
@@ -390,10 +390,10 @@ def i_adc(reg_dest, adc_idx, pad_idx):
390390
391391
392392def i_st (reg_val , reg_addr , offset ):
393- _st .dreg = get_reg (reg_val )
394- _st .sreg = get_reg (reg_addr )
393+ _st .dreg = get_reg (reg_addr )
394+ _st .sreg = get_reg (reg_val )
395395 _st .unused1 = 0
396- _st .offset = get_imm (offset )
396+ _st .offset = get_imm (offset ) // 4
397397 _st .unused2 = 0
398398 _st .sub_opcode = SUB_OPCODE_ST
399399 _st .opcode = OPCODE_ST
@@ -410,7 +410,7 @@ def i_ld(reg_dest, reg_addr, offset):
410410 _ld .dreg = get_reg (reg_dest )
411411 _ld .sreg = get_reg (reg_addr )
412412 _ld .unused1 = 0
413- _ld .offset = get_imm (offset )
413+ _ld .offset = get_imm (offset ) // 4
414414 _ld .unused2 = 0
415415 _ld .opcode = OPCODE_LD
416416 return _ld .all
@@ -423,7 +423,7 @@ def i_move(reg_dest, reg_imm_src):
423423 if src .type == REG :
424424 _alu_reg .dreg = dest
425425 _alu_reg .sreg = src .value
426- _alu_reg .treg = 0
426+ _alu_reg .treg = 1 # XXX undocumented, this is the value binutils-esp32 uses
427427 _alu_reg .unused = 0
428428 _alu_reg .sel = ALU_SEL_MOV
429429 _alu_reg .sub_opcode = SUB_OPCODE_ALU_REG
0 commit comments