GoBug – Jeremy has kindly made his Win32 symbolic debugger version 2.0.3.1 now available for free. See here
http://www.godevtool.com/#gobug for further details. If you don’t already have this, please check it out. It has always been a sweet (yet nasty for the bug) addition to the suite of GoTools.
GoRC – the resource compiler has received a well-deserved promotion to version 1.0.0.0 and is available here
http://www.godevtool.com/Gorc.zip with the following changes:
- fixed OBJ file output to have a proper UTC TimeDate Stamp
- finishing touches on the help file
GoRC – version 1.0.0.1 now up with the following adjustment:
- fixed problem with unrecognized preprocessor directive within #if #else #endif ignored block
GoRC – version 1.0.1.0 now up with the following adjustment:
- added command line option /nu for no warning message for a user-defined resource type
GoAsm – version 0.58 is an important assembler update on the x64 side, available here
http://www.godevtool.com/Goasm.zip along with some other changes:
- fixed OBJ file output to have a proper UTC TimeDate Stamp
- fixed problem with displacement when using () within [] in x64 mode
- fixed cvtsi2ss and cvtsi2sd for use with D or Q[...]
- fixed USES for case of USES ES
- fixed USES for case of invalid use of DS,ES,SS in x64 mode
- fixed problem with PUSHW/POPW W[...]
- modified JRCXZ to assemble as JECXZ in x86 mode
- modified jump processing to allow a long backward jump when specified as a LONG or << jump
- fixed for correct count of 64-bit register ARGS to save to shadow space
- fixed ADDR for various cases of PUSH ADDR using a large address (*see note below)
- fixed ADDR for various cases of MOV [mem64],ADDR using a large address (*see note below)
- modified output on right hand side of list file for FRAME and related code added by GoAsm
- modified USEDATA which now requires a Label: on or before the line with USEDATA
- modified FRAME to allow use with case of no ARGs and LOCALs
- help file corrections and modifications for some of the above
GoAsm – version 0.58.0.1 now up with the following adjustments:
- fixed FRAME with no ARGs LOCALs with use of USES
- modified x64 INVOKE ARG register overwritten/same tests to include 32-bit case
GoAsm – version 0.58.0.2 now up with the following adjustments:
- modified x64 INVOKE ARG register tests to error for 16-bit case
- fixed x64 PUSH ADDR cases with R11 usage using wrong relocation label
- fixed x64 ADDR cases with R11 usage missing an additional immediate displacement
GoAsm – version 0.58.0.3 now up with the following adjustments:
- modified x64 ARG ADDR LocalLabel to use Q[RSP]
- fixed x64 INVOKE when using a string #define as one of the first four ARG
GoAsm – version 0.58.0.4 now up with the following adjustment:
- fixed x64 problem with address of nested last structure member if it required padding for alignment
GoAsm – version 0.58.0.5 now up with the following adjustment:
- fixed 16-bit alignment for Unicode string with INVOKE or PUSH
GoAsm – version 0.58.0.6 now up with the following adjustment:
- fixed 16-bit alignment for Unicode string with INVOKE or PUSH in UTF-8 or UTF16-LE file
* this fix goes a long way towards making ADDR go a long way with large addresses, but note that this in the first case MAY (doesn’t when one of the first four INVOKE parameters) and in the second case WILL use the R11 register. This should have no impact on x86/x64 code. With greater register usage on the x64 only side, if you are using R11 for other purposes, please select a more suitable 64-bit register and manually MOV reg64,ADDR (actually LEA) then MOV [mem64],reg64.
The above is now good for addresses up to 4GB. There are still a few changes that I need to make with GoLink in order to allow the full 8TB. Once I finish up with these and another item, I can then return focus to some of the remaining GoAsm items, mainly x64 floating point INVOKE / FRAME issues and FRAME XDATA and PDATA which I was working on before some of the above accumulated detours became significant enough to prompt a release.
Enjoy,
WJR