Guest User

mod_dump.txt

a guest
Mar 23rd, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 3.99 KB | None | 0 0
  1. ; ModuleID = 'Intel Pentium III'
  2. source_filename = "Intel Pentium III"
  3.  
  4. %struct.tc_t = type { i32, i32, i32, %struct.tc_t* (%struct.cpu_ctx_t*)*, [3 x %struct.tc_t* (%struct.cpu_ctx_t*)*], i32 }
  5. %struct.cpu_ctx_t = type { %struct.cpu_t*, %struct.regs_t, %struct.eflags_t, i32 }
  6. %struct.cpu_t = type opaque
  7. %struct.regs_t = type { i32, i32, i32, i32, i32, i32, i32, i32, %struct.seg_t, %struct.seg_t, %struct.seg_t, %struct.seg_t, %struct.seg_t, %struct.seg_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.seg_t, %struct.seg_t, %struct.seg_t, %struct.seg_t }
  8. %struct.seg_t = type { i16, %struct.hiddenseg_t }
  9. %struct.hiddenseg_t = type { i32, i32, i32 }
  10. %struct.eflags_t = type { i32, i32, [256 x i8] }
  11.  
  12. define %struct.tc_t* @main(%struct.cpu_ctx_t* %cpu_ctx) {
  13.   %regs = getelementptr inbounds %struct.cpu_ctx_t, %struct.cpu_ctx_t* %cpu_ctx, i32 0, i32 1
  14.   %eflags = getelementptr inbounds %struct.cpu_ctx_t, %struct.cpu_ctx_t* %cpu_ctx, i32 0, i32 2
  15.   %hflags = getelementptr inbounds %struct.cpu_ctx_t, %struct.cpu_ctx_t* %cpu_ctx, i32 0, i32 3
  16.   %1 = getelementptr inbounds %struct.regs_t, %struct.regs_t* %regs, i32 0, i32 9
  17.   %2 = getelementptr inbounds %struct.seg_t, %struct.seg_t* %1, i32 0, i32 0
  18.   store i16 -4096, i16* %2
  19.   %3 = getelementptr inbounds %struct.regs_t, %struct.regs_t* %regs, i32 0, i32 28
  20.   store i32 69, i32* %3
  21.   %4 = getelementptr inbounds %struct.regs_t, %struct.regs_t* %regs, i32 0, i32 9
  22.   %5 = getelementptr inbounds %struct.seg_t, %struct.seg_t* %4, i32 0, i32 1
  23.   %6 = getelementptr inbounds %struct.hiddenseg_t, %struct.hiddenseg_t* %5, i32 0, i32 0
  24.   store i32 983040, i32* %6
  25.   %7 = inttoptr i32 49332024 to %struct.tc_t*
  26.   %8 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 0
  27.   %9 = load volatile i32, i32* %8
  28.   %10 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 1
  29.   %11 = load volatile i32, i32* %10
  30.   %12 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 2
  31.   %13 = load volatile i32, i32* %12
  32.   %14 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 3
  33.   %15 = load volatile %struct.tc_t* (%struct.cpu_ctx_t*)*, %struct.tc_t* (%struct.cpu_ctx_t*)** %14
  34.   %16 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 4, i32 0
  35.   %17 = load volatile %struct.tc_t* (%struct.cpu_ctx_t*)*, %struct.tc_t* (%struct.cpu_ctx_t*)** %16
  36.   %18 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 4, i32 1
  37.   %19 = load volatile %struct.tc_t* (%struct.cpu_ctx_t*)*, %struct.tc_t* (%struct.cpu_ctx_t*)** %18
  38.   %20 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 4, i32 2
  39.   %21 = load volatile %struct.tc_t* (%struct.cpu_ctx_t*)*, %struct.tc_t* (%struct.cpu_ctx_t*)** %20
  40.   %22 = getelementptr inbounds %struct.tc_t, %struct.tc_t* %7, i32 0, i32 5
  41.   %23 = load volatile i32, i32* %22
  42.   %24 = inttoptr i32 49332024 to %struct.tc_t*
  43.   ret %struct.tc_t* %24
  44. }
  45.  
  46. declare i8 @mem_read8(%struct.cpu_ctx_t*, i32, i32)
  47.  
  48. declare i16 @mem_read16(%struct.cpu_ctx_t*, i32, i32)
  49.  
  50. declare i32 @mem_read32(%struct.cpu_ctx_t*, i32, i32)
  51.  
  52. declare i64 @mem_read64(%struct.cpu_ctx_t*, i32, i32)
  53.  
  54. declare i8 @io_read8(%struct.cpu_ctx_t*, i16, i32)
  55.  
  56. declare i16 @io_read16(%struct.cpu_ctx_t*, i16, i32)
  57.  
  58. declare i32 @io_read32(%struct.cpu_ctx_t*, i16, i32)
  59.  
  60. declare void @mem_write8(%struct.cpu_ctx_t*, i32, i8, i32)
  61.  
  62. declare void @mem_write16(%struct.cpu_ctx_t*, i32, i16, i32)
  63.  
  64. declare void @mem_write32(%struct.cpu_ctx_t*, i32, i32, i32)
  65.  
  66. declare void @mem_write64(%struct.cpu_ctx_t*, i32, i64, i32)
  67.  
  68. declare void @io_write8(%struct.cpu_ctx_t*, i16, i8, i32)
  69.  
  70. declare void @io_write16(%struct.cpu_ctx_t*, i16, i16, i32)
  71.  
  72. declare void @io_write32(%struct.cpu_ctx_t*, i16, i32, i32)
  73.  
  74. declare void @cpu_throw_exception(%struct.cpu_ctx_t*, i64, i32)
  75.  
  76. declare void @cpu_update_crN(%struct.cpu_ctx_t*, i32, i8, i32, i32)
  77.  
  78. define %struct.tc_t* @exit(%struct.cpu_ctx_t*) {
  79.   %2 = inttoptr i32 49332024 to %struct.tc_t*
  80.   ret %struct.tc_t* %2
  81. }
Add Comment
Please, Sign In to add comment