diff options
Diffstat (limited to 'src/ir_print.cpp')
| -rw-r--r-- | src/ir_print.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp index d57d554c72..dc756cf492 100644 --- a/src/ir_print.cpp +++ b/src/ir_print.cpp @@ -1041,8 +1041,16 @@ static void ir_print_field_parent_ptr(IrPrint *irp, IrInstructionFieldParentPtr fprintf(irp->f, ")"); } -static void ir_print_offset_of(IrPrint *irp, IrInstructionOffsetOf *instruction) { - fprintf(irp->f, "@offset_of("); +static void ir_print_byte_offset_of(IrPrint *irp, IrInstructionByteOffsetOf *instruction) { + fprintf(irp->f, "@byte_offset_of("); + ir_print_other_instruction(irp, instruction->type_value); + fprintf(irp->f, ","); + ir_print_other_instruction(irp, instruction->field_name); + fprintf(irp->f, ")"); +} + +static void ir_print_bit_offset_of(IrPrint *irp, IrInstructionBitOffsetOf *instruction) { + fprintf(irp->f, "@bit_offset_of("); ir_print_other_instruction(irp, instruction->type_value); fprintf(irp->f, ","); ir_print_other_instruction(irp, instruction->field_name); @@ -1649,8 +1657,11 @@ static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) { case IrInstructionIdFieldParentPtr: ir_print_field_parent_ptr(irp, (IrInstructionFieldParentPtr *)instruction); break; - case IrInstructionIdOffsetOf: - ir_print_offset_of(irp, (IrInstructionOffsetOf *)instruction); + case IrInstructionIdByteOffsetOf: + ir_print_byte_offset_of(irp, (IrInstructionByteOffsetOf *)instruction); + break; + case IrInstructionIdBitOffsetOf: + ir_print_bit_offset_of(irp, (IrInstructionBitOffsetOf *)instruction); break; case IrInstructionIdTypeInfo: ir_print_type_info(irp, (IrInstructionTypeInfo *)instruction); |
