Advertisement
luckytyphlosion

Scrap notes for adding ARM to agbcc.

Aug 6th, 2019 (edited)
602
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. commits to ignore:
  2. - remove VMS stuff (not related to compiling)
  3. - misc cleanup (seems like a lot of debug removal)
  4. - remove g++ test cases (g++ doesn't exist anymore in agbcc)
  5. - remove static constuctors/destructors (some decorator)
  6. - remove more objc stuff (unrelated to C compilation)
  7. - remove live ranges (seems like non-default compiler flag, not documented in gcc 2.95.3 docs)
  8. - remove standalone preprocessor (cpp provided with modern gcc for compiling agbcc)
  9. - clean up limits.h (related to max value of something (e.g. maxint), doesn't seem related to compiling)
  10. - clean up standard headers (unrelated to arm compilation)
  11. - remove use of strings.h (refactoring via replacement of strings.h functions with library functions)
  12. - rely on configure less (refactoring some printing stuff which is probably tied to configure)
  13. - remove alternate versions of thumb files (!! check this out later)
  14. - clean up thumb code (!! check this out later)
  15. - clean up thumb.c more (!! check this out later, mostly looks like formatting fixes but thumb_exit was modified)
  16. - remove unneeded function (small commit, only removes some clearly unused code)
  17. - fix md (main change seems to be https://github.com/pret/agbcc/commit/ee6378488b6ef2654dcbffaaf1319c415c552f27#diff-1cff883ac32be6938d71c9a7da05004fL1101 , everything else looks like exit code replacements)
  18. - remove unused files (seems like they weren't used at all)
  19. - remove unused simple return code (removed code only defined through undefined cpp flags)
  20. - remove delay slot and stack reg code (unused by arm?)
  21. - remove epilogue delay list (! current_function_epilogue_delay_list is actually used in arm.c, look at this later)
  22. - remove PIC (non-working and disabled) (non-working and disabled)
  23. - remove macros for old compilers (removes undefined cpp flags, very small commit)
  24. - remove insn scheduling (not supported with thumb) (!!! supported with arm, need to re-add)
  25. - remove more unused files (removes some c compiler tests)
  26. - remove old version of loop.c (removes old version (loop_[date].c))
  27. - remove some hard reg ifdefs (!!! removed REG_ALLOC_ORDER, and CONDITIONAL_REGISTER_USAGE)
  28. - clean up more reg ifdefs (!!! removed HARD_FRAME_POINTER_REGNUM, PUSH_ROUNDING, hard_frame_pointer_rtx)
  29. - remove exit_ignore_stack ifdefs (!!! removed EXIT_IGNORE_STACK, clear_pending_stack_adjust)
  30. - kill libiberty (only touches gcc stuff irrelevant to arm compilation)
  31. - trim makefile (unrelated to arm compilation)
  32. - remove more files (replace assert.h with <assert.h>, doprint.c, dostage2, dostage3, remove some dwarf debugging stuff)
  33. - get rid of PROTO macros (only removes PROTO macros (I hope))
  34. - remove ANSI_PROTOTYPES ifdefs (ANSI_PROTOTYPES is defined by default)
  35. - get rid of VA_START macro (VA_START -> va_start)
  36. - get rid of PTR macros (NULL_PTR -> NULL, GENERIC_PTR -> void *)
  37. - stop using configure script to generate header files (configure related)
  38. - delete xm-i386.h (build/Makefile related)
  39.  
  40.  
  41. * evaluates to true for thumb and arm
  42. - evaluates to false for thumb and arm
  43. unused/ignore flags for arm:
  44. - PCC_STATIC_STRUCT_RETURN
  45. - LEAF_REGISTERS
  46. - DELAY_SLOTS
  47. - STACK_REGS
  48. - ADJUST_INSN_LENGTH
  49. - CASE_VECTOR_SHORTEN_MODE
  50. - NON_SAVING_SETJMP
  51. - LEAF_REG_REMAP
  52. - ASM_OUTPUT_MAX_SKIP_ALIGN
  53. * REAL_ARITHMETIC
  54. - BUFSIZ
  55. - HAVE_return (special user defined flag?)
  56. - HARD_REG_SET (FIRST_PSEUDO_REG starts at 27, 32 bits in unsigned int)
  57. - RELOAD_ALLOC_ORDER
  58. * WORD_REGISTER_OPERATIONS
  59. * ARG_POINTER_REGNUM = 26
  60. * FRAME_POINTER_REGNUM = 25
  61. * FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
  62. - SECONDARY_MEMORY_NEEDED
  63. * ELIMINABLE_REGS
  64. - EPILOGUE_USES
  65. - INSN_REFERENCES_ARE_DELAYED
  66.  
  67. used keywords:
  68. - INSN_SCHEDULING
  69. - REG_ALLOC_ORDER
  70. - CONDITIONAL_REGISTER_USAGE
  71. - HARD_FRAME_POINTER_REGNUM
  72. - PUSH_ROUNDING
  73. - hard_frame_pointer_rtx
  74. - EXIT_IGNORE_STACK
  75. - clear_pending_stack_adjust
  76.  
  77.  
  78. don't need to re-add FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
  79.  
  80. thumb:
  81. HARD_FRAME_POINTER_REGNUM = 7
  82. FRAME_POINTER_REGNUM = 7
  83. ARG_POINTER_REGNUM = 16
  84. arm:
  85. HARD_FRAME_POINTER_REGNUM = 11
  86. FRAME_POINTER_REGNUM = 25
  87. ARG_POINTER_REGNUM = 26
  88.  
  89.  
  90. attrs in arm.md:
  91. - prog_mode = "prog32"
  92. - is_strongarm = "no"
  93. - fpu = "yes"
  94. - ldsched = "no"
  95. - model_wbuf = "no"
  96. - core?
  97.  
  98. defined function units:
  99. - fpa
  100.  
  101. undefined function units:
  102. - write_buf
  103. - write_blockage
  104.  
  105.  
  106. used flags:
  107. - INSN_SCHEDULING (for floating point)
  108. -
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement