GP-3110 missed breaks

This commit is contained in:
emteere
2024-03-07 19:09:00 -05:00
parent 03d4545336
commit a8ed3df3a9

View File

@@ -82,8 +82,12 @@ public class Tricore_ElfRelocationHandler
rv = symbolValue + addend; rv = symbolValue + addend;
byteLength = relocate_absB(memory, relocationAddress, rv); byteLength = relocate_absB(memory, relocationAddress, rv);
break; break;
/**
case R_TRICORE_16SM: // BOL S + A - A[0] case R_TRICORE_16SM: // BOL S + A - A[0]
break; break;
**/
case R_TRICORE_HI: // RLC S + A + 8000H >> 16 case R_TRICORE_HI: // RLC S + A + 8000H >> 16
rv = (symbolValue + addend + 0x8000) >> 16; rv = (symbolValue + addend + 0x8000) >> 16;
byteLength = relocate_RLC(memory, relocationAddress, rv); byteLength = relocate_RLC(memory, relocationAddress, rv);
@@ -100,12 +104,17 @@ public class Tricore_ElfRelocationHandler
rv = symbolValue + addend; rv = symbolValue + addend;
byteLength = relocate_ABS(memory, relocationAddress, rv); byteLength = relocate_ABS(memory, relocationAddress, rv);
break; break;
/**
case R_TRICORE_10SM: // BO S + A - A[0] case R_TRICORE_10SM: // BO S + A - A[0]
break; break;
**/
case R_TRICORE_15REL: // BR S + A - P case R_TRICORE_15REL: // BR S + A - P
rv = symbolValue + addend - offset; rv = symbolValue + addend - offset;
byteLength = relocate_BR(memory, relocationAddress, rv); byteLength = relocate_BR(memory, relocationAddress, rv);
break; break;
/** /**
case R_TRICORE_10LI: // BO S + A - A[1] case R_TRICORE_10LI: // BO S + A - A[1]
break; break;
@@ -122,10 +131,12 @@ public class Tricore_ElfRelocationHandler
case R_TRICORE_10OFF: case R_TRICORE_10OFF:
break; break;
**/ **/
case R_TRICORE_16OFF: case R_TRICORE_16OFF:
rv = symbolValue + addend; rv = symbolValue + addend;
byteLength = relocate_BOL(memory, relocationAddress, rv); byteLength = relocate_BOL(memory, relocationAddress, rv);
break; break;
/** /**
case R_TRICORE_8ABS: case R_TRICORE_8ABS:
break; break;
@@ -134,6 +145,7 @@ public class Tricore_ElfRelocationHandler
case R_TRICORE_16BIT: case R_TRICORE_16BIT:
break; break;
**/ **/
case R_TRICORE_3POS: case R_TRICORE_3POS:
rv = symbolValue + addend; rv = symbolValue + addend;
byteLength = relocate_3POS(memory, relocationAddress, rv); byteLength = relocate_3POS(memory, relocationAddress, rv);
@@ -166,6 +178,7 @@ public class Tricore_ElfRelocationHandler
rv = (symbolValue + addend); rv = (symbolValue + addend);
byteLength = relocate_5POS2(memory, relocationAddress, rv); byteLength = relocate_5POS2(memory, relocationAddress, rv);
break; break;
/** /**
case R_TRICORE_BRCC: case R_TRICORE_BRCC:
break; break;
@@ -260,9 +273,11 @@ public class Tricore_ElfRelocationHandler
case R_TRICORE_RELATIVE: case R_TRICORE_RELATIVE:
break; break;
**/ **/
case R_TRICORE_BITPOS: case R_TRICORE_BITPOS:
// This reads as a pseudo relocation, possibly do RelocationResult.PARTIAL instead? // This reads as a pseudo relocation, possibly do RelocationResult.PARTIAL instead?
return RelocationResult.SKIPPED; return RelocationResult.SKIPPED;
/** /**
case R_TRICORE_SBREG_S2: case R_TRICORE_SBREG_S2:
break; break;
@@ -271,6 +286,7 @@ public class Tricore_ElfRelocationHandler
case R_TRICORE_SBREG_D: case R_TRICORE_SBREG_D:
break; break;
**/ **/
default: default:
break; break;
} }