#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ DebugPrintf(int, char *, ...);
void NxpOutputErrorMessage(unsigned char ErrorNumber) {
  switch (ErrorNumber) {
  case 0:
    DebugPrintf(1, "CMD_SUCCESS\n");
    break;
  case 1:
    DebugPrintf(1, "INVALID_COMMAND\n");
    break;
  case 2:
    DebugPrintf(1, "SRC_ADDR_ERROR: Source address is not on word boundary.\n");
    break;
  case 3:
    DebugPrintf(
        1,
        "DST_ADDR_ERROR: Destination address is not on a correct boundary.\n");
    break;
  case 4:
    DebugPrintf(
        1,
        "SRC_ADDR_NOT_MAPPED: Source address is not mapped in the memory map.\n"
        "                     Count value is taken into consideration where "
        "applicable.\n");
    break;
  case 5:
    DebugPrintf(1, "DST_ADDR_NOT_MAPPED: Destination address is not mapped in "
                   "the memory map.\n"
                   "                     Count value is taken into "
                   "consideration where applicable.\n");
    break;
  case 6:
    DebugPrintf(1, "COUNT_ERROR: Byte count is not multiple of 4 or is not a "
                   "permitted value.\n");
    break;
  case 7:
    DebugPrintf(
        1, "INVALID_SECTOR: Sector number is invalid or end sector number is\n"
           "                greater than start sector number.\n");
    break;
  case 8:
    DebugPrintf(1, "SECTOR_NOT_BLANK\n");
    break;
  case 9:
    DebugPrintf(
        1, "SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION:\n"
           "Command to prepare sector for write operation was not executed.\n");
    break;
  case 10:
    DebugPrintf(1, "COMPARE_ERROR: Source and destination data not equal.\n");
    break;
  case 11:
    DebugPrintf(1, "BUSY: Flash programming hardware interface is busy.\n");
    break;
  case 12:
    DebugPrintf(1, "PARAM_ERROR: Insufficient number of parameters or invalid "
                   "parameter.\n");
    break;
  case 13:
    DebugPrintf(1, "ADDR_ERROR: Address is not on word boundary.\n");
    break;
  case 14:
    DebugPrintf(1, "ADDR_NOT_MAPPED: Address is not mapped in the memory map.\n"
                   "                 Count value is taken in to consideration "
                   "where applicable.\n");
    break;
  case 15:
    DebugPrintf(1, "CMD_LOCKED\n");
    break;
  case 16:
    DebugPrintf(1, "INVALID_CODE: Unlock code is invalid.\n");
    break;
  case 17:
    DebugPrintf(1, "INVALID_BAUD_RATE: Invalid baud rate setting.\n");
    break;
  case 18:
    DebugPrintf(1, "INVALID_STOP_BIT: Invalid stop bit setting.\n");
    break;
  case 19:
    DebugPrintf(1, "CODE READ PROTECTION ENABLED\n");
    break;
  case 255:
    break;
  default:
    DebugPrintf(1, "unknown error %u\n", ErrorNumber);
    break;
  }
}


