tneg.pp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {****************************************************************}
  2. { CODE GENERATOR TEST PROGRAM }
  3. {****************************************************************}
  4. { NODE TESTED : secondunaryminus() }
  5. {****************************************************************}
  6. { PRE-REQUISITES: secondload() }
  7. { secondassign() }
  8. { secondtypeconv() }
  9. {****************************************************************}
  10. { DEFINES: }
  11. { FPC = Target is FreePascal compiler }
  12. {****************************************************************}
  13. { REMARKS: }
  14. { }
  15. { }
  16. { }
  17. {****************************************************************}
  18. Program tneg;
  19. {----------------------------------------------------}
  20. { Cases to test: }
  21. { CURRENT NODE (result value) }
  22. { - LOC_REGISTER }
  23. { - LOC_FPU }
  24. { LEFT NODE (value to negate) }
  25. { - LOC_CREGISTER }
  26. { - LOC_REFERENCE / LOC_MEM }
  27. { - LOC_REGISTER }
  28. { - LOC_FPU }
  29. {----------------------------------------------------}
  30. function getreal: real;
  31. begin
  32. getreal := 1.0;
  33. end;
  34. var
  35. longval : longint;
  36. realval : real;
  37. byteval : longint;
  38. {$IFDEF FPC}
  39. int64val : int64;
  40. {$ENDIF}
  41. Begin
  42. WriteLn('------------------------------ LONGINT --------------------------------');
  43. { CURRENT NODE: REGISTER }
  44. { LEFT NODE : REFERENCE }
  45. longval := 1;
  46. longval := - longval;
  47. Write('Value should be -1...');
  48. if longval = -1 then
  49. WriteLn('Success.')
  50. else
  51. WriteLn('Failure.');
  52. { CURRENT NODE : REGISTER }
  53. { LEFT NODE: REGISTER }
  54. byteval := 2;
  55. longval := - byteval;
  56. Write('Value should be -2...');
  57. if longval = -2 then
  58. WriteLn('Success.')
  59. else
  60. WriteLn('Failure.');
  61. { CURRENT NODE: LOC_FPU }
  62. { LEFT NODE : LOC_REFERENCE }
  63. realval := -1.0;
  64. realval := - realval;
  65. Write('Value should 1.0...');
  66. if realval - 1.0 = 0.0 then
  67. WriteLn('Success.')
  68. else
  69. WriteLn('Failure');
  70. { LEFT NODE : LOC_FPU }
  71. { CURRENT NODE : LOC_FPU }
  72. realval := -1.0;
  73. realval := -(getreal*(realval));
  74. Write('Value should 1.0...');
  75. if realval - 1.0 = 0.0 then
  76. WriteLn('Success.')
  77. else
  78. WriteLn('Failure');
  79. {$IFDEF FPC}
  80. WriteLn('------------------------------ INT64 --------------------------------');
  81. { CURRENT NODE: REGISTER }
  82. { LEFT NODE : REFERENCE }
  83. int64val := 1;
  84. int64val := - int64val;
  85. Write('Value should be -1...');
  86. if int64val = -1 then
  87. WriteLn('Success.')
  88. else
  89. WriteLn('Failure.');
  90. { CURRENT NODE : REGISTER }
  91. { LEFT NODE: REGISTER }
  92. byteval := 2;
  93. int64val := - byteval;
  94. Write('Value should be -2...');
  95. if int64val = -2 then
  96. WriteLn('Success.')
  97. else
  98. WriteLn('Failure.');
  99. {$ENDIF}
  100. end.