|
H8S, H8/300 Series C/C++ Compiler Package
V.6.00 release02
Renesas C/C++ Compiler Package for H8S, H8/300 series
was updated from V.6.00 release0x to V.6.00 release02.
| 1. High-performance Embedded Workshop (Only Windows®version) |
1.1 Improvement of Workspace window Look&Feel
The [Projects] tab in [Workspace] window can show the files as time stamp order. Out of date files (those updated after the previous build) can be marked in the [Workspace] window.
1.2 Enhancement for Makefile Generation
High-performance Embedded Workshop is now capable of generating makefile for GNUMake. As well as makefile is for Hmake and Nmakes. This allows use of a general-purpose make tool that supports GNUMake.
Compiler options can be output to separate files (sub-command files).
1.3 Customization of the High-performance Embedded Workshop Linkage Order
Customization of the High-performance Embedded Workshop linkage order is newly supported.
1.4 Virtual Desktop Function
The virtual desktop function is newly supported. It is possible to have a maximum of four window configurations so that users are able to use the screen effectively by switching these window configurations.
1.5 Enhancement of saving view contents
The contents of the view Cache (SH only), I/O, PA, Register, and TLB (SH only) can be saved into text file.
1.6 Specifications of the [Watch] Window Changed
Variables added in the [Watch] window will be retained even after the window is closed, unless the user deletes these variables manually.
1.7 Improved Tools Options Dialog Box
The size of the [Section] dialog box opened from the Tools Options Dialog Box is now customizable.
1.8 Direct Display of the Source File at the Current PC
This function (toolbar button) allows the source file at the current PC to be displayed.
1.9 Enhanced Downloading Function
The following new options can be specified:
a) Before downloading a load module, the High-performance Embedded Workshop checks if the source file has been modified. If modified, the High-performance Embedded Workshop
automatically builds the module before downloading.
b) After downloading the load module, the High-performance Embedded Workshop automatically resets the target program.
1.10 Improved Address Field
An address field now has a function to refer to the list of labels. The last 20 items entered in the address field can be shown in the drop-down list.
1.11 Auto-Recovery Function
This function is newly supported to backup the workspace, project, and session files at regular intervals.
1.12 Enhanced Function to Customize the Display Format
The function to customize fonts and size has been enhanced.
1.13 Freeze while Editing
We have corrected the problem of the High-performance Embedded Workshop being halted while editing a file in the editor with the navigation facility enabled.
1.14 Illegal Termination of the High-performance Embedded Workshop after Adding a Custom Build Phase
We have corrected the problem of the High-performance Embedded Workshop illegally terminated by pressing the [OK] button after specifying an output file in [(Phase name) Options] for the added custom phase.
1.15 Duplicate Header File Name in the [Workspace] Window
We have corrected the problem of displaying a duplicate header file name on the [Project] tab of the [Workspace] window when the header file was defined with both uppercase and lowercase letters.
[Example]
File1.c: #include "SAMPLE.H"
File2.c: #include "sample.h"
1.16 Incorrect Display of Navigation
We have corrected the problem of incorrectly displaying information on the [Navigation] tab of the [Workspace] window when a space (' ') was attached to the number of elements in an array-type variable declaration.
[Example]
extern int tbl [ 2 ]
1.17 Incorrect Dependencies for a Custom Build Phase
We have corrected the problem of changing the names of files with dependent information on the custom build phase by adding a file to the project after the custom build phase had been added to the said project.
1.18 Modifying the Data Generated by the Project Generator
Two reset program files (resetprg.c, resetprg.cpp) for H8SX have been updated.
They have initialization code for SBR and VBR as comment.
| 2. Simulator/debugger ( Windows® version) |
2.1 Supporting the timer simulation (only for H8SX Simulator)
The timer simulation is supported only at H8SX.
2.2 Setting the memory read cycles and write cycles
Both number of memory read cycles and write cycles can be modified.
3.1 Incorrect accessing to a member of array type in a structure
If an array type variable declared as not a first member in a structure and an expression has a reference of the address of array type member. The address value might not be correct.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) An array type variable declared as not a first member in a structure.
c) An expression is described as accessing of an array type member address except first elements,
3.2 Incorrect optimization for a pre/post increment/decrement instruction
If your code has either pre-increment, pre-decrement, post-increment, or post-decrement expression with speed option, The value might not be correct as a result.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) Speed option was specified.
c) One of following expression was in your source file
i. Pre-increment
ii. Pre-decrement
iii. Post-increment
iv. Post-decrement
3.3 Illegal register allocation of table expansion optimization for switch-case statement
If switch-case statement is expanded to the table optimization, register push/pop instruction might not be correct.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) Case = table or case = auto was specified and Switch-case statement was expanded as table expansion optimization. .
3.4 The instruction, which assigned 0, is deleted illegally.
If an instruction of assigned 0 was in each branch, it might be deleted illegally.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8/300 or H8/300L was specified as a CPU type.
b) The optimize=1 option was specified(default).
c) An Instruction of assigned 0 was in each branch.
3.5 A substitute expression was deleted 4 or less bytes of structure variable illegally
If four or less bytes structure variable was in a substitute expression, it might be deleted.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) The optimize=1 option was specified(default).
c) Declared structure with either of following two conditions was fulfilled.
i. The member is accessed one byte to top of two bytes from top of structure or two bytes to second byte from
top of structure.
ii. The STRUCTURE was 2, 3 or 4-byte size, and that have 2 or more members.
And at least one of them was bit-field type
d) c) member accessing was in your program
3.6 An incorrect accessing structure member in different accessing
When a structure member set/reference expression(indirect and direct) were in your program, setting value expression might be deleted.
-set/reference method is following.
i. Indirect (struct->member)
ii. Direct (struct.member)
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) The optimize=1 option was specified(default).
c) Set/reference expression of the same address of memory is sequential
d) The expressions of c) were pointer expression and not pointer expression.
3.7 A polynominal in-loop induction variable results was incorrect
When a loop has m*(i*i+b*i) style qualratic expression, optimization for loop might be incorrect code.
This issue was fixed.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) H8SXN, H8SXM, H8SXA, or H8SXX was specified as a CPU type.
b) The optimize=1 was specified(default)
c) A following conditions were in a loop
i. A long/unsigned long type in-loop variable is exist
ii. It is in a part of quadratic expression.
iii. m*(i*i+b*i) quadratic expression
3.8 RENESAS TECHNICAL UPDATE TN-CSX-070A/EA
The following problem was fixed.
Illegal access to a member of a structure/union parameter
Illegal pointer comparison
Incorrect setting or reference to a bit field
Error in reference to addresses of structure members by &struct.array[0], etc.
Access to incorrect addresses by &=0 or |=0xFFFF
| 4. Optimizing linkage editor |
4.1 Incorrect error with specification of the change_message option
Fixed the problem that an incorrect error occurred when two or more error levels were specified in the change_message option.
[Example]
When the change_message option was specified as follows,
a linker older than version 8.0.03 output an error message incorrectly:
optlnk -change_message=e=1000,w=2000 *.obj
|