x86 assembly (clang, -O0):
<NxpOutputErrorMessage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
movzbl -0x1(%rbp),%eax
mov    %eax,-0x8(%rbp)
test   %eax,%eax
je     1288 <NxpOutputErrorMessage+0x178>
jmp    1132 <NxpOutputErrorMessage+0x22>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
je     12a0 <NxpOutputErrorMessage+0x190>
jmp    1143 <NxpOutputErrorMessage+0x33>
mov    -0x8(%rbp),%eax
sub    $0x2,%eax
je     12b8 <NxpOutputErrorMessage+0x1a8>
jmp    1154 <NxpOutputErrorMessage+0x44>
mov    -0x8(%rbp),%eax
sub    $0x3,%eax
je     12d0 <NxpOutputErrorMessage+0x1c0>
jmp    1165 <NxpOutputErrorMessage+0x55>
mov    -0x8(%rbp),%eax
sub    $0x4,%eax
je     12e8 <NxpOutputErrorMessage+0x1d8>
jmp    1176 <NxpOutputErrorMessage+0x66>
mov    -0x8(%rbp),%eax
sub    $0x5,%eax
je     1300 <NxpOutputErrorMessage+0x1f0>
jmp    1187 <NxpOutputErrorMessage+0x77>
mov    -0x8(%rbp),%eax
sub    $0x6,%eax
je     1318 <NxpOutputErrorMessage+0x208>
jmp    1198 <NxpOutputErrorMessage+0x88>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
je     1330 <NxpOutputErrorMessage+0x220>
jmp    11a9 <NxpOutputErrorMessage+0x99>
mov    -0x8(%rbp),%eax
sub    $0x8,%eax
je     1348 <NxpOutputErrorMessage+0x238>
jmp    11ba <NxpOutputErrorMessage+0xaa>
mov    -0x8(%rbp),%eax
sub    $0x9,%eax
je     1360 <NxpOutputErrorMessage+0x250>
jmp    11cb <NxpOutputErrorMessage+0xbb>
mov    -0x8(%rbp),%eax
sub    $0xa,%eax
je     1378 <NxpOutputErrorMessage+0x268>
jmp    11dc <NxpOutputErrorMessage+0xcc>
mov    -0x8(%rbp),%eax
sub    $0xb,%eax
je     1390 <NxpOutputErrorMessage+0x280>
jmp    11ed <NxpOutputErrorMessage+0xdd>
mov    -0x8(%rbp),%eax
sub    $0xc,%eax
je     13a8 <NxpOutputErrorMessage+0x298>
jmp    11fe <NxpOutputErrorMessage+0xee>
mov    -0x8(%rbp),%eax
sub    $0xd,%eax
je     13c0 <NxpOutputErrorMessage+0x2b0>
jmp    120f <NxpOutputErrorMessage+0xff>
mov    -0x8(%rbp),%eax
sub    $0xe,%eax
je     13d8 <NxpOutputErrorMessage+0x2c8>
jmp    1220 <NxpOutputErrorMessage+0x110>
mov    -0x8(%rbp),%eax
sub    $0xf,%eax
je     13f0 <NxpOutputErrorMessage+0x2e0>
jmp    1231 <NxpOutputErrorMessage+0x121>
mov    -0x8(%rbp),%eax
sub    $0x10,%eax
je     1408 <NxpOutputErrorMessage+0x2f8>
jmp    1242 <NxpOutputErrorMessage+0x132>
mov    -0x8(%rbp),%eax
sub    $0x11,%eax
je     1420 <NxpOutputErrorMessage+0x310>
jmp    1253 <NxpOutputErrorMessage+0x143>
mov    -0x8(%rbp),%eax
sub    $0x12,%eax
je     1438 <NxpOutputErrorMessage+0x328>
jmp    1264 <NxpOutputErrorMessage+0x154>
mov    -0x8(%rbp),%eax
sub    $0x13,%eax
je     1450 <NxpOutputErrorMessage+0x340>
jmp    1275 <NxpOutputErrorMessage+0x165>
mov    -0x8(%rbp),%eax
sub    $0xff,%eax
je     1468 <NxpOutputErrorMessage+0x358>
jmp    146d <NxpOutputErrorMessage+0x35d>
mov    $0x1,%edi
lea    0xd6c(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xd61(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xd5a(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xd7b(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xda6(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xe23(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xea5(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xed8(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xf34(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xf2e(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xf80(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xf9f(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xfbc(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0xfea(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x1000(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x106f(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x1063(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x1072(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x1089(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
mov    $0x1,%edi
lea    0x109e(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
jmp    1484 <NxpOutputErrorMessage+0x374>
jmp    1484 <NxpOutputErrorMessage+0x374>
movzbl -0x1(%rbp),%edx
mov    $0x1,%edi
lea    0x109b(%rip),%rsi
mov    $0x0,%al
call   1030 <DebugPrintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<NxpOutputErrorMessage>:
lea    0x1(%rdi),%eax
cmp    $0x14,%al
ja     112b <NxpOutputErrorMessage+0x1b>
movzbl %al,%eax
lea    0xedf(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
ret
movzbl %dil,%edx
lea    0x1436(%rip),%rsi
mov    $0x1,%edi
xor    %eax,%eax
jmp    1030 <DebugPrintf@plt>
lea    0xf0b(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0xf0c(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0xf11(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0xf3e(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0xf75(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0xffe(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x108f(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x10d1(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x113c(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x1145(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x11a6(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x11d4(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x1200(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x123d(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x1262(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x12e0(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x12e3(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x1301(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x1327(%rip),%rsi
jmp    1203 <NxpOutputErrorMessage+0xf3>
lea    0x134b(%rip),%rsi
mov    $0x1,%edi
xor    %eax,%eax
jmp    1030 <DebugPrintf@plt>

LLVM IR (-O0):
@.str = [13 x i8] c"CMD_SUCCESS\0A\00"
@.str.1 = [17 x i8] c"INVALID_COMMAND\0A\00"
@.str.2 = [57 x i8] c"SRC_ADDR_ERROR: Source address is not on word boundary.\0A\00"
@.str.3 = [67 x i8] c"DST_ADDR_ERROR: Destination address is not on a correct boundary.\0A\00"
@.str.4 = [149 x i8] c"SRC_ADDR_NOT_MAPPED: Source address is not mapped in the memory map.\0A Count value is taken into consideration where applicable.\0A\00"
@.str.5 = [154 x i8] c"DST_ADDR_NOT_MAPPED: Destination address is not mapped in the memory map.\0A Count value is taken into consideration where applicable.\0A\00"
@.str.6 = [75 x i8] c"COUNT_ERROR: Byte count is not multiple of 4 or is not a permitted value.\0A\00"
@.str.7 = [116 x i8] c"INVALID_SECTOR: Sector number is invalid or end sector number is\0A greater than start sector number.\0A\00"
@.str.8 = [18 x i8] c"SECTOR_NOT_BLANK\0A\00"
@.str.9 = [106 x i8] c"SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION:\0ACommand to prepare sector for write operation was not executed.\0A\00"
@.str.10 = [55 x i8] c"COMPARE_ERROR: Source and destination data not equal.\0A\00"
@.str.11 = [53 x i8] c"BUSY: Flash programming hardware interface is busy.\0A\00"
@.str.12 = [70 x i8] c"PARAM_ERROR: Insufficient number of parameters or invalid parameter.\0A\00"
@.str.13 = [46 x i8] c"ADDR_ERROR: Address is not on word boundary.\0A\00"
@.str.14 = [135 x i8] c"ADDR_NOT_MAPPED: Address is not mapped in the memory map.\0A Count value is taken in to consideration where applicable.\0A\00"
@.str.15 = [12 x i8] c"CMD_LOCKED\0A\00"
@.str.16 = [39 x i8] c"INVALID_CODE: Unlock code is invalid.\0A\00"
@.str.17 = [47 x i8] c"INVALID_BAUD_RATE: Invalid baud rate setting.\0A\00"
@.str.18 = [45 x i8] c"INVALID_STOP_BIT: Invalid stop bit setting.\0A\00"
@.str.19 = [30 x i8] c"CODE READ PROTECTION ENABLED\0A\00"
@.str.20 = [18 x i8] c"unknown error %u\0A\00"
define void @NxpOutputErrorMessage(i8 zeroext %0) {
%2 = alloca i8
store i8 %0, i8* %2
%3 = load i8, i8* %2
%4 = zext i8 %3 to i32
switch i32 %4, label %46 [
i32 0, label %5
i32 1, label %7
i32 2, label %9
i32 3, label %11
i32 4, label %13
i32 5, label %15
i32 6, label %17
i32 7, label %19
i32 8, label %21
i32 9, label %23
i32 10, label %25
i32 11, label %27
i32 12, label %29
i32 13, label %31
i32 14, label %33
i32 15, label %35
i32 16, label %37
i32 17, label %39
i32 18, label %41
i32 19, label %43
i32 255, label %45
]
5: ; preds = %1
%6 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0))
br label %50
7: ; preds = %1
%8 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0))
br label %50
9: ; preds = %1
%10 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0))
br label %50
11: ; preds = %1
%12 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.3, i64 0, i64 0))
br label %50
13: ; preds = %1
%14 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([149 x i8], [149 x i8]* @.str.4, i64 0, i64 0))
br label %50
15: ; preds = %1
%16 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.5, i64 0, i64 0))
br label %50
17: ; preds = %1
%18 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.6, i64 0, i64 0))
br label %50
19: ; preds = %1
%20 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.7, i64 0, i64 0))
br label %50
21: ; preds = %1
%22 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.8, i64 0, i64 0))
br label %50
23: ; preds = %1
%24 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
br label %50
25: ; preds = %1
%26 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.10, i64 0, i64 0))
br label %50
27: ; preds = %1
%28 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.11, i64 0, i64 0))
br label %50
29: ; preds = %1
%30 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.12, i64 0, i64 0))
br label %50
31: ; preds = %1
%32 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.13, i64 0, i64 0))
br label %50
33: ; preds = %1
%34 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([135 x i8], [135 x i8]* @.str.14, i64 0, i64 0))
br label %50
35: ; preds = %1
%36 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %50
37: ; preds = %1
%38 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.16, i64 0, i64 0))
br label %50
39: ; preds = %1
%40 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.17, i64 0, i64 0))
br label %50
41: ; preds = %1
%42 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.18, i64 0, i64 0))
br label %50
43: ; preds = %1
%44 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.19, i64 0, i64 0))
br label %50
45: ; preds = %1
br label %50
46: ; preds = %1
%47 = load i8, i8* %2
%48 = zext i8 %47 to i32
%49 = call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), i32 %48)
br label %50
50: ; preds = %46, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7, %5
ret void
}

LLVM IR (-O2):
@.str = [13 x i8] c"CMD_SUCCESS\0A\00"
@.str.1 = [17 x i8] c"INVALID_COMMAND\0A\00"
@.str.2 = [57 x i8] c"SRC_ADDR_ERROR: Source address is not on word boundary.\0A\00"
@.str.3 = [67 x i8] c"DST_ADDR_ERROR: Destination address is not on a correct boundary.\0A\00"
@.str.4 = [149 x i8] c"SRC_ADDR_NOT_MAPPED: Source address is not mapped in the memory map.\0A Count value is taken into consideration where applicable.\0A\00"
@.str.5 = [154 x i8] c"DST_ADDR_NOT_MAPPED: Destination address is not mapped in the memory map.\0A Count value is taken into consideration where applicable.\0A\00"
@.str.6 = [75 x i8] c"COUNT_ERROR: Byte count is not multiple of 4 or is not a permitted value.\0A\00"
@.str.7 = [116 x i8] c"INVALID_SECTOR: Sector number is invalid or end sector number is\0A greater than start sector number.\0A\00"
@.str.8 = [18 x i8] c"SECTOR_NOT_BLANK\0A\00"
@.str.9 = [106 x i8] c"SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION:\0ACommand to prepare sector for write operation was not executed.\0A\00"
@.str.10 = [55 x i8] c"COMPARE_ERROR: Source and destination data not equal.\0A\00"
@.str.11 = [53 x i8] c"BUSY: Flash programming hardware interface is busy.\0A\00"
@.str.12 = [70 x i8] c"PARAM_ERROR: Insufficient number of parameters or invalid parameter.\0A\00"
@.str.13 = [46 x i8] c"ADDR_ERROR: Address is not on word boundary.\0A\00"
@.str.14 = [135 x i8] c"ADDR_NOT_MAPPED: Address is not mapped in the memory map.\0A Count value is taken in to consideration where applicable.\0A\00"
@.str.15 = [12 x i8] c"CMD_LOCKED\0A\00"
@.str.16 = [39 x i8] c"INVALID_CODE: Unlock code is invalid.\0A\00"
@.str.17 = [47 x i8] c"INVALID_BAUD_RATE: Invalid baud rate setting.\0A\00"
@.str.18 = [45 x i8] c"INVALID_STOP_BIT: Invalid stop bit setting.\0A\00"
@.str.19 = [30 x i8] c"CODE READ PROTECTION ENABLED\0A\00"
@.str.20 = [18 x i8] c"unknown error %u\0A\00"
define void @NxpOutputErrorMessage(i8 zeroext %0) {
switch i8 %0, label %42 [
i8 0, label %2
i8 1, label %4
i8 2, label %6
i8 3, label %8
i8 4, label %10
i8 5, label %12
i8 6, label %14
i8 7, label %16
i8 8, label %18
i8 9, label %20
i8 10, label %22
i8 11, label %24
i8 12, label %26
i8 13, label %28
i8 14, label %30
i8 15, label %32
i8 16, label %34
i8 17, label %36
i8 18, label %38
i8 19, label %40
i8 -1, label %45
]
2: ; preds = %1
%3 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0))
br label %45
4: ; preds = %1
%5 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0))
br label %45
6: ; preds = %1
%7 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.2, i64 0, i64 0))
br label %45
8: ; preds = %1
%9 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.3, i64 0, i64 0))
br label %45
10: ; preds = %1
%11 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([149 x i8], [149 x i8]* @.str.4, i64 0, i64 0))
br label %45
12: ; preds = %1
%13 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.5, i64 0, i64 0))
br label %45
14: ; preds = %1
%15 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.6, i64 0, i64 0))
br label %45
16: ; preds = %1
%17 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.7, i64 0, i64 0))
br label %45
18: ; preds = %1
%19 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.8, i64 0, i64 0))
br label %45
20: ; preds = %1
%21 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
br label %45
22: ; preds = %1
%23 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.10, i64 0, i64 0))
br label %45
24: ; preds = %1
%25 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.11, i64 0, i64 0))
br label %45
26: ; preds = %1
%27 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.12, i64 0, i64 0))
br label %45
28: ; preds = %1
%29 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.13, i64 0, i64 0))
br label %45
30: ; preds = %1
%31 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([135 x i8], [135 x i8]* @.str.14, i64 0, i64 0))
br label %45
32: ; preds = %1
%33 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %45
34: ; preds = %1
%35 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.16, i64 0, i64 0))
br label %45
36: ; preds = %1
%37 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.17, i64 0, i64 0))
br label %45
38: ; preds = %1
%39 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.18, i64 0, i64 0))
br label %45
40: ; preds = %1
%41 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.19, i64 0, i64 0))
br label %45
42: ; preds = %1
%43 = zext i8 %0 to i32
%44 = tail call i32 (i32, i8*, ...) @DebugPrintf(i32 1, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), i32 %43)
br label %45
45: ; preds = %42, %1, %40, %38, %36, %34, %32, %30, %28, %26, %24, %22, %20, %18, %16, %14, %12, %10, %8, %6, %4, %2
ret void
}