@@ -232,7 +232,7 @@ void asm_x86_mov_i32_to_r32(asm_x86_t *as, int32_t src_i32, int dest_r32) {
232
232
// src_i32 is stored as a full word in the code, and aligned to machine-word boundary
233
233
void asm_x86_mov_i32_to_r32_aligned (asm_x86_t * as , int32_t src_i32 , int dest_r32 ) {
234
234
// mov instruction uses 1 byte for the instruction, before the i32
235
- while (((as -> code_offset + 1 ) & (WORD_SIZE - 1 )) != 0 ) {
235
+ while (((as -> base . code_offset + 1 ) & (WORD_SIZE - 1 )) != 0 ) {
236
236
asm_x86_nop (as );
237
237
}
238
238
asm_x86_mov_i32_to_r32 (as , src_i32 , dest_r32 );
@@ -339,13 +339,13 @@ void asm_x86_setcc_r8(asm_x86_t *as, mp_uint_t jcc_type, int dest_r8) {
339
339
}
340
340
341
341
STATIC mp_uint_t get_label_dest (asm_x86_t * as , mp_uint_t label ) {
342
- assert (label < as -> max_num_labels );
343
- return as -> label_offsets [label ];
342
+ assert (label < as -> base . max_num_labels );
343
+ return as -> base . label_offsets [label ];
344
344
}
345
345
346
346
void asm_x86_jmp_label (asm_x86_t * as , mp_uint_t label ) {
347
347
mp_uint_t dest = get_label_dest (as , label );
348
- mp_int_t rel = dest - as -> code_offset ;
348
+ mp_int_t rel = dest - as -> base . code_offset ;
349
349
if (dest != (mp_uint_t )- 1 && rel < 0 ) {
350
350
// is a backwards jump, so we know the size of the jump on the first pass
351
351
// calculate rel assuming 8 bit relative jump
@@ -367,7 +367,7 @@ void asm_x86_jmp_label(asm_x86_t *as, mp_uint_t label) {
367
367
368
368
void asm_x86_jcc_label (asm_x86_t * as , mp_uint_t jcc_type , mp_uint_t label ) {
369
369
mp_uint_t dest = get_label_dest (as , label );
370
- mp_int_t rel = dest - as -> code_offset ;
370
+ mp_int_t rel = dest - as -> base . code_offset ;
371
371
if (dest != (mp_uint_t )- 1 && rel < 0 ) {
372
372
// is a backwards jump, so we know the size of the jump on the first pass
373
373
// calculate rel assuming 8 bit relative jump
@@ -499,7 +499,7 @@ void asm_x86_call_ind(asm_x86_t *as, void *ptr, mp_uint_t n_args, int temp_r32)
499
499
// this reduces code size by 2 bytes per call, but doesn't seem to speed it up at all
500
500
/*
501
501
asm_x86_write_byte_1(as, OPCODE_CALL_REL32);
502
- asm_x86_write_word32(as, ptr - (void*)(as->code_base + as->code_offset + 4));
502
+ asm_x86_write_word32(as, ptr - (void*)(as->code_base + as->base. code_offset + 4));
503
503
*/
504
504
505
505
// the caller must clean up the stack
0 commit comments