Advertisement
kernel_memory_dump

Untitled

Apr 19th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. case T_MEM:
  2. {
  3. // Here goes the code for lw instruction
  4. if(e->u.MEM->kind == T_BINOP){
  5. if(e->u.MEM->u.BINOP.op == T_plus){
  6. if(e->u.MEM->u.BINOP.left->kind == T_CONST && e->u.MEM->u.BINOP.right->kind == T_TEMP)
  7. (
  8. T_exp myExprecion = e->u.MEM->u.BINOP.right;
  9. T_exp myConst = e->u.MEM->u.BINOP.left;
  10. Reg reg = getNewReg();
  11.  
  12. char * buffer = (char *)malloc(__BUFFER_SIZE__ * sizeof(char));
  13. sprintf_s(buffer, __BUFFER_SIZE__, "lw 'd,%d('s)", myConst->u.CONST);
  14.  
  15. AS_instr instr = AS_Oper(buffer, NULL, NULL, NULL)};
  16. emit(instr);
  17. )
  18. else if(e->u.MEM->u.BINOP.left->kind == T_TEMP && e->u.MEM->u.BINOP.right->kind == T_CONST)
  19. {
  20. T_exp myExpression = e->u.MEM->u.BINOP.left;
  21. T_exp myConst = e->u.MEM->u.BINOP.right;
  22. Reg reg = getNewReg();
  23.  
  24. char * buffer = (char*)malloc(__BUFFER_SIZE__*sizeof(char));
  25. sprintf_s(buffer, __BUFFER_SIZE__, "lw 'd,%d('s)", myConst->u.CONST);
  26.  
  27. AS_instr instr = AS_Oper(buffer, NULL, NULL, NULL)};
  28. emit(instr);
  29. else if(e->u.MEM->u.BINOP.left->kind == T_CONST && e->u.MEM->u.BINOP.right->kind == T_CONST)
  30. {
  31. T_exp myConst1 = e->u.MEM->u.BINOP.left;
  32. T_exp myConst2 = e->u.MEM->u.BINOP.right;
  33. Reg reg = getNewReg();
  34.  
  35. char * buffer = (char *)malloc(__BUFFER_SIZE__*sizeof(char));
  36. sprintf_s(buffer, __BUFFER_SIZE__, "lw 'd,%d('s)", myConst->u.CONST);
  37.  
  38. AS_instr instr = AS_Oper(buffer, NULL, NULL, NULL)};
  39. emit(instr);
  40. else
  41. assert(0);
  42. }
  43. break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement