shithub: scc

Download patch

ref: dbacd2db0387ac4dbd726aa48b7a5bf765d69d4e
parent: c7b52bd47910e2c14bc19422d14c432d20d92cce
author: Roberto E. Vargas Caballero <[email protected]>
date: Thu Jul 16 05:57:03 EDT 2015

Minor changes to README

My english sucks, a lot. For sure there are more things to fix.

--- a/README
+++ b/README
@@ -7,12 +7,12 @@
 
 After a lot of years seeing compilers for z80 I notice that it is very
 hard for a C compiler generates a good code for a 8 bit processor like
-z80, with a expensive indirect addressing mode, so the best solution
+z80, with an expensive indirect addressing mode, so the best solution
 is to not try that compiler optimize the code and use C as a macro
 macro assembler.
 
-In order to get this last, we need a compiler that does exactly the
-things we want to do. For example is a variable is register it MUST be
+In order to get this target, we need a compiler that does exactly the
+things programmer want to do. For example is a variable is register it MUST be
 register and fails in other case. If a variable is automatic try to
 realize operations directly with the stack (for example use ADD
 A,(IX+4), instead of allocate the variable into register add and store
@@ -20,7 +20,7 @@
 big bullshit or you need it for recursion (static variables are your
 friends). 
 
-This is the reason why I begin to develop this compiler, and I hope
+This is the reason why I began to develop this compiler, and I hope
 it will be useful for you.
 
 Changes from standard C
@@ -37,7 +37,7 @@
 	- const: The definition of const is not clear in the standard.
 	  If a const value is modified then the behaviour is implementation
 	  defined. It seems that it was defined more in order to can
-	  allocate variables in ROM that for the error detection. This
+	  allocate variables in ROM than for the error detection. This
 	  implememtation will not warn about these modifications and
 	  the code will use them as normal variables (standard specifies
 	  that a diagnosis message must be printed).
@@ -47,17 +47,18 @@
 	  variable', which of course depend of the king of optimizations
 	  applied to the variable. This qualifier was added to the standard
 	  to can deal with longjmp (local variables that are not volatile
-	  have undefined state), but this can achieved with special pragma
-	  values, and for memory mapped registers or variables whose
-	  value is modified asynchronous. In the first case, this is a
-	  a non portable code by definition (depend of the register mapped),
-	  so it is better to deal with it using another solution (compiler
-	  extensions or directly assembler), and in the second case it
-	  generated a lot of problems with moderm processors out of order
-	  and multiprocesor, where not hold the value in a register is
-	  good enough (it is needed a explicit memory barrier).
+	  have undefined state), and for memory mapped registers or variables
+	  whose value is modified asynchronous but this can achieved with
+	  special pragma values.
+	  In the first case, this is a a non portable code by definition
+	  (depend of the register mapped), so it is better to deal with
+	  it using another solution (compiler extensions or directly
+	  assembler), and in the second case it generated a lot of
+	  problems with moderm processors out of order and multiprocesor,
+	  where not hold the value in a register is good enough (it is
+	  needed a explicit memory barrier).
 
-	- restricted: This qualifer can be only applied to pointers, to
+	- restrict: This qualifer can be only applied to pointers, to
 	  mark that the pointed object has no other alias. This qualifer
 	  was introduced to can fix some performance problems in numerical
 	  algorithm, where FORTRAN can achieve a better performance (and