Example 1: #pragma pack(1) in c
adds r31 = r32, 4
adds r30 = r32 8 ;;
ld1 r29 = [r31], 1
ld1 r28 = [r30], 1 ;;
ld1 r27 = [r31], 1
ld1 r26 = [r30], 1 ;;
dep r29 = r27, r29, 8, 8
dep r28 = r26, r28, 8, 8
ld1 r25 = [r31], 1
ld1 r24 = [r30], 1 ;;
dep r29 = r25, r29, 16, 8
dep r28 = r24, r28, 16, 8
ld1 r27 = [r31]
ld1 r26 = [r30] ;;
dep r29 = r27, r29, 24, 8
dep r28 = r26, r28, 24, 8 ;;
add r31 = r28, r29 ;;
st1 [r32] = r31
adds r30 = r32, 1
adds r29 = r32, 2
extr r28 = r31, 8, 8
extr r27 = r31, 16, 8 ;;
st1 [r30] = r28
st1 [r29] = r27, 1
extr r26 = r31, 24, 8 ;;
st1 [r29] = r26
br.ret.sptk.many.rp
Example 2: #pragma pack(1) in c
struct Test
{
char AA;
int BB;
char CC;
};
Example 3: #pragma pack(1) in c
#include <stdio.h>
struct a {
char one;
char two[2];
char eight[8];
char four[4];
};
struct b {
char one;
short two;
long int eight;
int four;
};
int main(int argc, char** argv) {
struct a twoa[2] = {};
struct b twob[2] = {};
printf("sizeof(struct a): %i, sizeof(struct b): %i\n", sizeof(struct a), sizeof(struct b));
printf("sizeof(twoa): %i, sizeof(twob): %i\n", sizeof(twoa), sizeof(twob));
}